[dev] kronolith VCALENDAR export/import for all day events

Karsten Fourmont fourmont at gmx.de
Sat Oct 28 14:19:28 PDT 2006


Hi,

until now, we did export and all day event of let's say new Year's eve 
to vcalendar as this:

BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
SUMMARY:New Year's eve
DTSTART;VALUE=DATE:20063112
DTSTART;VALUE=DATE:20070101
END:VEVENT
END:VCALENDAR

Two problems:
1) it seems better to have the end date as 20063112 rather than 
20070101. Currently it looks like a two day event. Actually when 
importing this again into horde it is converted to a two day event.

2) VCALENDAR version 1.0 simply doesn't support VALUE=DATE
This is only allowed in VCALENDAR 2.0!

Looking at how other devices handle all day events it seems they get 
sent as this:
DTSTART:20063112T000000
DTEND:200613112T235959
or as this
DTSTART:20063112T000000
DTEND:20070101T000000
Please note these are not UTC (no terminal Z).

So I implemented the following changes:

1) The VALUE=DATE option is only used for VCALENDAR2.0. A one day event 
is exported as this:
DTSTART;VALUE=DATE:20063112
DTEND;VALUE=DATE:20063112

2) For VCALENDAR 1.0 the same event is exported like this:
DTSTART:20063112T000000
DTEND:20063112T235959
This is the format the Synthesis client uses and the Synthesis guys seem 
to have the biggest experience about what various clients accept.

3) When importing an event, all of these are considered all day events:
a)
DTSTART;VALUE=DATE:20063112
DTSTART;VALUE=DATE:20063112
b)
DTSTART:20063112T000000
DTEND:200613112T235959
c)
DTSTART:20063112T000000
DTEND:20070101T0000


It's in CVS like this now. If I should change anything, please let me know.

Cheers,
  Karsten


More information about the dev mailing list