1 default namespace = "urn:ietf:params:xml:ns:icalendar-2.0"
3 # 3.2 Property Parameters
5 # 3.2.1 Alternate Text Representation
7 altrepparam = element altrep {
13 cnparam = element cn {
17 # 3.2.3 Calendar User Type
19 cutypeparam = element cutype {
31 delfromparam = element delegated-from {
37 deltoparam = element delegated-to {
41 # 3.2.6 Directory Entry Reference
43 dirparam = element dir {
47 # 3.2.7 Inline Encoding
49 encodingparam = element encoding {
58 fmttypeparam = element fmttype {
62 # 3.2.9 Free/Busy Time Type
64 fbtypeparam = element fbtype {
75 languageparam = element language {
79 # 3.2.11 Group or List Membership
81 memberparam = element member {
85 # 3.2.12 Participation Status
87 partstatparam = element partstat {
93 type-partstat-event = (
103 type-partstat-todo = (
115 type-partstat-jour = (
123 # 3.2.13 Recurrence Identifier Range
125 rangeparam = element range {
131 # 3.2.14 Alarm Trigger Relationship
133 trigrelparam = element related {
140 # 3.2.15 Relationship Type
142 reltypeparam = element reltype {
150 # 3.2.16 Participation Role
152 roleparam = element role {
161 # 3.2.17 RSVP Expectation
163 rsvpparam = element rsvp {
169 sentbyparam = element sent-by {
173 # 3.2.19 Time Zone Identifier
175 tzidparam = element tzid {
179 # 3.3 Property Value Data Types
183 value-binary = element binary {
189 value-boolean = element boolean {
195 value-cal-address = element cal-address {
201 pattern-date = xsd:string {
202 pattern = "\d\d\d\d-\d\d-\d\d"
205 value-date = element date {
211 pattern-date-time = xsd:string {
212 pattern = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ?"
215 value-date-time = element date-time {
221 pattern-duration = xsd:string {
222 pattern = "(+|-)?P(\d+W)|(\d+D)?"
223 ~ "(T(\d+H(\d+M)?(\d+S)?)|"
228 value-duration = element duration {
234 value-float = element float {
240 value-integer = element integer {
246 value-period = element period {
262 value-recur = element recur {
264 (type-until | type-count)?,
277 element wkst { type-weekday }?
280 type-freq = element freq {
290 type-until = element until {
295 type-count = element count {
299 type-bysecond = element bysecond {
303 type-byminute = element byminute {
307 type-byhour = element byhour {
321 type-byday = element byday {
326 type-bymonthday = element bymonthday {
330 type-byyearday = element byyearday {
334 type-byweekno = element byweekno {
338 type-bymonth = element bymonth {
342 type-bysetpos = element bysetpos {
348 value-text = element text {
354 pattern-time = xsd:string {
355 pattern = "\d\d:\d\d:\d\dZ?"
358 value-time = element time {
364 value-uri = element uri {
370 value-utc-offset = element utc-offset {
371 xsd:string { pattern = "(+|-)\d\d:\d\d(:\d\d)?" }
376 value-unknown = element unknown {
380 # 3.4 iCalendar Stream
382 start = element icalendar {
386 # 3.6 Calendar Components
388 vcalendar = element vcalendar {
393 type-calprops = element properties {
400 type-component = element components {
405 component-vfreebusy |
410 # 3.6.1 Event Component
412 component-vevent = element vevent {
419 type-eventprop = element properties {
426 property-description? &
430 property-organizer? &
433 property-status-event? &
442 (property-dtend | property-duration)? &
446 property-categories* &
452 property-resources* &
456 # 3.6.2 To-do Component
458 component-vtodo = element vtodo {
465 type-todoprop = element properties {
470 property-completed? &
472 property-description? &
476 property-organizer? &
481 property-status-todo? &
489 (property-dtstart?, property-dtend? ) |
490 (property-dtstart, property-duration)?
495 property-categories* &
501 property-resources* &
505 # 3.6.3 Journal Component
507 component-vjournal = element vjournal {
511 type-jourprop = element properties {
519 property-organizer? &
522 property-status-jour? &
530 property-categories* &
533 property-description? &
540 # 3.6.4 Free/Busy Component
542 component-vfreebusy = element vfreebusy {
546 type-fbprop = element properties {
554 property-organizer? &
563 # 3.6.5 Time Zone Component
565 component-vtimezone = element vtimezone {
573 (component-standard | component-daylight) &
574 component-standard* &
579 component-standard = element standard {
583 component-daylight = element daylight {
587 type-tzprop = element properties {
589 property-tzoffsetto &
590 property-tzoffsetfrom &
599 # 3.6.6 Alarm Component
601 component-valarm = element valarm {
602 audioprop | dispprop | emailprop
605 type-audioprop = element properties {
610 (property-duration, property-repeat)? &
615 type-dispprop = element properties {
617 property-description &
623 (property-duration, property-repeat)? &
628 type-emailprop = element properties {
630 property-description &
633 (property-duration, property-repeat)?
636 # 3.7 Calendar Properties
638 # 3.7.1 Calendar Scale
640 property-calscale = element calscale {
642 element parameters { empty }?,
644 element text { "GREGORIAN" }
649 property-method = element method {
651 element parameters { empty }?,
656 # 3.7.3 Product Identifier
658 property-prodid = element prodid {
660 element parameters { empty }?,
667 property-version = element version {
669 element parameters { empty }?,
671 element text { "2.0" }
674 # 3.8 Component Properties
676 # 3.8.1 Descriptive Component Properties
680 property-attach = element attach {
687 value-uri | value-binary
692 property-categories = element categories {
701 # 3.8.1.3 Classification
703 property-class = element class {
705 element parameters { empty }?,
716 property-comment = element comment {
726 # 3.8.1.5 Description
728 property-description = element description {
738 # 3.8.1.6 Geographic Position
740 property-geo = element geo {
742 element parameters { empty }?,
744 element latitude { xsd:float },
745 element longitude { xsd:float }
750 property-location = element location {
761 # 3.8.1.8 Percent Complete
763 property-percent = element percent-complete {
765 element parameters { empty }?,
773 property-priority = element priority {
775 element parameters { empty }?,
782 property-resources = element resources {
794 property-status-event = element status {
796 element parameters { empty }?,
805 property-status-todo = element status {
807 element parameters { empty }?,
817 property-status-jour = element status {
819 element parameters { empty }?,
830 property-summary = element summary {
840 # 3.8.2 Date and Time Component Properties
842 # 3.8.2.1 Date/Time Completed
844 property-completed = element completed {
846 element parameters { empty }?,
851 # 3.8.2.2 Date/Time End
853 property-dtend = element dtend {
863 # 3.8.2.3 Date/Time Due
865 property-due = element due {
875 # 3.8.2.4 Date/Time Start
877 property-dtstart = element dtstart {
889 property-duration = element duration {
891 element parameters { empty }?,
896 # 3.8.2.6 Free/Busy Time
898 property-freebusy = element freebusy {
908 # 3.8.2.7 Time Transparency
910 property-transp = element transp {
913 element parameters { empty }?,
921 # 3.8.3 Time Zone Component Properties
923 # 3.8.3.1 Time Zone Identifier
925 property-tzid = element tzid {
927 element parameters { empty }?,
932 # 3.8.3.2 Time Zone Name
934 property-tzname = element tzname {
943 # 3.8.3.3 Time Zone Offset From
945 property-tzoffsetfrom = element tzoffsetfrom {
947 element parameters { empty }?,
952 # 3.8.3.4 Time Zone Offset To
954 property-tzoffsetto = element tzoffsetto {
956 element parameters { empty }?,
961 # 3.8.3.5 Time Zone URL
963 property-tzurl = element tzurl {
965 element parameters { empty }?,
970 # 3.8.4 Relationship Component Properties
974 property-attendee = element attendee {
995 property-contact = element contact {
1007 property-organizer = element organizer {
1009 element parameters {
1019 # 3.8.4.4 Recurrence ID
1021 property-recurid = element recurrence-id {
1023 element parameters {
1032 # 3.8.4.5 Related-To
1034 property-related = element related-to {
1036 element parameters {
1043 # 3.8.4.6 Uniform Resource Locator
1045 property-url = element url {
1047 element parameters { empty }?,
1052 # 3.8.4.7 Unique Identifier
1054 property-uid = element uid {
1056 element parameters { empty }?,
1060 # 3.8.5 Recurrence Component Properties
1062 # 3.8.5.1 Exception Date/Times
1064 property-exdate = element exdate {
1066 element parameters {
1074 # 3.8.5.2 Recurrence Date/Times
1076 property-rdate = element rdate {
1078 element parameters {
1087 # 3.8.5.3 Recurrence Rule
1089 property-rrule = element rrule {
1091 element parameters { empty }?,
1096 # 3.8.6 Alarm Component Properties
1100 property-action = element action {
1102 element parameters { empty }?,
1110 # 3.8.6.2 Repeat Count
1112 property-repeat = element repeat {
1114 element parameters { empty }?,
1121 property-trigger = element trigger {
1124 element parameters {
1131 element parameters { empty }?,
1137 # 3.8.7 Change Management Component Properties
1139 # 3.8.7.1 Date/Time Created
1141 property-created = element created {
1143 element parameters { empty }?,
1148 # 3.8.7.2 Date/Time Stamp
1150 property-dtstamp = element dtstamp {
1151 element parameters { empty }?,
1156 # 3.8.7.3 Last Modified
1158 property-last-mod = element last-modified {
1160 element parameters { empty }?,
1165 # 3.8.7.4 Sequence Number
1167 property-seq = element sequence {
1169 element parameters { empty }?,
1174 # 3.8.8 Miscellaneous Component Properties
1176 # 3.8.8.3 Request Status
1178 property-rstatus = element request-status {
1180 element parameters {
1184 element code { xsd:string },
1185 element description { xsd:string },
1186 element data { xsd:string }?