Search code examples
google-calendar-apiicalendarrecurrence

ICS Recurrence-id range thisandfuture not changing later events


For testing I have an ics file that creates a recurring event weekly for 4 weeks.

BEGIN:VCALENDAR
PRODID:-//Cisa//Cisa Planningen//BE
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART;TZID=Europe/Brussels:20150508T083000
DTEND;TZID=Europe/Brussels:20150508T115000
DTSTAMP:20150518T072640Z
RRULE:FREQ=WEEKLY;COUNT=4;BYDAY=FR
UID:[email protected]
DESCRIPTION:Commercieel Commitment PSV
LOCATION:PSV
STATUS:CONFIRMED
SUMMARY:Rec PSV
END:VEVENT
END:VCALENDAR

After that I want to edit the events from the third occurance (Not necesarily the third one, but just the one I used in my example.) So my first example would give a weekly event on friday, and after that I'd for example want to change the day to wednesday but when I use the recurrence-id with range in this snippet:

BEGIN:VCALENDAR
PRODID:-//Cisa//Cisa Planningen//BE
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART;TZID=Europe/Brussels:20150521T083000
DTEND;TZID=Europe/Brussels:20150521T115000
DTSTAMP:20150518T072640Z
UID:[email protected]
RECURRENCE-ID;RANGE=THISANDFUTURE:TZID=Europe/Brussels:20150522T083000
DESCRIPTION:Commercieel Commitment PSV
LOCATION:PSV
STATUS:CONFIRMED
SUMMARY:Rec PSV
END:VEVENT
END:VCALENDAR

However only the single event that has the actual timing in the recurrence-id gets its date changed, while the event after that, doesn't change.

To test these ics files, I've used google calendar so far. Any suggestions on why this doesn't work, and how to make it work?


Solution

  • While it is part of RFC5545, RANGE based RECURRENCE-ID are poorly understood by most clients/servers, except maybe by Lotus Notes. What clients typically end up doing is to put an end to the old event (UNTIL parameter in the RRULE) and to create a new event (with a new UID) and a RELATED-TO property pointing at the OLD event.

    It is even more true if you are actually changing the recurrence pattern (from Friday to Wednesday).