arnaudq's blog
VTODO with DUE date in Apple iCal
Following my previous post, I've started to look at how due dates are leveraged by real clients, starting with Apple iCal.
Apple iCal (on Mac OS 10.5) let you create VTODOs ("To Do Items") and store them on a CalDAV Server. By default those todos have no associated dates but one can add a due date (no time):
Here is how such a todo is stored on the CalDAV server:
... DTSTART;TZID=Europe/Paris:20040101T120000 DUE;VALUE=DATE:20090127 ...
The VTODO component has a correct DUE property but it also has a DTSTART property which:
- comes out of nowhere (not visible in the UI),
- has no meaningful value (value hardcoded to 01/01/2004).
Client that takes the DTSTART into consideration to do some processing (e.g. to build a view) might show inconsistent results when processing such a VTODO.
Worth, the DTSTART property has a DATETIME value when the DUE property has a DATE value, causing the VTODO to be invalid per the new calsify spec.
If one tries to add an alarm (trigger -15 minutes before), the VTODO is stored as:
... DTSTART;TZID=Europe/Paris:20040101T120000 DUE;VALUE=DATE:20090127 BEGIN:VALARM X-WR-ALARMUID:5874F585-58CD-4357-88CF-951AEAF8663A ACTION:AUDIO TRIGGER:-PT15M ATTACH;VALUE=URI:Basso END:VALARM ...
The TRIGGER property is missing a RELATED=END parameter which would link the alarm time to the DUE date. As a consequence, other clients will consider the TRIGGER to be relative to the DTSTART property. Since its value is meaningless (some time in 2004), the alarm will probably disappear (or be triggered as soon as the client fetches the todo).
Posted at 04:38PM Jan 29, 2009 by arnaudq in CalDAV | Comments[5]
Interesting. I have a theory that the DTSTART property is inserted there because of iTIP, which considers it mandatory for the methods that apply to VTODOs.
This also gets interesting when some revisions of the CalDAV Scheduling draft are implemented on the server. In such case the client not only has to consider the mandatory iCalendar properties, but also the mandatory iTIP properties and it all gets a bit confusing.
Posted by Filip Navara on January 29, 2009 at 04:53 PM CET #
Interesting. Did you already issue a bug report on the Apple Radar?
Posted by Helge on January 29, 2009 at 11:07 PM CET #
Hopefully, the DTSTART won't be mandatory in the next revision of iTIP.
Posted by Arnaud Quillaud on January 30, 2009 at 06:40 PM CET #
We submitted a bug (6203713) using ADC. No news so far.
Posted by Arnaud Quillaud on January 30, 2009 at 06:44 PM CET #
It should also be noted that the display of to-dos created by Apple iCal becomes "interesting" in Mozilla Lightning/Sunbird with the option "Show Tasks in Calendar" enabled (see: Calendar | View | Show Tasks in Calendar).
Posted by Bernard Desruisseaux on February 27, 2009 at 07:22 PM CET #