Timely‘s WordPress Calendar plugin doesn’t interoperate well with RFC 2445 iCalendar feeds that contain all-day untimed events specified by both DTSTART
and a DURATION:P1D
. Instead of interpreting them as a one-day all-day event, it seems to interpret them as a two-day event.
I examined a half-dozen calendar apps to see how they generate these kinds of events and here’s what I found:
Apple Calendar.app (Mac OS X 10.9.2)
BEGIN:VEVENT DTSTART;VALUE=DATE:20140312 DTEND;VALUE=DATE:20140313 SUMMARY:New Event END:VEVENT
Google Calendar
BEGIN:VEVENT DTSTART;VALUE=DATE:20140312 DTEND;VALUE=DATE:20140313 SUMMARY:Untitled event END:VEVENT
Microsoft Outlook Mac 2011 (version 14.3.9)
BEGIN:VEVENT DTSTART;TZID="Coordinated Universal Time":20140312T000000 DTEND;TZID="Coordinated Universal Time":20140313T000000 SUMMARY:New Appointment END:VEVENT
Windows Live Calendar (Outlook.com)
BEGIN:VEVENT DTSTART;VALUE=DATE:20140312 DTEND;VALUE=DATE:20140313 SUMMARY:Example END:VEVENT
Yahoo! Calendar
BEGIN:VEVENT SUMMARY:Example DTSTART;VALUE=DATE:20140312 DTEND;VALUE=DATE:20140312 END:VEVENT
Hebcal.com
BEGIN:VEVENT SUMMARY:Purim DTSTART;VALUE=DATE:20140316 DURATION:P1D END:VEVENT
AddThisEvent.com
BEGIN:VEVENT DTSTART:20140312 DTEND:20140313 SUMMARY:Example END:VEVENT
Since the overwhelming majority seem to use both DTSTART
+ DTEND
, I may change Hebcal’s feeds to follow suit. I’ll need to do some interop testing with older versions of Microsoft Outlook for Windows first.