[kronolith] The DTEND value in iCalendar export and import
Arne Nordmark
nordmark at mech.kth.se
Wed Jan 1 16:39:15 UTC 2014
Currently, kronolith increments time by one second when forming the
DTEND field on iCalendar export, and decrements by one second on import.
Thus, a one-hour event created in kronolith (with SQL backend) is
exported with a 3601 second difference between DTSTART and DTEND.
This behaviour is not mimicked by any other calendar application or
other source of iCalender data I have come across. For example,
Lightning/Thunderbird, Gnome Evolution, and the Android calendar all
export a 3600 second DTEND-DTSTART difference for a one-hour event.
The kronolith behaviour causes a number of problems when data exchanging
data between kronolith and such applications. Events created
back-to-back in kronolith will be shown as overlapping (by 1 second) in
these applications. Events created by these applications will show the
wrong ending minute (one too early) in kronolith.
The reason I am not simply reporting this as a bug is that the change
appears to fairly recent and deliberate. For example, in ticket #12489
one finds "According to RFC 2445
the DTEND field is a non-inclusive. In other words, the actual event
ends one second BEFORE the value of DTEND. Kronolith, on the other
hand stores the event end time as an inclusive value, i.e., the event
ends exactly on the second specified. We therefore have to increment
the DTEND value by one second so that the value presented in the iCal
file is non-inclusive."
Now this does not seem to be how other implementations interpret the
wording "non-inclusive" in RFC 5545. Rather, given and ending time
14:00, of the three time points 13:59:59, 13:59:59.9, and 14:00:00, only
the first two fall inside the event, that is the exact ending time point
is excluded. Thus for example an event 13-14 and one 14-15 have no time
point in common. This is not the same as "the actual event
ends one second BEFORE the value of DTEND".
Given the problems the current behaviour is causing and how it
diminishes the value of the recently introduced CalDAV support (thanks
for that!), would a bug report like this be accepted, and if not, could
the reasoning behind the current behaviour be clarified?
Thanks
Arne Nordmark
More information about the kronolith
mailing list