This type is the basis for all components and provides a base class for
applications.
Essentially it states that a component is a set of properties.
This type is the basis for all components and provides a base class for
applications.
From RFC 5545 Section 3.6
icalbody = calprops component
calprops = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
prodid / version /
;
; The following are OPTIONAL,
; but MUST NOT occur more than once.
;
calscale / method /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
x-prop / iana-prop
;
)
From RFC 5545 Section 3.6.1
eventc = "BEGIN" ":" "VEVENT" CRLF
eventprop *alarmc
"END" ":" "VEVENT" CRLF
eventprop = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
dtstamp / uid /
;
; The following is REQUIRED if the component
; appears in an iCalendar object that doesn't
; specify the "METHOD" property; otherwise, it
; is OPTIONAL; in any case, it MUST NOT occur
; more than once.
;
dtstart /
;
; The following are OPTIONAL,
; but MUST NOT occur more than once.
;
class / created / description / geo /
last-mod / location / organizer / priority /
seq / status / summary / transp /
url / recurid /
;
; The following is OPTIONAL,
; but SHOULD NOT occur more than once.
;
rrule /
;
; Either 'dtend' or 'duration' MAY appear in
; a 'eventprop', but 'dtend' and 'duration'
; MUST NOT occur in the same 'eventprop'.
;
dtend / duration /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
attach / attendee / categories / comment /
contact / exdate / rstatus / related /
resources / rdate / x-prop / iana-prop
;
)
From RFC 5545 Section 3.6.2
todoc = "BEGIN" ":" "VTODO" CRLF
todoprop *alarmc
"END" ":" "VTODO" CRLF
todoprop = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
dtstamp / uid /
;
; The following are OPTIONAL,
; but MUST NOT occur more than once.
;
class / completed / created / description /
dtstart / geo / last-mod / location / organizer /
percent / priority / recurid / seq / status /
summary / url /
;
; The following is OPTIONAL,
; but SHOULD NOT occur more than once.
;
rrule /
;
; Either 'due' or 'duration' MAY appear in
; a 'todoprop', but 'due' and 'duration'
; MUST NOT occur in the same 'todoprop'.
; If 'duration' appear in a 'todoprop',
; then 'dtstart' MUST also appear in
; the same 'todoprop'.
;
due / duration /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
attach / attendee / categories / comment / contact /
exdate / rstatus / related / resources /
rdate / x-prop / iana-prop
;
)
Journal components contain no other components
From RFC 5545 Section 3.6.3
journalc = "BEGIN" ":" "VJOURNAL" CRLF
jourprop
"END" ":" "VJOURNAL" CRLF
jourprop = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
dtstamp / uid /
;
; The following are OPTIONAL,
; but MUST NOT occur more than once.
;
class / created / dtstart /
last-mod / organizer / recurid / seq /
status / summary / url /
;
; The following is OPTIONAL,
; but SHOULD NOT occur more than once.
;
rrule /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
attach / attendee / categories / comment /
contact / description / exdate / related / rdate /
rstatus / x-prop / iana-prop
;
)
Freebusy components contain no other components
From RFC 5545 Section 3.6.4
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
fbprop
"END" ":" "VFREEBUSY" CRLF
fbprop = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
dtstamp / uid /
;
; The following are OPTIONAL,
; but MUST NOT occur more than once.
;
contact / dtstart / dtend /
organizer / url /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
attendee / comment / freebusy / rstatus / x-prop /
iana-prop
;
)
Timezones only contain daylight and standard
From RFC 5545 Section 3.6.5
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
Standard components contain no other components
Daylight components contain no other components
From RFC 5545 Section 3.6.5
standardc = "BEGIN" ":" "STANDARD" CRLF
tzprop
"END" ":" "STANDARD" CRLF
daylightc = "BEGIN" ":" "DAYLIGHT" CRLF
tzprop
"END" ":" "DAYLIGHT" CRLF
tzprop = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
dtstart / tzoffsetto / tzoffsetfrom /
;
; The following is OPTIONAL,
; but SHOULD NOT occur more than once.
;
rrule /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
comment / rdate / tzname / x-prop / iana-prop
;
)
From RFC 5545 Section 3.6.6
alarmc = "BEGIN" ":" "VALARM" CRLF
(audioprop / dispprop / emailprop)
"END" ":" "VALARM" CRLF
audioprop = *(
;
; 'action' and 'trigger' are both REQUIRED,
; but MUST NOT occur more than once.
;
action / trigger /
;
; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each;
; but if one occurs, so MUST the other.
;
duration / repeat /
;
; The following is OPTIONAL,
; but MUST NOT occur more than once.
;
attach /
;
; The following is OPTIONAL,
; and MAY occur more than once.
;
x-prop / iana-prop
;
)
dispprop = *(
;
; The following are REQUIRED,
; but MUST NOT occur more than once.
;
action / description / trigger /
;
; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each;
; but if one occurs, so MUST the other.
;
duration / repeat /
;
; The following is OPTIONAL,
; and MAY occur more than once.
;
x-prop / iana-prop
;
)
emailprop = *(
;
; The following are all REQUIRED,
; but MUST NOT occur more than once.
;
action / description / trigger / summary /
;
; The following is REQUIRED,
; and MAY occur more than once.
;
attendee /
;
; 'duration' and 'repeat' are both OPTIONAL,
; and MUST NOT occur more than once each;
; but if one occurs, so MUST the other.
;
duration / repeat /
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
attach / x-prop / iana-prop
;
)