google-calendar-apiicalendarrrule

Value of UNTIL in RRULE when breaking a repeat event


Consider the following Repeat event in Google Calendar with the RRULE as mentioned below.

BEGIN:VEVENT
DTSTART;TZID=Asia/Calcutta:20170111T020000
DTEND;TZID=Asia/Calcutta:20170111T050000
RRULE:FREQ=DAILY;UNTIL=20170116T203000Z
DTSTAMP:20170110T150957Z
CREATED:20170110T150942Z
DESCRIPTION:
LAST-MODIFIED:20170110T150942Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Repeat event test
TRANSP:OPAQUE
END:VEVENT

If this event is now edited by breaking the recurrence series into two parts(Edit this and future events) on say 14th Jan, the RRULE of this event is changed to the following

RRULE:FREQ=DAILY;UNTIL=20170113T182959Z

Why is the value of UNTIL set to 1 second less than the RECURRENCEID/DTSTART value of the recurrence on 14th January instead of setting it to the DTSTART value of the recurrence on 13th January. Is there a standard that the UNTIL value in RRULE in such cases must be set in this manner (i.e. 1 second less)?


Solution

  • You wont find any standard mentioning this. https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10 mentions how

    If the value specified by UNTIL is synchronized with the specified recurrence, this DATE or DATE-TIME becomes the last instance of the recurrence.

    but it does not mandate that the value must be synchronized with the recurrence, nor does it mention that it should be 1 second less whatever.

    I suspect that this was just a convenience for the developer since the cutoff date is the 14th which he is aready manipulating, whereas the previous instance would have been required to be calculated.