title: Writing .ics iCal file using java
body: <p>I am attempting to implement my own iCal creator using java and for some reason I can't get my .ics file to be recognized. I was wondering what I am doing wrong I can get output that looks exactly like the example from wikipedia. What is the difference between the .ics file and the once that my program has generated. </p>
  
  <p>Their Example:</p>
  
  <pre><code>BEGIN:VCALENDAR
  VERSION:2.0
  PRODID:-//hacksw/handcal//NONSGML v1.0//EN
  BEGIN:VEVENT
  UID:uid1@example.com
  DTSTAMP:19970714T170000Z
  ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
  DTSTART:19970714T170000Z
  DTEND:19970715T035959Z
  SUMMARY:Bastille Day Party
  END:VEVENT
  END:VCALENDAR
  </code></pre>
  
  <p>My .ics file</p>
  
  <pre><code>BEGIN:VCALENDAR 
  VERSION:1.0 
  PRODID://Elara/lofy/tanare/delp/314sum2015// 
  BEGIN:VEVENT 
  UID:uid1@example.com
  DTSTAMP:19970714T170000Z
  ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
  DTSTART:19970714T170000Z
  DTEND:19970715T035959Z
  SUMMARY:Bastille Day Party
  END:VEVENT 
  END:VCALENDAR 
  </code></pre>
  
  <p>This is the code used to generate the .ics file. </p>
  
  <pre><code>    import java.io.FileWriter;
      import java.io.IOException;
      import java.io.PrintWriter;
      import java.util.ArrayList;
  
      public class iCal {
  
      private String version =    "VERSION:1.0 \n";
      private String prodid =     "PRODID://Elara/lofy/tanare/delp/314sum2015// \n";
      private String calBegin =   "BEGIN:VCALENDAR \n";
      private String calEnd =     "END:VCALENDAR \n";
      private String eventBegin = "BEGIN:VEVENT \n";
      private String eventEnd =   "END:VEVENT \n";
  
          public void iCal(){
          }
  
          public void write( String name ){
              StringBuilder builder = new StringBuilder();
              builder.append(name);
              builder.append(".ics");
  
      String testExample = "UID:uid1@example.com\nDTSTAMP:19970714T170000Z\nORGANIZER;
      CN=John Doe:MAILTO:john.doe@example.com\nDTSTART:19970714T170000Z
      \nDTEND:19970715T035959Z\nSUMMARY:Bastille Day Party\n";
  
              try {
  
                  File file = new File(builder.toString());
  
                  // if file doesnt exists, then create it
                  if (!file.exists()) {
                      file.createNewFile();
                  }
  
                  FileWriter fw = new FileWriter(file.getAbsoluteFile());
                  BufferedWriter bw = new BufferedWriter(fw);
                  bw.write(calBegin);
                  bw.write(version);
                  bw.write(prodid);
                  bw.write(eventBegin);
                  bw.write(testExample);
                  bw.write(eventEnd);
                  bw.write(calEnd);
  
                  bw.close();
  
                  System.out.println("Done");
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
  </code></pre>