Now really, would you think that these are all the same thing? Well, you could get some techy argument here and there: somebody might insist that iCal should refer only to the Mac OS X app of that name and not to the iCalendar internet standard, and that neither one should be used to describe the underlying file format (vCalendar). But in common usage, it's all the same. That Mozilla picked Sunbird for their app's name is about the only thing that isn't all cross-pollinated and confused.
The data files Sunbird, Mac's iCal and any other conforming calendar app use are simple text files that look like this:
BEGIN:VCALENDAR VERSION:2.0 X-WR-CALNAME;VALUE=TEXT:Home PRODID:-//Apple Computer\, Inc//iCal 1.0//EN X-WR-RELCALID;VALUE=TEXT:DB326BFD-4042-11D7-8D0D-000393D8DB98 X-WR-TIMEZONE;VALUE=TEXT:US/Eastern CALSCALE:GREGORIAN BEGIN:VEVENT DTSTART;VALUE=DATE:20030905 SUMMARY:John's Birthday UID:37932AE0-D1D6-11D7-A2EC-000393D8DB98 SEQUENCE:2 DTSTAMP:20030818T234706Z DURATION:P1D END:VEVENT BEGIN:VEVENT .. END:VEVENT END:VCALENDAR
That one happens to be from Mac's iCal, but Sunbird's looks very much the same:
BEGIN:VCALENDAR VERSION :2.0 PRODID :-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN BEGIN:VEVENT UID :352dda6c-1dd2-11b2-bca5-d66706070bd2 SUMMARY :Ihop meeting STATUS :CONFIRMED CLASS :PRIVATE X-MOZILLA-ALARM-DEFAULT-UNITS :days X-MOZILLA-ALARM-DEFAULT-LENGTH :1 X ;MEMBER=AlarmEmailAddress :firstname.lastname@example.org X-MOZILLA-RECUR-DEFAULT-INTERVAL :2 RRULE :FREQ=WEEKLY;UNTIL=20050601;INTERVAL=2;BYDAY=WE DTSTART :20050420T074500 DTEND :20050420T090000 DTSTAMP :20050415T175149Z LAST-MODIFIED :20050415T180040Z BEGIN:VALARM TRIGGER ;VALUE=DURATION :-P1D END:VALARM END:VEVENT BEGIN:VEVENT UID :0e2fe7ae-1dd2-11b2-be9b-fb6785adc3de STATUS :CONFIRMED CLASS :PRIVATE X-MOZILLA-ALARM-DEFAULT-LENGTH :1 X ;MEMBER=AlarmEmailAddress :email@example.com X-MOZILLA-LASTALARMACK :20050415T141910 DTSTART :20050415T142000 DTEND :20050415T152000 DTSTAMP :20050415T181237Z LAST-MODIFIED :20050415T181910Z BEGIN:VALARM TRIGGER ;VALUE=DURATION :-PT1M END:VALARM END:VEVENT END:VCALENDAR
Obviously, reading or writing these files from another application wouldn't be particularly difficult.
Got something to add? Send me email.
More Articles by Tony Lawrence © 2012-07-17 Tony Lawrence