1

I am looking for a way to represent recurrence in iCalendar that works in Google Calendar, Android and iOS. I am working with a timetabling system where weekly recurrence is very common but the patterns of recurrence are not always regular.

Here are some examples, both work in Google Calendar. Ideally I want one feed for all devices.

Works in Android (but not in iOS)

BEGIN:VEVENT
DTSTAMP:20121113T111932Z
SUMMARY:A Series of Meetings
LOCATION:Somewhere
DESCRIPTION:Very important things to discuss
TZID:Europe/London
DTSTART;TZID=Europe/London:20121204T140000
DTEND;TZID=Europe/London:20121204T160000
RDATE;TZID=Europe/London:20121204T140000,20130115T140000,20130129T140000
SEQUENCE:1
UID:blahblahblah
END:VEVENT

I found that if I omitted the DTSTART date from the RDATE list it did not show the first activity occurrence on Android (but did in Google Calendar). I came to the conclusion that RDATEs do not work on Apple devices.

Works in iOS (but not in Android)

BEGIN:VEVENT
DTSTAMP:20121113T112004Z
SUMMARY:A Series of Meetings
LOCATION:Somewhere
DESCRIPTION:Very important things to discuss
TZID:Europe/London
DTSTART;TZID=Europe/London:20121204T140000
DTEND;TZID=Europe/London:20121204T160000
RRULE:FREQ=WEEKLY;UNTIL=20130129T140000;INTERVAL=1
EXDATE:20121211T140000,20121218T140000,20121225T140000,20130101T140000,20130108T140000,20130122T140000
SEQUENCE:1
UID:blahblahblah
END:VEVENT

I appreciate that the above iOS example is probably not the most efficient way to produce an RRULE but I am looking for a method that is easy to produce for weekly recurrent activities of various patterns.

The iOS example fails in Android because only the first EXDATE entry is observed. I think Google Calendar is putting the EXDATE's on separate lines and therefore breaking it for Android consumption.

Community
  • 1
  • 1
Mark McLaren
  • 11,470
  • 2
  • 48
  • 79

0 Answers0