File: icalendar-parser.el.html

For an overview of the iCalendar library, see icalendar-shortdoc.el.

This file defines regular expressions, constants and functions that implement the iCalendar grammar according to RFC5545.

iCalendar data is grouped into *components*, such as events or to-do items. Each component contains one or more *content lines*, which each contain a *property* name and its *value*, and possibly also property *parameters* with additional data that affects the interpretation of the property.

The macros ical:define-type, ical:define-param, ical:define-property and ical:define-component, defined in icalendar-macs.el, each create rx-style regular expressions for one of these categories in the grammar and are used here to define the particular value types, parameters, properties and components in the standard as type symbols. These type symbols store all the metadata about the relevant types, and are used for type-based dispatch in the parser and printer functions. In the abstract syntax tree, each node contains a type symbol naming its type. A number of other regular expressions which encode basic categories of the grammar are also defined in this file.

The following functions provide the high-level interface to the parser:

  icalendar-parse-and-index
  icalendar-parse
  icalendar-parse-calendar
  icalendar-parse-component
  icalendar-parse-property
  icalendar-parse-params

The format of the abstract syntax tree which these functions create is documented in icalendar-ast.el. Nodes in this tree can be serialized to iCalendar format with the corresponding printer functions:

  icalendar-print-calendar-node
  icalendar-print-component-node
  icalendar-print-property-node
  icalendar-print-params

Defined variables (10)

icalendar--rrule-value-typesPlist mapping ‘icalendar-recur’ keywords to type specifiers.
icalendar-component-typesAlist mapping printed component names to type symbols.
icalendar-describe-symbol-backendEntry for icalendar documentation in ‘describe-symbol-backends’.
icalendar-param-typesAlist mapping printed parameter names to type symbols.
icalendar-parse-strictlyWhen non-nil, iCalendar data will be parsed strictly.
icalendar-pre-parsing-hookHook run by ‘icalendar-parse’ before parsing iCalendar data.
icalendar-pre-unfolding-hookHook run before unfolding iCalendar data.
icalendar-property-typesAlist mapping printed property names to type symbols.
icalendar-value-typesAlist mapping value type strings to type symbols.
icalendar-weekday-numbersAlist mapping two-letter weekday abbreviations to numbers 0 to 6.

Defined functions (302)

icalendar--decoded-date-time-p(VAL)
icalendar--decoded-time-p(VAL)
icalendar--time-delta-p(VAL)
icalendar-action-property-p(NODE)
icalendar-all-tzidparams-in(NODE)
icalendar-altrep-param-p(NODE)
icalendar-attach-property-p(NODE)
icalendar-attach-validator(NODE)
icalendar-attendee-property-p(NODE)
icalendar-calscale-property-p(NODE)
icalendar-categories-property-p(NODE)
icalendar-class-property-p(NODE)
icalendar-cn-param-p(NODE)
icalendar-comment-property-p(NODE)
icalendar-completed-property-p(NODE)
icalendar-contact-property-p(NODE)
icalendar-contains-folded-lines-p(&optional BUFFER)
icalendar-contains-unfolded-lines-p(&optional BUFFER)
icalendar-contains-vcalendar-p(&optional BUFFER)
icalendar-created-property-p(NODE)
icalendar-cutype-param-p(NODE)
icalendar-date-time-is-utc-p(DATETIME)
icalendar-daylight-component-p(NODE)
icalendar-dayno-offset-p(VAL)
icalendar-default-value-printer(VAL)
icalendar-delegated-from-param-p(NODE)
icalendar-delegated-to-param-p(NODE)
icalendar-description-property-p(NODE)
icalendar-dir-param-p(NODE)
icalendar-documentation(SYM BUF FRAME)
icalendar-documented-symbol-p(SYM)
icalendar-dtend-property-p(NODE)
icalendar-dtstamp-property-p(NODE)
icalendar-dtstart-property-p(NODE)
icalendar-due-property-p(NODE)
icalendar-duration-property-p(NODE)
icalendar-encoding-param-p(NODE)
icalendar-escape-text-in-region(BEGIN END)
icalendar-escape-text-string(S)
icalendar-exdate-property-p(NODE)
icalendar-fbtype-param-p(NODE)
icalendar-find-unfolded-buffer-visiting(FILENAME)
icalendar-fix-blank-lines()
icalendar-fix-hyphenated-dates()
icalendar-fix-line-endings()
icalendar-fix-missing-mailtos()
icalendar-fmttype-param-p(NODE)
icalendar-fold-region(BEGIN END &optional ANNOTATE-ONLY USE-TABS)
icalendar-folded-p(&optional BUFFER)
icalendar-folding-annotations(START END &optional BUFFER)
icalendar-freebusy-property-p(NODE)
icalendar-geo-coordinates-p(VAL)
icalendar-geo-property-p(NODE)
icalendar-handle-parse-error(ERR-DATA &optional SKIP-MSG ERR-BUFFER)
icalendar-handle-print-error(ERR-DATA &optional SKIP-MSG ERR-BUFFER)
icalendar-index-get
icalendar-index-insert(INDEX COMPONENT)
icalendar-index-insert-tz(INDEX VTIMEZONE)
icalendar-index-populate-from-calendar(INDEX VCALENDAR)
icalendar-language-param-p(NODE)
icalendar-last-modified-property-p(NODE)
icalendar-list-of-p(LIST TYPE)
icalendar-location-property-p(NODE)
icalendar-make-index()
icalendar-make-period
icalendar-make-text-region(&optional BUFFER BEGIN END)
icalendar-match-action-property(LIMIT)
icalendar-match-altrep-param(LIMIT)
icalendar-match-attach-property(LIMIT)
icalendar-match-attendee-property(LIMIT)
icalendar-match-binary-value(S)
icalendar-match-boolean-value(S)
icalendar-match-cal-address-value(S)
icalendar-match-calscale-property(LIMIT)
icalendar-match-categories-property(LIMIT)
icalendar-match-class-property(LIMIT)
icalendar-match-cn-param(LIMIT)
icalendar-match-comment-property(LIMIT)
icalendar-match-completed-property(LIMIT)
icalendar-match-contact-property(LIMIT)
icalendar-match-created-property(LIMIT)
icalendar-match-cutype-param(LIMIT)
icalendar-match-date-time-value(S)
icalendar-match-date-value(S)
icalendar-match-daylight-component(LIMIT)
icalendar-match-delegated-from-param(LIMIT)
icalendar-match-delegated-to-param(LIMIT)
icalendar-match-description-property(LIMIT)
icalendar-match-dir-param(LIMIT)
icalendar-match-dtend-property(LIMIT)
icalendar-match-dtstamp-property(LIMIT)
icalendar-match-dtstart-property(LIMIT)
icalendar-match-due-property(LIMIT)
icalendar-match-duration-property(LIMIT)
icalendar-match-duration-value(S)
icalendar-match-encoding-param(LIMIT)
icalendar-match-exdate-property(LIMIT)
icalendar-match-fbtype-param(LIMIT)
icalendar-match-float-value(S)
icalendar-match-fmttype-param(LIMIT)
icalendar-match-freebusy-property(LIMIT)
icalendar-match-geo-coordinates-value(S)
icalendar-match-geo-property(LIMIT)
icalendar-match-integer-value(S)
icalendar-match-language-param(LIMIT)
icalendar-match-last-modified-property(LIMIT)
icalendar-match-location-property(LIMIT)
icalendar-match-member-param(LIMIT)
icalendar-match-method-property(LIMIT)
icalendar-match-organizer-property(LIMIT)
icalendar-match-other-component(LIMIT)
icalendar-match-other-param(LIMIT)
icalendar-match-other-property(LIMIT)
icalendar-match-partstat-param(LIMIT)
icalendar-match-percent-complete-property(LIMIT)
icalendar-match-period-value(S)
icalendar-match-printed-value-type-value(S)
icalendar-match-priority-property(LIMIT)
icalendar-match-prodid-property(LIMIT)
icalendar-match-range-param(LIMIT)
icalendar-match-rdate-property(LIMIT)
icalendar-match-recur-value(S)
icalendar-match-recurrence-id-property(LIMIT)
icalendar-match-related-param(LIMIT)
icalendar-match-related-to-property(LIMIT)
icalendar-match-reltype-param(LIMIT)
icalendar-match-repeat-property(LIMIT)
icalendar-match-req-status-info-value(S)
icalendar-match-request-status-property(LIMIT)
icalendar-match-resources-property(LIMIT)
icalendar-match-role-param(LIMIT)
icalendar-match-rrule-property(LIMIT)
icalendar-match-rsvp-param(LIMIT)
icalendar-match-sent-by-param(LIMIT)
icalendar-match-sequence-property(LIMIT)
icalendar-match-standard-component(LIMIT)
icalendar-match-status-keyword-value(S)
icalendar-match-status-property(LIMIT)
icalendar-match-summary-property(LIMIT)
icalendar-match-text-value(S)
icalendar-match-time-value(S)
icalendar-match-transp-property(LIMIT)
icalendar-match-trigger-property(LIMIT)
icalendar-match-tzid-param(LIMIT)
icalendar-match-tzid-property(LIMIT)
icalendar-match-tzname-property(LIMIT)
icalendar-match-tzoffsetfrom-property(LIMIT)
icalendar-match-tzoffsetto-property(LIMIT)
icalendar-match-tzurl-property(LIMIT)
icalendar-match-uid-property(LIMIT)
icalendar-match-uri-value(S)
icalendar-match-url-property(LIMIT)
icalendar-match-utc-offset-value(S)
icalendar-match-valarm-component(LIMIT)
icalendar-match-value-param(LIMIT)
icalendar-match-vcalendar-component(LIMIT)
icalendar-match-version-property(LIMIT)
icalendar-match-vevent-component(LIMIT)
icalendar-match-vfreebusy-component(LIMIT)
icalendar-match-vjournal-component(LIMIT)
icalendar-match-vtimezone-component(LIMIT)
icalendar-match-vtodo-component(LIMIT)
icalendar-maybe-add-value-param(PROPERTY-NODE)
icalendar-maybe-quote-param-value(S &optional ALWAYS)
icalendar-member-param-p(NODE)
icalendar-method-property-p(NODE)
icalendar-organizer-property-p(NODE)
icalendar-other-component-p(NODE)
icalendar-other-param-p(NODE)
icalendar-other-property-p(NODE)
icalendar-parse(&optional BUFFER)
icalendar-parse-and-index(&optional BUFFER-OR-FILE)
icalendar-parse-calendar(LIMIT)
icalendar-parse-component(LIMIT)
icalendar-parse-from-string(TYPE S)
icalendar-parse-one-of(TYPES LIMIT)
icalendar-parse-param-value(TYPE LIMIT)
icalendar-parse-params(LIMIT)
icalendar-parse-property(LIMIT)
icalendar-parse-property-or-component(LIMIT)
icalendar-parse-property-value(TYPE LIMIT &optional PARAMS)
icalendar-parse-value-node(TYPE LIMIT)
icalendar-parser-unload-function()
icalendar-partstat-param-p(NODE)
icalendar-percent-complete-property-p(NODE)
icalendar-period--defined-end(PERIOD)
icalendar-period-dur-value(PERIOD)
icalendar-period-end(PERIOD &optional VTIMEZONE)
icalendar-period-p(VAL)
icalendar-period-start(PERIOD)
icalendar-print-boolean(B)
icalendar-print-calendar-node(VCALENDAR)
icalendar-print-component-node(NODE)
icalendar-print-date(D)
icalendar-print-date-time(DATETIME)
icalendar-print-dur-value(DUR)
icalendar-print-geo-coordinates(VAL)
icalendar-print-param-node(NODE)
icalendar-print-params(PARAM-NODES)
icalendar-print-period(PER)
icalendar-print-property-node(NODE)
icalendar-print-property-or-component(NODE)
icalendar-print-req-status-info(RSI)
icalendar-print-rrule-part(PART)
icalendar-print-rrule-value(VAL)
icalendar-print-text(VAL)
icalendar-print-time(TIME)
icalendar-print-utc-offset(UTCOFF)
icalendar-print-value-node(NODE)
icalendar-print-value-type(TYPE)
icalendar-print-weekdaynum(VAL)
icalendar-printable-value-type-symbol-p(SYMBOL)
icalendar-priority-property-p(NODE)
icalendar-prodid-property-p(NODE)
icalendar-property-w/tzid-validator(NODE)
icalendar-range-param-p(NODE)
icalendar-rdate-property-p(NODE)
icalendar-read-boolean(S)
icalendar-read-date(S)
icalendar-read-date-time(S)
icalendar-read-dur-value(S)
icalendar-read-geo-coordinates(S)
icalendar-read-list-of(TYPE STRING &optional SEPARATORS OMIT-NULLS TRIM)
icalendar-read-list-with(READER STRING &optional VALUE-REGEX SEPARATORS OMIT-NULLS TRIM)
icalendar-read-param-value(TYPE S)
icalendar-read-period(S)
icalendar-read-property-value(TYPE S &optional PARAMS)
icalendar-read-req-status-info(S)
icalendar-read-rrule-part(S)
icalendar-read-rrule-value(S)
icalendar-read-text(S)
icalendar-read-time(S)
icalendar-read-utc-offset(S)
icalendar-read-value-node(TYPE S)
icalendar-read-value-type(S)
icalendar-read-weekdaynum(S)
icalendar-recurrence-id-property-p(NODE)
icalendar-related-param-p(NODE)
icalendar-related-to-property-p(NODE)
icalendar-reltype-param-p(NODE)
icalendar-repeat-property-p(NODE)
icalendar-req-status-info-p(VAL)
icalendar-request-status-property-p(NODE)
icalendar-requires-utc-validator(NODE)
icalendar-resources-property-p(NODE)
icalendar-role-param-p(NODE)
icalendar-rrule-by*(BYUNIT RRULE)
icalendar-rrule-count(RRULE)
icalendar-rrule-freq(RRULE)
icalendar-rrule-interval-size(RRULE)
icalendar-rrule-property-p(NODE)
icalendar-rrule-until(RRULE)
icalendar-rrule-validator(NODE)
icalendar-rrule-value-p(VALS)
icalendar-rrule-weekstart(RRULE)
icalendar-rsvp-param-p(NODE)
icalendar-sent-by-param-p(NODE)
icalendar-sequence-property-p(NODE)
icalendar-signal-parse-error
icalendar-signal-print-error
icalendar-standard-component-p(NODE)
icalendar-status-property-p(NODE)
icalendar-summary-property-p(NODE)
icalendar-text-region-begin(R)
icalendar-text-region-end(R)
icalendar-text-region-p(VAL)
icalendar-text-to-string(NODE)
icalendar-transp-property-p(NODE)
icalendar-trigger-property-p(NODE)
icalendar-trigger-validator(NODE)
icalendar-tzid-param-p(NODE)
icalendar-tzid-property-p(NODE)
icalendar-tzname-property-p(NODE)
icalendar-tzoffsetfrom-property-p(NODE)
icalendar-tzoffsetto-property-p(NODE)
icalendar-tzurl-property-p(NODE)
icalendar-uid-property-p(NODE)
icalendar-unescape-text-in-region(BEGIN END)
icalendar-unescape-text-string(S)
icalendar-unfold-region(START END &optional BUFFER)
icalendar-unfold-undecoded-region(START END &optional BUFFER)
icalendar-unfolded-buffer-from-buffer(BUFFER)
icalendar-unfolded-buffer-from-file(FILENAME &optional VISIT BEG END)
icalendar-unfolded-buffer-from-region(START END &optional BUFFER)
icalendar-unfolded-p(&optional BUFFER)
icalendar-url-property-p(NODE)
icalendar-valarm-component-p(NODE)
icalendar-valarm-validator(NODE)
icalendar-value-node-p(NODE)
icalendar-value-param-p(NODE)
icalendar-value-type-from-params(PARAMS)
icalendar-vcalendar-component-p(NODE)
icalendar-vcalendar-validator(NODE)
icalendar-version-property-p(NODE)
icalendar-vevent-component-p(NODE)
icalendar-vevent-validator(NODE)
icalendar-vfreebusy-component-p(NODE)
icalendar-vjournal-component-p(NODE)
icalendar-vtimezone-component-p(NODE)
icalendar-vtimezone-validator(NODE)
icalendar-vtodo-component-p(NODE)
icalendar-vtodo-validator(NODE)

Defined faces (0)