Skip to main content

xCal: The XML Format for iCalendar
RFC 6321

Document Type RFC - Proposed Standard (August 2011) Errata
Updated by RFC 7529, RFC 6868
Was draft-daboo-et-al-icalendar-in-xml (individual in app area)
Authors Mike Douglass , Cyrus Daboo , Steven Lees
Last updated 2020-01-21
RFC stream Internet Engineering Task Force (IETF)
Formats
IESG Responsible AD Peter Saint-Andre
Send notices to (None)
RFC 6321
quot;
       }
   }

   # 3.8.3 Time Zone Component Properties

   # 3.8.3.1 Time Zone Identifier

   property-tzid = element tzid {

       element parameters { empty }?,

       value-text
   }

   # 3.8.3.2 Time Zone Name

   property-tzname = element tzname {

       element parameters {
           languageparam?
       }?,

       value-text
   }

   # 3.8.3.3 Time Zone Offset From

   property-tzoffsetfrom = element tzoffsetfrom {

       element parameters { empty }?,

       value-utc-offset
   }

   # 3.8.3.4 Time Zone Offset To

   property-tzoffsetto = element tzoffsetto {

       element parameters { empty }?,

       value-utc-offset
   }

Daboo, et al.                Standards Track                   [Page 43]
RFC 6321                          xCal                       August 2011

   # 3.8.3.5 Time Zone URL

   property-tzurl = element tzurl {

       element parameters { empty }?,

       value-uri
   }

   # 3.8.4 Relationship Component Properties

   # 3.8.4.1 Attendee

   property-attendee = element attendee {

       element parameters {
           cutypeparam? &
           memberparam? &
           roleparam? &
           partstatparam? &
           rsvpparam? &
           deltoparam? &
           delfromparam? &
           sentbyparam? &
           cnparam? &
           dirparam? &
           languageparam?
       }?,

       value-cal-address
   }

   # 3.8.4.2 Contact

   property-contact = element contact {

       element parameters {
           altrepparam? &
           languageparam?
       }?,

       value-text
   }

   # 3.8.4.3 Organizer

   property-organizer = element organizer {

Daboo, et al.                Standards Track                   [Page 44]
RFC 6321                          xCal                       August 2011

       element parameters {
           cnparam? &
           dirparam? &
           sentbyparam? &
           languageparam?
       }?,

       value-cal-address
   }

   # 3.8.4.4 Recurrence ID

   property-recurid = element recurrence-id {

       element parameters {
           tzidparam? &
           rangeparam?
       }?,

       value-date-time |
       value-date
   }

   # 3.8.4.5 Related-To

   property-related = element related-to {

       element parameters {
           reltypeparam?
       }?,

       value-text
   }

   # 3.8.4.6 Uniform Resource Locator

   property-url = element url {

       element parameters { empty }?,

       value-uri
   }

   # 3.8.4.7 Unique Identifier

   property-uid = element uid {

       element parameters { empty }?,

Daboo, et al.                Standards Track                   [Page 45]
RFC 6321                          xCal                       August 2011

       value-text
   }

   # 3.8.5 Recurrence Component Properties

   # 3.8.5.1 Exception Date/Times

   property-exdate = element exdate {

       element parameters {
           tzidparam?
       }?,

       value-date-time+ |
       value-date+
   }

   # 3.8.5.2 Recurrence Date/Times

   property-rdate = element rdate {

       element parameters {
           tzidparam?
       }?,

       value-date-time+ |
       value-date+ |
       value-period+
   }

   # 3.8.5.3 Recurrence Rule

   property-rrule = element rrule {

       element parameters { empty }?,

       value-recur
   }

   # 3.8.6 Alarm Component Properties

   # 3.8.6.1 Action

   property-action = element action {

       element parameters { empty }?,

Daboo, et al.                Standards Track                   [Page 46]
RFC 6321                          xCal                       August 2011

       element text {
           "AUDIO" |
           "DISPLAY" |
           "EMAIL"
       }
   }

   # 3.8.6.2 Repeat Count

   property-repeat = element repeat {

       element parameters { empty }?,

       value-integer
   }

   # 3.8.6.3 Trigger

   property-trigger = element trigger {

       (
           element parameters {
               trigrelparam?
           }?,

           value-duration
       ) |
       (
           element parameters { empty }?,

           value-date-time
       )
   }

   # 3.8.7 Change Management Component Properties

   # 3.8.7.1 Date/Time Created

   property-created = element created {

       element parameters { empty }?,

       value-date-time
   }

   # 3.8.7.2 Date/Time Stamp

   property-dtstamp = element dtstamp {

Daboo, et al.                Standards Track                   [Page 47]
RFC 6321                          xCal                       August 2011

       element parameters { empty }?,

       value-date-time
   }

   # 3.8.7.3 Last Modified

   property-last-mod = element last-modified {

       element parameters { empty }?,

       value-date-time
   }

   # 3.8.7.4 Sequence Number

   property-seq = element sequence {

       element parameters { empty }?,

       value-integer
   }

   # 3.8.8 Miscellaneous Component Properties

   # 3.8.8.3 Request Status

   property-rstatus = element request-status {

       element parameters {
           languageparam?
       }?,

       element code { xsd:string },
       element description { xsd:string },
       element data { xsd:string }?
   }

Daboo, et al.                Standards Track                   [Page 48]
RFC 6321                          xCal                       August 2011

Appendix B.  Examples

   This section contains two examples of iCalendar objects with their
   xCal representation.

B.1.  Example 1

B.1.1.  iCalendar Data

   BEGIN:VCALENDAR
   CALSCALE:GREGORIAN
   PRODID:-//Example Inc.//Example Calendar//EN
   VERSION:2.0
   BEGIN:VEVENT
   DTSTAMP:20080205T191224Z
   DTSTART:20081006
   SUMMARY:Planning meeting
   UID:4088E990AD89CB3DBB484909
   END:VEVENT
   END:VCALENDAR

B.1.2.  XML Data

   <?xml version="1.0" encoding="utf-8"?>
   <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
    <vcalendar>
     <properties>
      <calscale>
        <text>GREGORIAN</text>
      </calscale>
      <prodid>
       <text>-//Example Inc.//Example Calendar//EN</text>
      </prodid>
      <version>
        <text>2.0</text>
      </version>
     </properties>
     <components>
      <vevent>
       <properties>
        <dtstamp>
          <date-time>2008-02-05T19:12:24Z</date-time>
        </dtstamp>
        <dtstart>
          <date>2008-10-06</date>
        </dtstart>
        <summary>
         <text>Planning meeting</text>

Daboo, et al.                Standards Track                   [Page 49]
RFC 6321                          xCal                       August 2011

        </summary>
        <uid>
         <text>4088E990AD89CB3DBB484909</text>
        </uid>
       </properties>
      </vevent>
     </components>
    </vcalendar>
   </icalendar>

B.2.  Example 2

B.2.1.  iCalendar Data

   VERSION:2.0
   PRODID:-//Example Corp.//Example Client//EN
   BEGIN:VTIMEZONE
   LAST-MODIFIED:20040110T032845Z
   TZID:US/Eastern
   BEGIN:DAYLIGHT
   DTSTART:20000404T020000
   RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
   TZNAME:EDT
   TZOFFSETFROM:-0500
   TZOFFSETTO:-0400
   END:DAYLIGHT
   BEGIN:STANDARD
   DTSTART:20001026T020000
   RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
   TZNAME:EST
   TZOFFSETFROM:-0400
   TZOFFSETTO:-0500
   END:STANDARD
   END:VTIMEZONE
   BEGIN:VEVENT
   DTSTAMP:20060206T001121Z
   DTSTART;TZID=US/Eastern:20060102T120000
   DURATION:PT1H
   RRULE:FREQ=DAILY;COUNT=5
   RDATE;TZID=US/Eastern;VALUE=PERIOD:20060102T150000/PT2H
   SUMMARY:Event #2
   DESCRIPTION:We are having a meeting all this week at 12 pm fo
    r one hour\, with an additional meeting on the first day 2 h
    ours long.\nPlease bring your own lunch for the 12 pm meetin
    gs.
   UID:00959BC664CA650E933C892C@example.com
   END:VEVENT
   BEGIN:VEVENT

Daboo, et al.                Standards Track                   [Page 50]
RFC 6321                          xCal                       August 2011

   DTSTAMP:20060206T001121Z
   DTSTART;TZID=US/Eastern:20060104T140000
   DURATION:PT1H
   RECURRENCE-ID;TZID=US/Eastern:20060104T120000
   SUMMARY:Event #2 bis
   UID:00959BC664CA650E933C892C@example.com
   END:VEVENT
   END:VCALENDAR

B.2.2.  XML Data

   <?xml version="1.0" encoding="utf-8" ?>
   <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
     <vcalendar>
       <properties>
         <prodid>
           <text>-//Example Inc.//Example Client//EN</text>
         </prodid>
         <version>
           <text>2.0</text>
         </version>
       </properties>
       <components>
         <vtimezone>
           <properties>
             <last-modified>
               <date-time>2004-01-10T03:28:45Z</date-time>
             </last-modified>
             <tzid>US/Eastern</tzid>
           </properties>
           <components>
             <daylight>
               <properties>
                 <dtstart>
                   <date-time>2000-04-04T02:00:00</date-time>
                 </dtstart>
                 <rrule>
                   <recur>
                     <freq>YEARLY</freq>
                     <byday>1SU</byday>
                     <bymonth>4</bymonth>
                   </recur>
                 </rrule>
                 <tzname>
                   <text>EDT</text>
                 </tzname>
                 <tzoffsetfrom>
                   <utc-offset>-05:00</utc-offset>

Daboo, et al.                Standards Track                   [Page 51]
RFC 6321                          xCal                       August 2011

                 </tzoffsetfrom>
                 <tzoffsetto>
                   <utc-offset>-04:00</utc-offset>
                 </tzoffsetto>
               </properties>
             </daylight>
             <standard>
               <properties>
                 <dtstart>
                   <date-time>2000-10-26T02:00:00</date-time>
                 </dtstart>
                 <rrule>
                   <recur>
                     <freq>YEARLY</freq>
                     <byday>-1SU</byday>
                     <bymonth>10</bymonth>
                   </recur>
                 </rrule>
                 <tzname>
                   <text>EST</text>
                 </tzname>
                 <tzoffsetfrom>
                   <utc-offset>-04:00</utc-offset>
                 </tzoffsetfrom>
                 <tzoffsetto>
                   <utc-offset>-05:00</utc-offset>
                 </tzoffsetto>
               </properties>
             </standard>
           </components>
         </vtimezone>
         <vevent>
           <properties>
             <dtstamp>
               <date-time>2006-02-06T00:11:21Z</date-time>
             </dtstamp>
             <dtstart>
               <parameters>
                 <tzid><text>US/Eastern</text></tzid>
               </parameters>
               <date-time>2006-01-02T12:00:00</date-time>
             </dtstart>
             <duration>
               <duration>PT1H</duration>
             </duration>
             <rrule>
               <recur>
                 <freq>DAILY</freq>

Daboo, et al.                Standards Track                   [Page 52]
RFC 6321                          xCal                       August 2011

                 <count>5</count>
               </recur>
             </rrule>
             <rdate>
               <parameters>
                 <tzid><text>US/Eastern</text></tzid>
               </parameters>
               <period>
                 <start>2006-01-02T15:00:00</start>
                 <duration>PT2H</duration>
               </period>
             </rdate>
             <summary>
               <text>Event #2</text>
             </summary>
             <description>
               <text>We are having a meeting all this week at 12
   pm for one hour, with an additional meeting on the first day
   2 hours long.&#x0a;Please bring your own lunch for the 12 pm
   meetings.</text>
             </description>
             <uid>
               <text>00959BC664CA650E933C892C@example.com</text>
             </uid>
           </properties>
         </vevent>
         <vevent>
           <properties>
             <dtstamp>
               <date-time>2006-02-06T00:11:21Z</date-time>
             </dtstamp>
             <dtstart>
               <parameters>
                 <tzid><text>US/Eastern</text></tzid>
               </parameters>
               <date-time>2006-01-04T14:00:00</date-time>
             </dtstart>
             <duration>
               <duration>PT1H</duration>
             </duration>
             <recurrence-id>
               <parameters>
                 <tzid><text>US/Eastern</text></tzid>
               </parameters>
               <date-time>2006-01-04T12:00:00</date-time>
             </recurrence-id>
             <summary>
               <text>Event #2 bis</text>

Daboo, et al.                Standards Track                   [Page 53]
RFC 6321                          xCal                       August 2011

             </summary>
             <uid>
               <text>00959BC664CA650E933C892C@example.com</text>
             </uid>
           </properties>
         </vevent>
       </components>
     </vcalendar>
   </icalendar>

Authors' Addresses

   Cyrus Daboo
   Apple Inc.
   1 Infinite Loop
   Cupertino, CA  95014
   USA

   EMail: cyrus@daboo.name
   URI:   http://www.apple.com/

   Mike Douglass
   Rensselaer Polytechnic Institute
   110 8th Street
   Troy, NY  12180
   USA

   EMail: douglm@rpi.edu
   URI:   http://www.rpi.edu/

   Steven Lees
   Microsoft Corporation
   One Microsoft Way
   Redmond, WA  98052
   USA

   EMail: steven.lees@microsoft.com
   URI:   http://www.microsoft.com/

Daboo, et al.                Standards Track                   [Page 54]