[Tickets #4399] Broken iCalendar event timezone interoperabilty with Outlook & others

bugs@bugs.horde.org bugs at bugs.horde.org
Fri Sep 8 13:02:58 PDT 2006


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/?id=4399
-----------------------------------------------------------------------
 Ticket             | 4399
 Updated By         | lists-horde at carlthompson.net
 Summary            | Broken iCalendar event timezone interoperabilty with Outlook & others
 Queue              | Horde Framework Packages
 Version            | HEAD
 Type               | Bug
 State              | Feedback
 Priority           | 3. High
 Owners             | 
+New Attachment     | timezone_fix.diff
-----------------------------------------------------------------------


lists-horde at carlthompson.net (2006-09-08 13:02) wrote:

Attached is a patch (against HEAD - 1 Sep 2006) that adds proper timezone
handling to the Horde framework so that icalendar invitations / events
sent from users in other timezones are viewed and imported properly.

I did this patch the right way and the code conforms to the iCalendar
specification (RFC2445). I have extensively tested it and I am satisfied
that it interoperates correctly with all RFC conforming calendar
applications including Microsoft Outlook / Exchange, Apple iCal, Mozilla
Calendar and others. Further, the changes are all in one file and internal
to the iCalendar object in the Horde framework so there are no changes that
are necessary to the applications (Kronolith, IMP, etc.) Therefore, I
believe this patch is ready for immediate integration into Horde CVS. The
only externally visible change made (besides correct date / times!) is
what gets stored in the calendar object when an invalid date-time stamp is
encountered. Previously, it was not consistent but usually false would be
stored. After this patch the original text from the invitation is stored
so that it's not lost.

After applying this patch you will need to run

  framework/install-packages.php -p iCalendar

from the command line as root for it to take affect.

One final caveat: because of the way the standard works the sending
application specifies the exact times of the timezone's changes between
daylight and standard time (if any). This means that if the powers that be
change the dates for those changes and the sending application does not
know about the new rules at the time the invitation is sent then there is
potential for the receiving application (including this code) calculating
the incorrect time. That is not a bug in the code but an invitation with a
timezone component specified that is not correct. The sender will need to
send an updated invitation after updating his computer / software to know
about the new timezone rules or the recipient will need to manually change
the time of the event.

I bring this up of course because the US congress has changed when we in
the US observe our time changes starting in 2007. If the sending
application / computer of an invite does not know that and it encodes
incorrect old information about its timezone but the recipient's
application / computer knows about the new changes and the invitation
falls on a date between when the sending application thought the time
change would occur and when the receiving application knows that it
actually will occur then the time derrived from the invitation will be
off. Is that confusing enough?

To put it simply, if you notice that some invitations sent by people in US
timezones for events between March 11, 2007 and April 1, 2007 appear to be
showing up witch a time that is incorrect by exactly one hour, it's not a
bug in my code but a problem at the sender's end! Any software that
imports calendar events using the standard may have this problem.

Thank you,
Carl E. Thompson




More information about the bugs mailing list