RFC5545 compliance: don't use an iCalendar DATE value type for midnight
Originally filed in GNOME Bugzilla #786158 by "Stephen":
Creating an event starting at a time equivalent to midnight UTC results in a VEVENT
in an iCalendar calendar like the following:
DTSTART;VALUE=DATE:20170818
DTEND:20170818T010000Z
The above was the result of creating an event for 01:00-02:00 in Europe/London (UTC+1 at the moment).
This is totally wrong. It should be a DATE-TIME
, like the end time above. The above start time is effectively a floating time, so now you have an event with a floating start time and time zone-anchored end time.
I couldn't find anything explicit in the RFC about interpretation of a DATE
value used in this way, but given the absence of time zone specification in a DATE
value, the value would be most sensibly interpreted as a floating time of 00:00.
That means another client would reasonably interpret the above as "starts at 00:00 local time, ends at 00:00 UTC". In fact that is what Evolution does - it's interpreted as 00:00-02:00 Europe/London (UTC+1).
Event DTEND
seems to always be a DATE-TIME
- only DTSTART
seems to have this broken behaviour.