Skip to content
axunonb edited this page Jul 1, 2025 · 1 revision

FAQ

This FAQ targets version 5.0 of the iCal.NET library.

Period returned by GetOccurrences()

Why is Period.EndTime not set?

This might not feel too natural. Duration and EndTime are influenced by DST changes. As EndTime is represented as CalDateTime, which does not provide any means of resolving ambiguous date/times, it is not well suited for representing the end time. For the start time this is fine, because the RFC specifies how ambiguous dates shall be resolved, but for the end time this is not the case.

How to interpret the Period.EffectiveDuration amd Period.EffectiveEndTime?

RFC 5545 distinguishes between exact time and nominal time. If an event's duration is specified via the DTEND property, then the duration is considered exact, i.e. the same number of seconds apply to every recurrence. If its specified via the DURATION property, then the duration's day and week parts are considered nominal while the time part is considered exact. Nominal means that the duration is calculated in local time.

The EffectiveDuration actually honors the event's EndTime and Duration properties behind the scenes and applies the rules imposed by RFC 5545. Period.EffectiveDuration and Period.EffectiveEndTime are calculated based on the Period.StartTime and the event's EndTime or Duration properties.

Clone this wiki locally