More on iCal, Oracle Calendar, and calendar standards

| | Comments (0)

I wrote in October about importing icalendar objects between Oracle Calendar and Apple's iCal. It turns out that my colleague David Cox has written a script called CT2iCAL to export Oracle Calendar data to iCal, and the details of the issues involved are rather revealing of the state of Internet calendaring standards.

When you output iCalendar format data from Oracle Calendar (the product formerly known as Corporate Time), it puts out blocks of events with each event delimited with BEGIN:VEVENT and an END:VEVENT statements. It then puts each of those blocks between BEGIN:VCALENDAR and END:VCALENDAR statements - like so:

BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
PRODID:Oracle/CorporateTime
BEGIN:VEVENT
DTSTAMP:20031124T043600Z
.
.
.
END:VEVENT
END:VCALENDAR
BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
PRODID:Oracle/CorporateTime
BEGIN:VEVENT
DTSTAMP:20030429T233700Z
.
.
.
END:VEVENT
END:VCALENDAR

It turns out that what iCal expects is multiple VEVENTs to be contained within a single VCALENDAR block, like so:

BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
PRODID:Oracle/CorporateTime
BEGIN:VEVENT
DTSTAMP:20031120T002000Z
.
.
.
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20031115T171300Z
.
.
.
END:VEVENT
END:VCALENDAR

So you can edit the output of the Oracle iCalendar file to remove the extra VCALENDAR statements and it imports fine into iCal. hmmmm...

So I thought I'd go see what the iCalendar spec, rfc2445 says about this. Here's what it says:

4.4 iCalendar Object

The Calendaring and Scheduling Core Object is a collection of
calendaring and scheduling information. Typically, this information
will consist of a single iCalendar object. However, multiple
iCalendar objects can be sequentially grouped together.

So there you go...Oracle does what's permissable but not typical...Apple allows for what's typical, but not all of what's permissable.

And of course, once you export events, you can import them, but there's no way to recognize the same event the next time you import - so you can't really do any true synchronization across multiple calendar software. Seems like what we need is a standardized naming syntax for calendar events.

Leave a comment

About this Entry

This page contains a single entry by Oren Sreebny published on December 2, 2003 11:52 AM.

Get ready for Valentine's Day was the previous entry in this blog.

Yet another reason to like Python is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

About Me
Powered by Movable Type 4.01