The definition of an untimed all day and/or multi day event in the ical spec can be confusing. See an extract from http://www.innerjoin.org/iCalendar/all-day-events.html for an explanation of the logic.
Google calendar certainly adheres to this , as does Thunderbird Calendar.
All Day Events
Applying the logic of an event to a date, an ‘all day’ event is flagged as starting at the beginning of one day and lasting until the beginning of the next:
DTSTART;VALUE=DATE:20020923
DTEND;VALUE=DATE:20020924
gives an event lasting the whole day. Or to be very precise:
DTSTART:20020923T000000
DTEND:20020924T000000
So what happens if your ics file generator does not adhere to this logic?
It may give the wrong end dates, and tt may not be “subscribeable” – Certainly I cannot load into google or thunderbird any ics generated by “PRODID:-//WebCalendar-ics-v1.2.0”, as they do not follow this logic. This may of course be due to other errors. For example it also has no timezone definition.
So what should my plugin do? For single day all day events, one can certainly check the dates, however for multi day all day events, there is no way of knowing what the event creator intended!.
Version 2.5.6 being uploaded as I type attempts to cope with the good and the erroneous!