RFC Errata
RFC 5545, "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", September 2009
Note: This RFC has been updated by RFC 5546, RFC 6868, RFC 7529, RFC 7953, RFC 7986, RFC 9073, RFC 9074, RFC 9253
Source of RFC: calsify (app)
Errata ID: 5214
Status: Rejected
Type: Technical
Publication Format(s) : TEXT
Reported By: Richard Smith
Date Reported: 2017-12-24
Rejected by: Francesca Palombini
Date Rejected: 2024-01-16
Section 3.6.5 says:
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF *( ; ; 'tzid' is REQUIRED, but MUST NOT occur more ; than once. ; tzid / ; ; 'last-mod' and 'tzurl' are OPTIONAL, ; but MUST NOT occur more than once. ; last-mod / tzurl / ; ; One of 'standardc' or 'daylightc' MUST occur ; and each MAY occur more than once. ; standardc / daylightc / ; ; The following are OPTIONAL, ; and MAY occur more than once. ; x-prop / iana-prop ; ) "END" ":" "VTIMEZONE" CRLF
It should say:
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF timezoneprop timezonesubc "END" ":" "VTIMEZONE" CRLF timezoneprop = *( ; ; 'tzid' is REQUIRED, but MUST NOT occur more ; than once. ; tzid / ; ; 'last-mod' and 'tzurl' are OPTIONAL, ; but MUST NOT occur more than once. ; last-mod / tzurl / ; ; The following are OPTIONAL, ; and MAY occur more than once. ; x-prop / iana-prop ; timezonesubc = *( ; ; One of 'standardc' or 'daylightc' MUST occur ; and each MAY occur more than once. ; standardc / daylightc ; )
Notes:
The definition of icalbody shows that calendar properties precede components. Some components may contains sub-components. For those that may:
The definition of eventc (section 3.6.1 - Event Component) also shows that properties precede sub-components.
The definition of todoc (section 3.6.2 - To-Do Component) also shows that properties precede sub-components.
However, the definition of timezonec (section 3.6.5 - Time Zone Component) shows that properties and sub-components may be intermingled. The corrected text assumes this was not intended.
--VERIFIER NOTES--
The current ABNF doesn't appear to cause any interop problems, given that both ical4j and libical don't care about the order of properties and components within a VTIMEZONE component.
See https://mailarchive.ietf.org/arch/msg/calsify/x82GopunVcEh8y5UGSIsEIC3s6M/