>I have been messing around the last week or so with implementing a iCalendar export. The iCal spec is pretty straightforward with what should be understood and what format the data should be in when exported. So if you code to the specification and format, you should be able to import into any tool that says they understand that format. However, with iCalendar that is not the case, especially if you are using Microsoft Outlook 2003.
I have a good working export that Thunderbird/Lightning, Google Calendar, and others seem to handle just fine. Even Outlook 2007 seems to do alright with it, but then comes the bane of my existence (no not IE6, IE 7, or IE8). Outlook 2003 is so widely used in the corporate world that it wreaks havoc with iCalendar imports. So much so that Thunderbird/Lightning has to have a special export option for Outlook 2000/2003. Unfortunately I had to code a special export as well just for Outlook 2003 or older.
Interoperability problems occur when vendors do not conform to the required specification but do their own extensions or profiles. What is even more frustrating in the iCalendar case with Outlook is that Outlook 2003 can not handle iCalendar recurrences. Outlook 2003 seems to only like vCalendar files, which use a entirely different occurrence format. So it tries to interpret iCalendar files as vCalendar files, and just chokes.
Standards are about interoperability and the choice to free up your data to do with it what you want and in what ever program you want. They can allow you to more easily switch applications, but when vendors say they support a standard, but only support a very small subset of the standard, the end user is the one that suffers. Data loss may occur, and the interoperability that is promised isn’t realized.
Ultimately it’s in the best interests of all parties involved to support the standard, and compete on value added features instead of proprietary data formats that only benefit the vendor and not the consumer. Consumers need to demand when possible full support for the standard so that they have the freedom to access their own data and move it where it best works for them, not for where it is best for the vendor.