Internet Engineering Task Force (IETF) C. Daboo Request for Comments: 6321 Apple, Inc

Internet Engineering Task Force (IETF) C. Daboo Request for Comments: 6321 Apple, Inc

Internet Engineering Task Force (IETF) C. Daboo Request for Comments: 6321 Apple, Inc. Category: Standards Track M. Douglass ISSN: 2070-1721 RPI S. Lees Microsoft August 2011 xCal: The XML Format for iCalendar Abstract This specification defines "xCal", an XML format for iCalendar data. Status of This Memo This is an Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6321. Copyright Notice Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Daboo, et al. Standards Track [Page 1] RFC 6321 xCal August 2011 Table of Contents 1. Introduction ....................................................3 2. Conventions Used in This Document ...............................4 3. Converting from iCalendar to xCal ...............................4 3.1. Pre-Processing .............................................4 3.2. iCalendar Stream (RFC 5545, Section 3.4) ...................5 3.3. Components (RFC 5545, Section 3.6) .........................6 3.4. Properties (RFC 5545, Sections 3.7 and 3.8) ................6 3.4.1. Special Cases for Properties ........................8 3.4.1.1. Multi-Valued Properties ....................8 3.4.1.2. GEO Property ...............................9 3.4.1.3. REQUEST-STATUS Property ....................9 3.5. Parameters (RFC 5545, Section 3.2) ........................10 3.5.1. VALUE Parameter ....................................11 3.6. Values (RFC 5545, Section 3.3) ............................11 3.6.1. Binary (RFC 5545, Section 3.3.1) ...................12 3.6.2. Boolean (RFC 5545, Section 3.3.2) .................12 3.6.3. Calendar User Address (RFC 5545, Section 3.3.3) ....12 3.6.4. Date (RFC 5545, Section 3.3.4) .....................12 3.6.5. Date-Time (RFC 5545, Section 3.3.5) ................13 3.6.6. Duration (RFC 5545, Section 3.3.6) .................13 3.6.7. Float (RFC 5545, Section 3.3.7) ....................13 3.6.8. Integer (RFC 5545, Section 3.3.8) ..................14 3.6.9. Period of Time (RFC 5545, Section 3.3.9) ...........14 3.6.10. Recurrence Rule (RFC 5545, Section 3.3.10) ........14 3.6.11. Text (RFC 5545, Section 3.3.11) ...................15 3.6.12. Time (RFC 5545, Section 3.3.12) ...................15 3.6.13. URI (RFC 5545, Section 3.3.13) ....................15 3.6.14. UTC Offset (RFC 5545, Section 3.3.14) .............16 3.7. Extensions ................................................16 4. Converting from xCal into iCalendar ............................16 4.1. Converting XML Extensions into iCalendar ..................16 4.2. The XML Property for iCalendar ............................17 5. Handling Unrecognized Properties or Parameters .................18 6. Security Considerations ........................................19 7. IANA Considerations ............................................20 7.1. Namespace Registration ....................................20 7.2. Media Type ................................................20 7.3. iCalendar Property Registrations ..........................21 8. Acknowledgments ................................................22 9. References .....................................................22 9.1. Normative References ......................................22 9.2. Informative References ....................................22 Daboo, et al. Standards Track [Page 2] RFC 6321 xCal August 2011 Appendix A. RELAX NG Schema .......................................23 Appendix B. Examples ..............................................49 B.1. Example 1 ..................................................49 B.1.1. iCalendar Data .........................................49 B.1.2. XML Data ...............................................49 B.2. Example 2 ..................................................50 B.2.1. iCalendar Data .........................................50 B.2.2. XML Data ...............................................51 1. Introduction The iCalendar data format [RFC5545] is a widely deployed interchange format for calendaring and scheduling data. While many applications and services consume and generate calendar data, iCalendar is a specialized format that requires its own parser/generator. In contrast, XML-based formats are widely used for interoperability between applications, and the many tools that generate, parse, and manipulate XML make it easier to work with than iCalendar. The purpose of this specification is to define "xCal", an XML format for iCalendar data. xCal is defined as a straightforward mapping into XML from iCalendar, so that iCalendar data can be converted to XML, and then back to iCalendar, without losing any semantic meaning in the data. Anyone creating xCal calendar data according to this specification will know that their data can be converted to a valid iCalendar representation as well. Key design considerations are: Round-tripping (converting an iCalendar instance to xCal and back) will give the same semantic result as the starting point. That is, all components, properties, and property parameters are guaranteed to be preserved, with the exception of those that have default values. xCal preserves the semantics of the iCalendar data. While a simple consumer can easily browse the calendar data in xCal, a full understanding of iCalendar is still required in order to modify and/or fully comprehend the calendar data. xCal has the ability to handle many extensions to the underlying iCalendar specification without requiring an update to this document. Daboo, et al. Standards Track [Page 3] RFC 6321 xCal August 2011 2. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. When XML element types in the namespace "urn:ietf:params:xml:ns:icalendar-2.0" are referenced in this document outside of the context of an XML fragment, the string "IC:" will be prefixed to the element types. Some examples in this document contain "partial" XML documents used for illustrative purposes. In these examples, three periods "..." are used to indicate a portion of the document that has been removed for compactness. 3. Converting from iCalendar to xCal This section describes how iCalendar data is converted to xCal using a simple mapping between the iCalendar data model and XML elements. 3.1. Pre-Processing iCalendar uses a line folding mechanism to limit lines of data to a maximum line length (typically 72 characters) to ensure maximum likelihood of preserving data integrity as it is transported via various means (e.g., email) -- see Section 3.1 of [RFC5545]. Prior to converting iCalendar data into xCal, all folded lines MUST be unfolded. iCalendar data uses an "escape" character sequence for text values and property parameter values. When such text elements are converted into xCal, the escaping MUST be removed. iCalendar uses a base64 encoding for binary data. However, it does not restrict the encoding from being applied to non-binary value types. So, the following rules MUST be applied when processing a property with the "ENCODING" property parameter set to "BASE64": o If the property value type is "BINARY", the base64 encoding MUST be preserved. o If the value type is not "BINARY", the "ENCODING" property parameter MUST be removed, and the value MUST be base64 decoded. When base64 encoding and decoding are used, they MUST conform to Section 4 of [RFC4648], which is the base64 method used in [RFC5545]. Daboo, et al. Standards Track [Page 4] RFC 6321 xCal August 2011 One key difference in the formatting of values used in iCalendar and xCal is that, in xCal, the specification uses date/time and UTC offset values aligned with the syntax of [W3C.REC-xmlschema-2-20041028] to aid with XML processing. 3.2. iCalendar Stream (RFC 5545, Section 3.4) At the top level of the iCalendar object model is an "iCalendar stream". This object encompasses multiple "iCalendar objects". In xCal, the entire stream is contained in the root IC:icalendar XML element. An iCalendar stream can contain one or more iCalendar objects. Each iCalendar object, delimited by "BEGIN:VCALENDAR" and "END:VCALENDAR", is enclosed by the IC:vcalendar XML element. Example: <?xml version="1.0" encoding="utf-8"?> <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0"> <vcalendar> ... </vcalendar> </icalendar> iCalendar objects are comprised of a set of "components", "properties", "parameters", and "values". A "component" can contain other "components" or "properties". A "property" has a value and a set

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    54 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us