Compatibility#
RFC Specifications#
RFC 2445 - iCalendar#
RFC 2445 is deprecated and has been replaced by RFC 5545 and RFC 7529.
RFC 5545 - iCalendar#
RFC 5545 is fully supported.
This is the core specification for the occurrences that this library computes:
VEVENT, VTODO, VJOURNAL, VALARM, RRULE, RDATE,
EXDATE, RECURRENCE-ID, and the alarm TRIGGER rules.
RFC 7529 - Non-Gregorian Recurrence Rules#
RFC 7529 is not implemented.
RFC 7953 - Calendar Availability#
RFC 7953 is not implemented.
RFC 9074 - VALARM Extensions for iCalendar#
RFC 9074 updates VALARM components.
This library computes alarm occurrences from the TRIGGER, REPEAT, and
DURATION rules defined for alarms by RFC 5545.
The extra alarm metadata and interoperability features from RFC 9074, such
as UID, ACKNOWLEDGED, RELATED-TO, and PROXIMITY, do not change
which occurrences are returned.
RFCs and occurrence calculation#
The library computes when supported calendar components occur.
RFCs that change recurrence rules, component time spans, or alarm trigger times
can affect this computation.
RFCs that add descriptive metadata, relationship metadata, or scheduling
protocol semantics can be present in iCalendar data, but they do not by
themselves change the result of at(), between(), after(), or
all().
RFC |
Scope for this library |
|---|---|
Core recurrence, exception, component, and alarm trigger rules. |
|
iTIP scheduling messages; not used to expand occurrence times. |
|
Parameter value encoding; handled before recurrence logic. |
|
Non-Gregorian |
|
|
|
New descriptive properties; no direct effect on occurrence times. |
|
Event publishing properties, components, and structured data; no direct effect on occurrence times. |
|
Alarm extensions; base alarm trigger calculation is supported through RFC 5545, while the added metadata does not change occurrence times. |
|
Relationship and linking properties; not used to expand or filter occurrences. |
Other Specifications#
X-WR-TIMEZONE#
X-WR-TIMEZONE is supported through the X-WR-TIMEZONE library.
Feature list#
✅ day light saving time (DONE)
✅ recurring events (DONE)
✅ recurring events with edits (DONE)
✅ recurring events where events are omitted (DONE)
✅ recurring events events where the edit took place later (DONE)
✅ normal events (DONE)
✅ recurrence of dates but not hours, minutes, and smaller (DONE)
✅ endless recurrence (DONE)
✅ ending recurrence (DONE)
✅ events with start date and no end date (DONE)
✅ events with start as date and start as datetime (DONE)
✅ RRULE (DONE)
✅ events with multiple RRULE (DONE)
✅ RDATE (DONE)
✅ DURATION (DONE)
✅ EXDATE (DONE)
✅ X-WR-TIMEZONE compatibility (DONE)
✅ RECURRENCE-ID with THISANDFUTURE - modify all future events (DONE)
Missing features#
❌ non-gregorian event repetitions (TODO)
❌ EXRULE (deprecated), see 8.3.2. Properties Registry