0

Consider a recurring iCalendar event as follows:

BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;TZID=Europe/Vienna:20221029T010000
DURATION:PT4H
RRULE:FREQ=DAILY
END:VEVENT
END:VCALENDAR

The first two recurrences end at the following times:

  1. 2022-10-29 05:00 local time
  2. 2022-10-30 04:00 local time (DST ends at 3:00 local time)

Due to DST ending on 2022-10-30, the second recurrence ends at 4:00 rather than at 5:00. This is because the time part of the duration is considered an accurate duration rather than a nominal duration according to RFC 5545:

The format can represent nominal durations (weeks and days) and accurate durations (hours, minutes, and seconds).

If we'd specify DTEND;TZID=Europe/Vienna:20221029T050000 instead of the DURATION, then the result would still be the same, because according to the spec the same exact duration would apply to all recurrences:

If the duration of the recurring component is specified with the "DTEND" or "DUE" property, then the same exact duration will apply to all the members of the generated recurrence set.

That said, my questions are:

  1. Are my assumptions as outlined above correct?
  2. Is there a way of specifying the duration in a way, so that all recurrences end at 5:00 local time? In other words, is there a way of specifying the time part of a duration as nominal duration rather than as accurate duration?
MarkusM
  • 751
  • 1
  • 5
  • 14

0 Answers0