Function: icalendar-match-vcalendar-component

icalendar-match-vcalendar-component is a byte-compiled function defined in icalendar-parser.el.gz.

Signature

(icalendar-match-vcalendar-component LIMIT)

Documentation

Matcher for VCALENDAR component boundaries.

(Defined by icalendar-define-component.)

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/icalendar-parser.el.gz
;; Technically VCALENDAR is not a "component", but for the
;; purposes of parsing and syntax highlighting, it looks just like
;; one, so we define it as such here.
;; (If this becomes a problem, modify `ical:component-node-p'
;; to return nil for VCALENDAR components.)
(ical:define-component ical:vcalendar "VCALENDAR"
  "Calendar Object.

This is the top-level data structure defined by RFC5545.  A
VCALENDAR must contain the calendar properties `icalendar-prodid'
and `icalendar-version', and may contain the calendar properties
`icalendar-method' and `icalendar-calscale'.

It must also contain at least one VEVENT, VTODO, VJOURNAL,
VFREEBUSY, or other component, and for every unique
`icalendar-tzidparam' value appearing in a property within these
components, the calendar object must contain an
`icalendar-vtimezone' defining a time zone with that TZID."
  :child-spec (:one (ical:prodid ical:version)
               :zero-or-one (ical:calscale ical:method)
               :zero-or-more (ical:other-property
                              ical:vevent
                              ical:vtodo
                              ical:vjournal
                              ical:vfreebusy
                              ical:vtimezone
                              ical:other-component))
  :other-validator ical:vcalendar-validator
  :link "https://www.rfc-editor.org/rfc/rfc5545#section-3.4")