By arnaudq on Jan 30, 2009
Lightning 0.9 also let you create VTODOs (Tasks) and store them on a CalDAV Server. By default those tasks have no associated dates but one can add a due date + time:
Here is how such a task is stored on the CalDAV server:
... DUE;TZID=Europe/Paris:20090129T160000 ...
The VTODO component has a correct DUE property and no DTSTART.
If one tries to add an alarm to this task (trigger -15 minutes before), the start time of the task which was unset becomes auto selected and can not be removed (although it can be changed):
Here is how the VTODO is stored on the CalDAV Server:
... DTSTART;TZID=Europe/Paris:20090129T160000 DUE;TZID=Europe/Paris:20090129T160000 BEGIN:VALARM TRIGGER;VALUE=DURATION:-PT15M DESCRIPTION:Mozilla Alarm: New Task ACTION:DISPLAY END:VALARM ...
Here again, the TRIGGER property is missing a RELATED=END parameter to indicate that the alarm is relative to the due date. Instead, a DTSTART was added, "without the user's consent".
In addition, given that the DTSTART value is equal to the DUE value, this component is valid per RFC2445 but invalid per the new calsify spec where the DUE value must be later in time than the value of the DTSTART.
I should have started by stating that I'm not trying to put any judgment on the quality of one implementation over another but rather to see how todos with due date are used by clients, how they can interoperate, and maybe help future client implementations.