| < draft-dusseault-caldav-14.txt | draft-dusseault-caldav-15.txt > | |||
|---|---|---|---|---|
| Network Working Group C. Daboo | Network Working Group C. Daboo | |||
| Internet-Draft Apple Computer | Internet-Draft Apple Computer | |||
| Expires: February 25, 2007 B. Desruisseaux | Expires: March 17, 2007 B. Desruisseaux | |||
| Oracle | Oracle | |||
| L. Dusseault | L. Dusseault | |||
| OSAF | OSAF | |||
| August 24, 2006 | September 13, 2006 | |||
| Calendaring Extensions to WebDAV (CalDAV) | Calendaring Extensions to WebDAV (CalDAV) | |||
| draft-dusseault-caldav-14 | draft-dusseault-caldav-15 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on February 25, 2007. | This Internet-Draft will expire on March 17, 2007. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2006). | Copyright (C) The Internet Society (2006). | |||
| Abstract | Abstract | |||
| This document specifies a set of methods, headers, message bodies, | This document specifies a set of methods, headers, message bodies, | |||
| properties, and reports that define calendar access extensions to the | properties, and reports that define calendar access extensions to the | |||
| WebDAV protocol. The new protocol elements are intended to make | WebDAV protocol. The new protocol elements are intended to make | |||
| skipping to change at page 3, line 5 ¶ | skipping to change at page 3, line 5 ¶ | |||
| 6. Calendaring Access Control . . . . . . . . . . . . . . . . . 29 | 6. Calendaring Access Control . . . . . . . . . . . . . . . . . 29 | |||
| 6.1. Calendaring Privilege . . . . . . . . . . . . . . . . . . 29 | 6.1. Calendaring Privilege . . . . . . . . . . . . . . . . . . 29 | |||
| 6.1.1. CALDAV:read-free-busy Privilege . . . . . . . . . . . 29 | 6.1.1. CALDAV:read-free-busy Privilege . . . . . . . . . . . 29 | |||
| 6.2. Additional Principal Property . . . . . . . . . . . . . . 30 | 6.2. Additional Principal Property . . . . . . . . . . . . . . 30 | |||
| 6.2.1. CALDAV:calendar-home-set Property . . . . . . . . . . 30 | 6.2.1. CALDAV:calendar-home-set Property . . . . . . . . . . 30 | |||
| 7. Calendaring Reports . . . . . . . . . . . . . . . . . . . . . 31 | 7. Calendaring Reports . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 7.1. REPORT Method . . . . . . . . . . . . . . . . . . . . . . 31 | 7.1. REPORT Method . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 7.2. Ordinary collections . . . . . . . . . . . . . . . . . . 31 | 7.2. Ordinary collections . . . . . . . . . . . . . . . . . . 31 | |||
| 7.3. Date and floating time . . . . . . . . . . . . . . . . . 32 | 7.3. Date and floating time . . . . . . . . . . . . . . . . . 32 | |||
| 7.4. Time range filtering . . . . . . . . . . . . . . . . . . 32 | 7.4. Time range filtering . . . . . . . . . . . . . . . . . . 32 | |||
| 7.5. Partial Retrieval . . . . . . . . . . . . . . . . . . . . 33 | 7.5. Searching Text: Collations . . . . . . . . . . . . . . . 33 | |||
| 7.6. Non-standard components, properties and parameters . . . 34 | 7.5.1. CALDAV:supported-collation-set Property . . . . . . . 34 | |||
| 7.7. CALDAV:calendar-query Report . . . . . . . . . . . . . . 34 | 7.6. Partial Retrieval . . . . . . . . . . . . . . . . . . . . 34 | |||
| 7.7.1. Example: Partial retrieval of events by time range . 36 | 7.7. Non-standard components, properties and parameters . . . 35 | |||
| 7.7.2. Example: Partial retrieval of recurring events . . . 40 | 7.8. CALDAV:calendar-query Report . . . . . . . . . . . . . . 35 | |||
| 7.7.3. Example: Expanded retrieval of recurring events . . . 43 | 7.8.1. Example: Partial retrieval of events by time range . 38 | |||
| 7.7.4. Example: Partial retrieval of stored free busy | 7.8.2. Example: Partial retrieval of recurring events . . . 42 | |||
| components . . . . . . . . . . . . . . . . . . . . . 45 | 7.8.3. Example: Expanded retrieval of recurring events . . . 45 | |||
| 7.7.5. Example: Retrieval of to-dos by alarm time range . . 47 | 7.8.4. Example: Partial retrieval of stored free busy | |||
| 7.7.6. Example: Retrieval of event by UID . . . . . . . . . 49 | components . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 7.7.7. Example: Retrieval of events by PARTSTAT . . . . . . 51 | 7.8.5. Example: Retrieval of to-dos by alarm time range . . 49 | |||
| 7.7.8. Example: Retrieval of events only . . . . . . . . . . 53 | 7.8.6. Example: Retrieval of event by UID . . . . . . . . . 51 | |||
| 7.7.9. Example: Retrieval of all pending to-dos . . . . . . 57 | 7.8.7. Example: Retrieval of events by PARTSTAT . . . . . . 53 | |||
| 7.7.10. Example: Attempt to query unsupported property . . . 60 | 7.8.8. Example: Retrieval of events only . . . . . . . . . . 55 | |||
| 7.8. CALDAV:calendar-multiget Report . . . . . . . . . . . . . 61 | 7.8.9. Example: Retrieval of all pending to-dos . . . . . . 59 | |||
| 7.8.1. Example: Successful CALDAV:calendar-multiget Report . 62 | 7.8.10. Example: Attempt to query unsupported property . . . 62 | |||
| 7.9. CALDAV:free-busy-query Report . . . . . . . . . . . . . . 64 | 7.9. CALDAV:calendar-multiget Report . . . . . . . . . . . . . 63 | |||
| 7.9.1. Example: Successful CALDAV:free-busy-query Report . . 66 | 7.9.1. Example: Successful CALDAV:calendar-multiget Report . 64 | |||
| 8. Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . 66 | 7.10. CALDAV:free-busy-query Report . . . . . . . . . . . . . . 66 | |||
| 8.1. Client-to-client Interoperability . . . . . . . . . . . . 67 | 7.10.1. Example: Successful CALDAV:free-busy-query Report . . 68 | |||
| 8.2. Synchronization Operations . . . . . . . . . . . . . . . 67 | 8. Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . 68 | |||
| 8.2.1. Use of Reports . . . . . . . . . . . . . . . . . . . 67 | 8.1. Client-to-client Interoperability . . . . . . . . . . . . 69 | |||
| 8.2.1.1. Restrict the Time Range . . . . . . . . . . . . . 67 | 8.2. Synchronization Operations . . . . . . . . . . . . . . . 69 | |||
| 8.2.1.2. Synchronize by Time Range . . . . . . . . . . . . 67 | 8.2.1. Use of Reports . . . . . . . . . . . . . . . . . . . 69 | |||
| 8.2.1.3. Synchronization Process . . . . . . . . . . . . . 68 | 8.2.1.1. Restrict the Time Range . . . . . . . . . . . . . 69 | |||
| 8.2.2. Restrict the Properties Returned . . . . . . . . . . 70 | 8.2.1.2. Synchronize by Time Range . . . . . . . . . . . . 69 | |||
| 8.3. Use of Locking . . . . . . . . . . . . . . . . . . . . . 70 | 8.2.1.3. Synchronization Process . . . . . . . . . . . . . 70 | |||
| 8.4. Finding calendars . . . . . . . . . . . . . . . . . . . . 70 | 8.2.2. Restrict the Properties Returned . . . . . . . . . . 72 | |||
| 8.5. Storing and Using Attachments . . . . . . . . . . . . . . 72 | 8.3. Use of Locking . . . . . . . . . . . . . . . . . . . . . 72 | |||
| 8.5.1. Inline attachments . . . . . . . . . . . . . . . . . 72 | 8.4. Finding calendars . . . . . . . . . . . . . . . . . . . . 72 | |||
| 8.5.2. External attachments . . . . . . . . . . . . . . . . 73 | 8.5. Storing and Using Attachments . . . . . . . . . . . . . . 74 | |||
| 8.6. Storing and Using Alarms . . . . . . . . . . . . . . . . 74 | 8.5.1. Inline attachments . . . . . . . . . . . . . . . . . 74 | |||
| 9. XML Element Definitions . . . . . . . . . . . . . . . . . . . 75 | 8.5.2. External attachments . . . . . . . . . . . . . . . . 75 | |||
| 9.1. CALDAV:calendar XML Element . . . . . . . . . . . . . . . 75 | 8.6. Storing and Using Alarms . . . . . . . . . . . . . . . . 76 | |||
| 9.2. CALDAV:mkcalendar XML Element . . . . . . . . . . . . . . 75 | 9. XML Element Definitions . . . . . . . . . . . . . . . . . . . 77 | |||
| 9.3. CALDAV:mkcalendar-response XML Element . . . . . . . . . 75 | 9.1. CALDAV:calendar XML Element . . . . . . . . . . . . . . . 77 | |||
| 9.4. CALDAV:calendar-query XML Element . . . . . . . . . . . . 76 | 9.2. CALDAV:mkcalendar XML Element . . . . . . . . . . . . . . 77 | |||
| 9.5. CALDAV:calendar-data XML Element . . . . . . . . . . . . 76 | 9.3. CALDAV:mkcalendar-response XML Element . . . . . . . . . 77 | |||
| 9.5.1. CALDAV:comp XML Element . . . . . . . . . . . . . . . 78 | 9.4. CALDAV:supported-collation XML Element . . . . . . . . . 78 | |||
| 9.5.2. CALDAV:allcomp XML Element . . . . . . . . . . . . . 78 | 9.5. CALDAV:calendar-query XML Element . . . . . . . . . . . . 78 | |||
| 9.5.3. CALDAV:allprop XML Element . . . . . . . . . . . . . 78 | 9.6. CALDAV:calendar-data XML Element . . . . . . . . . . . . 79 | |||
| 9.5.4. CALDAV:prop XML Element . . . . . . . . . . . . . . . 79 | 9.6.1. CALDAV:comp XML Element . . . . . . . . . . . . . . . 80 | |||
| 9.5.5. CALDAV:expand XML Element . . . . . . . . . . . . . . 80 | 9.6.2. CALDAV:allcomp XML Element . . . . . . . . . . . . . 80 | |||
| 9.5.6. CALDAV:limit-recurrence-set XML Element . . . . . . . 80 | 9.6.3. CALDAV:allprop XML Element . . . . . . . . . . . . . 81 | |||
| 9.5.7. CALDAV:limit-freebusy-set XML Element . . . . . . . . 81 | 9.6.4. CALDAV:prop XML Element . . . . . . . . . . . . . . . 81 | |||
| 9.6. CALDAV:filter XML Element . . . . . . . . . . . . . . . . 82 | 9.6.5. CALDAV:expand XML Element . . . . . . . . . . . . . . 82 | |||
| 9.6.1. CALDAV:comp-filter XML Element . . . . . . . . . . . 82 | 9.6.6. CALDAV:limit-recurrence-set XML Element . . . . . . . 83 | |||
| 9.6.2. CALDAV:prop-filter XML Element . . . . . . . . . . . 83 | 9.6.7. CALDAV:limit-freebusy-set XML Element . . . . . . . . 84 | |||
| 9.6.3. CALDAV:param-filter XML Element . . . . . . . . . . . 84 | 9.7. CALDAV:filter XML Element . . . . . . . . . . . . . . . . 84 | |||
| 9.6.4. CALDAV:is-not-defined XML Element . . . . . . . . . . 84 | 9.7.1. CALDAV:comp-filter XML Element . . . . . . . . . . . 85 | |||
| 9.6.5. CALDAV:text-match XML Element . . . . . . . . . . . . 85 | 9.7.2. CALDAV:prop-filter XML Element . . . . . . . . . . . 85 | |||
| 9.7. CALDAV:timezone XML Element . . . . . . . . . . . . . . . 85 | 9.7.3. CALDAV:param-filter XML Element . . . . . . . . . . . 86 | |||
| 9.8. CALDAV:time-range XML Element . . . . . . . . . . . . . . 86 | 9.7.4. CALDAV:is-not-defined XML Element . . . . . . . . . . 87 | |||
| 9.9. CALDAV:calendar-multiget XML Element . . . . . . . . . . 90 | 9.7.5. CALDAV:text-match XML Element . . . . . . . . . . . . 87 | |||
| 9.10. CALDAV:free-busy-query XML Element . . . . . . . . . . . 91 | 9.8. CALDAV:timezone XML Element . . . . . . . . . . . . . . . 88 | |||
| 10. Internationalization Considerations . . . . . . . . . . . . . 91 | 9.9. CALDAV:time-range XML Element . . . . . . . . . . . . . . 88 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 91 | 9.10. CALDAV:calendar-multiget XML Element . . . . . . . . . . 93 | |||
| 12. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 92 | 9.11. CALDAV:free-busy-query XML Element . . . . . . . . . . . 94 | |||
| 12.1. Namespace Registration . . . . . . . . . . . . . . . . . 92 | 10. Internationalization Considerations . . . . . . . . . . . . . 94 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 93 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 94 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 93 | 12. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 93 | 12.1. Namespace Registration . . . . . . . . . . . . . . . . . 95 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 94 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 96 | |||
| Appendix A. CalDAV Method Privilege Table (Normative) . . . . . 94 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 96 | |||
| Appendix B. Calendar collections used in the examples . . . . . 95 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 96 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 97 | ||||
| Appendix A. CalDAV Method Privilege Table (Normative) . . . . . 97 | ||||
| Appendix B. Calendar collections used in the examples . . . . . 98 | ||||
| Appendix C. Changes (to be removed prior to publication as an | Appendix C. Changes (to be removed prior to publication as an | |||
| RFC) . . . . . . . . . . . . . . . . . . . . . . . . 101 | RFC) . . . . . . . . . . . . . . . . . . . . . . . . 104 | |||
| C.1. Changes in -14 . . . . . . . . . . . . . . . . . . . . . 101 | C.1. Changes in -15 . . . . . . . . . . . . . . . . . . . . . 104 | |||
| C.2. Changes in -13 . . . . . . . . . . . . . . . . . . . . . 102 | C.2. Changes in -14 . . . . . . . . . . . . . . . . . . . . . 105 | |||
| C.3. Changes in -12 . . . . . . . . . . . . . . . . . . . . . 102 | C.3. Changes in -13 . . . . . . . . . . . . . . . . . . . . . 105 | |||
| C.4. Changes in -11 . . . . . . . . . . . . . . . . . . . . . 102 | C.4. Changes in -12 . . . . . . . . . . . . . . . . . . . . . 106 | |||
| C.5. Changes in -10 . . . . . . . . . . . . . . . . . . . . . 104 | C.5. Changes in -11 . . . . . . . . . . . . . . . . . . . . . 106 | |||
| C.6. Changes in -09 . . . . . . . . . . . . . . . . . . . . . 104 | C.6. Changes in -10 . . . . . . . . . . . . . . . . . . . . . 107 | |||
| C.7. Changes in -08 . . . . . . . . . . . . . . . . . . . . . 106 | C.7. Changes in -09 . . . . . . . . . . . . . . . . . . . . . 108 | |||
| C.8. Changes in -07 . . . . . . . . . . . . . . . . . . . . . 107 | C.8. Changes in -08 . . . . . . . . . . . . . . . . . . . . . 109 | |||
| C.9. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 107 | C.9. Changes in -07 . . . . . . . . . . . . . . . . . . . . . 110 | |||
| C.10. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 108 | C.10. Changes in -06 . . . . . . . . . . . . . . . . . . . . . 111 | |||
| C.11. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 109 | C.11. Changes in -05 . . . . . . . . . . . . . . . . . . . . . 111 | |||
| C.12. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 109 | C.12. Changes in -04 . . . . . . . . . . . . . . . . . . . . . 112 | |||
| C.13. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 109 | C.13. Changes in -03 . . . . . . . . . . . . . . . . . . . . . 113 | |||
| C.14. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 110 | C.14. Changes in -02 . . . . . . . . . . . . . . . . . . . . . 113 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 | C.15. Changes in -01 . . . . . . . . . . . . . . . . . . . . . 113 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 112 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 115 | ||||
| 1. Introduction | 1. Introduction | |||
| The concept of using HTTP [RFC2616] and WebDAV [RFC2518] as a basis | The concept of using HTTP [RFC2616] and WebDAV [RFC2518] as a basis | |||
| for a calendar access protocol is by no means a new concept: it was | for a calendar access protocol is by no means a new concept: it was | |||
| discussed in the IETF CALSCH working group as early as 1997 or 1998. | discussed in the IETF CALSCH working group as early as 1997 or 1998. | |||
| Several companies have implemented calendar access protocols using | Several companies have implemented calendar access protocols using | |||
| HTTP to upload and download iCalendar [RFC2445] objects, and using | HTTP to upload and download iCalendar [RFC2445] objects, and using | |||
| WebDAV to get listings of resources. However, those implementations | WebDAV to get listings of resources. However, those implementations | |||
| do not interoperate because there are many small and big decisions to | do not interoperate because there are many small and big decisions to | |||
| be made in how to model calendaring data as WebDAV resources, as well | be made in how to model calendaring data as WebDAV resources, as well | |||
| as how to implement required features that aren't already part of | as how to implement required features that aren't already part of | |||
| WebDAV. This document proposes a way to model calendar data in | WebDAV. This document proposes a way to model calendar data in | |||
| WebDAV, with additional features to make an interoperable calendar | WebDAV, with additional features to make an interoperable calendar | |||
| access protocol. | access protocol. | |||
| Discussion of this specification is taking place on the mailing list | ||||
| <http://lists.osafoundation.org/mailman/listinfo/ietf-caldav>. | ||||
| 1.1. Notational Conventions | 1.1. Notational Conventions | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| The term "protected" is used in the Conformance field of property | The term "protected" is used in the Conformance field of property | |||
| definitions as defined in Section 1.4.2 of [RFC3253]. | definitions as defined in Section 1.4.2 of [RFC3253]. | |||
| When XML element types in the namespaces "DAV:" and | When XML element types in the namespaces "DAV:" and | |||
| "urn:ietf:params:xml:ns:caldav" are referenced in this document | "urn:ietf:params:xml:ns:caldav" are referenced in this document | |||
| outside of the context of an XML fragment, the string "DAV:" and | outside of the context of an XML fragment, the string "DAV:" and | |||
| "CALDAV:" will be prefixed to the element type names respectively. | "CALDAV:" will be prefixed to the element type names respectively. | |||
| 1.2. XML Namespaces and Processing | 1.2. XML Namespaces and Processing | |||
| Definitions of XML elements in this document use XML element type | Definitions of XML elements in this document use XML element type | |||
| declarations (as found in XML Document Type Declarations), described | declarations (as found in XML Document Type Declarations), described | |||
| in Section 3.2 of [W3C.REC-xml-20040204]. | in Section 3.2 of [W3C.REC-xml-20060816]. | |||
| The namespace "urn:ietf:params:xml:ns:caldav" is reserved for the XML | The namespace "urn:ietf:params:xml:ns:caldav" is reserved for the XML | |||
| elements defined in this specification, its revisions, and related | elements defined in this specification, its revisions, and related | |||
| CalDAV specifications. XML elements defined by individual | CalDAV specifications. XML elements defined by individual | |||
| implementations MUST NOT use the "urn:ietf:params:xml:ns:caldav" | implementations MUST NOT use the "urn:ietf:params:xml:ns:caldav" | |||
| namespace, and instead should use a namespace that they control. | namespace, and instead should use a namespace that they control. | |||
| The XML declarations used in this document do not include namespace | The XML declarations used in this document do not include namespace | |||
| information. Thus, implementers MUST NOT use these declarations as | information. Thus, implementers must not use these declarations as | |||
| the only way to create valid CalDAV properties or to validate CalDAV | the only way to create valid CalDAV properties or to validate CalDAV | |||
| XML element type. Some of the declarations refer to XML elements | XML element type. Some of the declarations refer to XML elements | |||
| defined by WebDAV [RFC2518] which use the "DAV:" namespace. Wherever | defined by WebDAV [RFC2518] which use the "DAV:" namespace. Wherever | |||
| such XML elements appear, they are explicitly prefixed with "DAV:" to | such XML elements appear, they are explicitly prefixed with "DAV:" to | |||
| avoid confusion. | avoid confusion. | |||
| Also note that some CalDAV XML element names are identical to WebDAV | Also note that some CalDAV XML element names are identical to WebDAV | |||
| XML element names, though their namespace differs. Care must be | XML element names, though their namespace differs. Care must be | |||
| taken not to confuse the two sets of names. | taken not to confuse the two sets of names. | |||
| skipping to change at page 29, line 50 ¶ | skipping to change at page 29, line 50 ¶ | |||
| Calendar users often wish to allow other users to see their busy time | Calendar users often wish to allow other users to see their busy time | |||
| information, without viewing the other details of the calendar | information, without viewing the other details of the calendar | |||
| components (e.g., location, summary, attendees). This allows a | components (e.g., location, summary, attendees). This allows a | |||
| significant amount of privacy while still allowing other users to | significant amount of privacy while still allowing other users to | |||
| schedule meetings at times when the user is likely to be free. | schedule meetings at times when the user is likely to be free. | |||
| The CALDAV:read-free-busy privilege controls which calendar | The CALDAV:read-free-busy privilege controls which calendar | |||
| collections, regular collections and calendar object resources are | collections, regular collections and calendar object resources are | |||
| examined when a CALDAV:free-busy-query REPORT request is processed | examined when a CALDAV:free-busy-query REPORT request is processed | |||
| (see Section 7.9). This privilege can be granted on calendar | (see Section 7.10). This privilege can be granted on calendar | |||
| collections, regular collections or calendar object resources. | collections, regular collections or calendar object resources. | |||
| Servers MUST support this privilege on all calendar collections, | Servers MUST support this privilege on all calendar collections, | |||
| regular collections and calendar object resources. | regular collections and calendar object resources. | |||
| <!ELEMENT read-free-busy EMPTY> | <!ELEMENT read-free-busy EMPTY> | |||
| The CALDAV:read-free-busy privilege MUST be aggregated in the DAV: | The CALDAV:read-free-busy privilege MUST be aggregated in the DAV: | |||
| read privilege. Servers MUST allow the CALDAV:read-free-busy to be | read privilege. Servers MUST allow the CALDAV:read-free-busy to be | |||
| granted without the DAV:read privilege being granted. | granted without the DAV:read privilege being granted. | |||
| skipping to change at page 30, line 33 ¶ | skipping to change at page 30, line 33 ¶ | |||
| 6.2.1. CALDAV:calendar-home-set Property | 6.2.1. CALDAV:calendar-home-set Property | |||
| Name: calendar-home-set | Name: calendar-home-set | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Identifies the URL of any WebDAV collections that contain | Purpose: Identifies the URL of any WebDAV collections that contain | |||
| calendar collections owned by the associated principal resource. | calendar collections owned by the associated principal resource. | |||
| Conformance: This property MAY be defined in a principal resource. | Conformance: This property SHOULD be defined on a principal resource. | |||
| If defined, it MAY be protected and SHOULD NOT be returned by a | If defined, it MAY be protected and SHOULD NOT be returned by a | |||
| PROPFIND DAV:allprop request (as defined in Section 12.14.1 of | PROPFIND DAV:allprop request (as defined in Section 12.14.1 of | |||
| [RFC2518]). | [RFC2518]). | |||
| Description: The CALDAV:calendar-home-set property is meant to allow | Description: The CALDAV:calendar-home-set property is meant to allow | |||
| users to easily find the calendar collections owned by the | users to easily find the calendar collections owned by the | |||
| principal. Typically, users will group all the calendar | principal. Typically, users will group all the calendar | |||
| collections that they own under a common collection. This | collections that they own under a common collection. This | |||
| property specifies the URL of collections that either are calendar | property specifies the URL of collections that either are calendar | |||
| collections or ordinary collections that have child or descendant | collections or ordinary collections that have child or descendant | |||
| skipping to change at page 32, line 52 ¶ | skipping to change at page 32, line 52 ¶ | |||
| or to specific calendar component properties with date or date-time | or to specific calendar component properties with date or date-time | |||
| value types. | value types. | |||
| To determine whether a calendar object resource matches the time | To determine whether a calendar object resource matches the time | |||
| range filter element, the start and end times for the targeted | range filter element, the start and end times for the targeted | |||
| component or property are determined and then compared to the | component or property are determined and then compared to the | |||
| requested time range. If there is an overlap with the requested time | requested time range. If there is an overlap with the requested time | |||
| range, then the calendar object resource matches the filter element. | range, then the calendar object resource matches the filter element. | |||
| The rules defined in [RFC2445] for determining the actual start and | The rules defined in [RFC2445] for determining the actual start and | |||
| end times of calendar components MUST be used, and these are fully | end times of calendar components MUST be used, and these are fully | |||
| enumerated in Section 9.8 of this document. | enumerated in Section 9.9 of this document. | |||
| When such time range filtering is used, special consideration must be | When such time range filtering is used, special consideration must be | |||
| given to recurring calendar components such as VEVENT and VTODO | given to recurring calendar components such as VEVENT and VTODO | |||
| components. The server MUST expand recurring components to determine | components. The server MUST expand recurring components to determine | |||
| whether any recurrence instances overlap the specified time range. | whether any recurrence instances overlap the specified time range. | |||
| If one or more recurrence instances overlap the time range, then the | If one or more recurrence instances overlap the time range, then the | |||
| calendar object resource matches the filter element. | calendar object resource matches the filter element. | |||
| 7.5. Partial Retrieval | 7.5. Searching Text: Collations | |||
| Some of the reports defined in this section do text matches of | ||||
| character strings provided by the client and compared to stored | ||||
| calendar data. Since iCalendar data is by default encoded in the | ||||
| UTF-8 charset and may include characters outside of the US-ASCII | ||||
| charset range in some property and parameter values, there is a need | ||||
| to ensure that text matching follows well-defined rules. | ||||
| To deal with this, this specification makes use of the IANA Collation | ||||
| Registry defined in [I-D.newman-i18n-comparator] to specify | ||||
| collations that may be used to carry out the text comparison | ||||
| operations with a well-defined rule. | ||||
| The comparisons used in CalDAV are all "substring" matches as per | ||||
| [I-D.newman-i18n-comparator] Section 4.2. Collations supported by | ||||
| the server MUST support "substring" match operations. | ||||
| CalDAV servers are REQUIRED to support the "i;ascii-casemap" and | ||||
| "i;octet" collations as described in [I-D.newman-i18n-comparator], | ||||
| and MAY support other collations. | ||||
| Servers MUST advertise the set of collations that they support via | ||||
| the CALDAV:supported-collation-set property defined on any resource | ||||
| that supports reports that use collations. | ||||
| Clients MUST only use collations from the list advertised by the | ||||
| server. | ||||
| In the absence of a collation explicitly specified by the client, or | ||||
| if the client specifies the "default" collation identifier (as | ||||
| defined in [I-D.newman-i18n-comparator] Section 3.1), the server MUST | ||||
| default to using "i;ascii-casemap" as the collation. | ||||
| Wildcards (as defined in [I-D.newman-i18n-comparator] Section 3.2) | ||||
| MUST NOT be used in the collation identifier. | ||||
| If the client chooses a collation not supported by the server, the | ||||
| server MUST respond with a CALDAV:supported-collation precondition | ||||
| error response. | ||||
| 7.5.1. CALDAV:supported-collation-set Property | ||||
| Name: supported-collation-set | ||||
| Namespace: urn:ietf:params:xml:ns:caldav | ||||
| Purpose: Identifies the set of collations supported by the server for | ||||
| text matching operations. | ||||
| Conformance: This property MUST be defined on any resource that | ||||
| supports a REPORT that does text matching. If defined, it MUST be | ||||
| protected and SHOULD NOT be returned by a PROPFIND DAV:allprop | ||||
| request (as defined in Section 12.14.1 of [RFC2518]). | ||||
| Description: The CALDAV:supported-collation-set property contains | ||||
| zero or more CALDAV:supported-collation elements which specify the | ||||
| collection identifiers of the collations supported by the server. | ||||
| Definition: | ||||
| <!ELEMENT supported-collation-set (supported-collation*)> | ||||
| <!ELEMENT supported-collation (#PCDATA)> | ||||
| Example: | ||||
| <C:supported-collation-set | ||||
| xmlns:C="urn:ietf:params:xml:ns:caldav"> | ||||
| <C:supported-collation>i;ascii-casemap</C:supported-collation> | ||||
| <C:supported-collation>i;octet</C:supported-collation> | ||||
| </C:supported-collation-set> | ||||
| 7.6. Partial Retrieval | ||||
| Some calendaring REPORTs defined in this document allow partial | Some calendaring REPORTs defined in this document allow partial | |||
| retrieval of calendar object resources. A CalDAV client may specify | retrieval of calendar object resources. A CalDAV client can specify | |||
| what information to return in the body of a calendaring REPORT | what information to return in the body of a calendaring REPORT | |||
| request. | request. | |||
| A CalDAV client MAY request particular WebDAV property values, all | A CalDAV client can request particular WebDAV property values, all | |||
| WebDAV property values, or a list of the names of the resource's | WebDAV property values, or a list of the names of the resource's | |||
| WebDAV properties. A CalDAV client MAY also request calendar data to | WebDAV properties. A CalDAV client can also request calendar data to | |||
| be returned and whether all calendar components and properties should | be returned and whether all calendar components and properties should | |||
| be returned or only particular ones. See CALDAV:calendar-data in | be returned or only particular ones. See CALDAV:calendar-data in | |||
| Section 9.5. | Section 9.6. | |||
| By default, the returned calendar data will include the component | By default, the returned calendar data will include the component | |||
| that defines the recurrence set, referred to as the "master | that defines the recurrence set, referred to as the "master | |||
| component", as well as the components that define exceptions to the | component", as well as the components that define exceptions to the | |||
| recurrence set, referred to as the "overridden components". | recurrence set, referred to as the "overridden components". | |||
| A CalDAV client only interested in the recurrence instances that | A CalDAV client only interested in the recurrence instances that | |||
| overlap a specified time range MAY request to receive only the | overlap a specified time range can request to receive only the | |||
| "master component" along with the "overridden components" that impact | "master component" along with the "overridden components" that impact | |||
| the specified time range and thus limit the data returned by the | the specified time range and thus limit the data returned by the | |||
| server. See CALDAV:limit-recurrence-set in Section 9.5.6. An | server. See CALDAV:limit-recurrence-set in Section 9.6.6. An | |||
| overridden component impacts a time range if its current start and | overridden component impacts a time range if its current start and | |||
| end times overlap the time range, or if the original start and end | end times overlap the time range, or if the original start and end | |||
| times - the ones that would have been used if the instance were not | times - the ones that would have been used if the instance were not | |||
| overridden - overlap the time range. | overridden - overlap the time range. | |||
| A CalDAV client with no support for recurrence properties (i.e., | A CalDAV client with no support for recurrence properties (i.e., | |||
| EXDATE, EXRULE, RDATE and RRULE) and possibly VTIMEZONE components, | EXDATE, EXRULE, RDATE and RRULE) and possibly VTIMEZONE components, | |||
| or a client not willing to perform recurrence expansion because of | or a client not willing to perform recurrence expansion because of | |||
| limited processing capability MAY request to receive only the | limited processing capability can request to receive only the | |||
| recurrence instances that overlap a specified time range as separate | recurrence instances that overlap a specified time range as separate | |||
| calendar components that each define exactly one recurrence instance. | calendar components that each define exactly one recurrence instance. | |||
| See CALDAV:expand in Section 9.5.5. | See CALDAV:expand in Section 9.6.5. | |||
| Finally, in the case of VFREEBUSY components, a CalDAV client MAY | Finally, in the case of VFREEBUSY components, a CalDAV client can | |||
| request to receive only the FREEBUSY property values that overlap a | request to receive only the FREEBUSY property values that overlap a | |||
| specified time range. See CALDAV:limit-freebusy-set in | specified time range. See CALDAV:limit-freebusy-set in | |||
| Section 9.5.7. | Section 9.6.7. | |||
| 7.6. Non-standard components, properties and parameters | 7.7. Non-standard components, properties and parameters | |||
| Servers MUST support the use of non-standard component, property or | Servers MUST support the use of non-standard component, property or | |||
| parameter names in the CALDAV:calendar-data XML element in | parameter names in the CALDAV:calendar-data XML element in | |||
| calendaring REPORT requests to allow clients to request that non- | calendaring REPORT requests to allow clients to request that non- | |||
| standard components, properties and parameters be returned in the | standard components, properties and parameters be returned in the | |||
| calendar data provided in the response. | calendar data provided in the response. | |||
| Servers MAY support the use of non-standard component, property or | Servers MAY support the use of non-standard component, property or | |||
| parameter names in the CALDAV:comp-filter, CALDAV:prop-filter and | parameter names in the CALDAV:comp-filter, CALDAV:prop-filter and | |||
| CALDAV:param-filter XML elements specified in the CALDAV:filter XML | CALDAV:param-filter XML elements specified in the CALDAV:filter XML | |||
| element of calendaring REPORT requests. | element of calendaring REPORT requests. | |||
| Servers MUST fail with the CALDAV:supported-filter precondition if a | Servers MUST fail with the CALDAV:supported-filter precondition if a | |||
| calendaring REPORT request uses a CALDAV:comp-filter, CALDAV:prop- | calendaring REPORT request uses a CALDAV:comp-filter, CALDAV:prop- | |||
| filter or CALDAV:param-filter XML element that makes reference to a | filter or CALDAV:param-filter XML element that makes reference to a | |||
| non-standard component, property or parameter name which the server | non-standard component, property or parameter name which the server | |||
| does not support queries on. | does not support queries on. | |||
| 7.7. CALDAV:calendar-query Report | 7.8. CALDAV:calendar-query Report | |||
| The CALDAV:calendar-query REPORT performs a search for all calendar | The CALDAV:calendar-query REPORT performs a search for all calendar | |||
| object resources that match a specified filter. The response of this | object resources that match a specified filter. The response of this | |||
| REPORT will contain all the WebDAV properties and calendar object | REPORT will contain all the WebDAV properties and calendar object | |||
| resource data specified in the request. In the case of the CALDAV: | resource data specified in the request. In the case of the CALDAV: | |||
| calendar-data XML element, one can explicitly specify the calendar | calendar-data XML element, one can explicitly specify the calendar | |||
| components and properties that should be returned in the calendar | components and properties that should be returned in the calendar | |||
| object resource data that matches the filter. | object resource data that matches the filter. | |||
| The format of this REPORT is modeled on the PROPFIND method. The | The format of this REPORT is modeled on the PROPFIND method. The | |||
| skipping to change at page 34, line 50 ¶ | skipping to change at page 36, line 26 ¶ | |||
| elements used to return specific property results. For instance, a | elements used to return specific property results. For instance, a | |||
| request to retrieve the value of a property which does not exist is | request to retrieve the value of a property which does not exist is | |||
| an error and MUST be noted with a response XML element which contains | an error and MUST be noted with a response XML element which contains | |||
| a 404 (Not Found) status value. | a 404 (Not Found) status value. | |||
| Support for the CALDAV:calendar-query REPORT is REQUIRED. | Support for the CALDAV:calendar-query REPORT is REQUIRED. | |||
| Marshalling: | Marshalling: | |||
| The request body MUST be a CALDAV:calendar-query XML element as | The request body MUST be a CALDAV:calendar-query XML element as | |||
| defined in Section 9.4. | defined in Section 9.5. | |||
| The request MAY include a Depth header. If no Depth header is | The request MAY include a Depth header. If no Depth header is | |||
| included, Depth:0 is assumed. | included, Depth:0 is assumed. | |||
| The response body for a successful request MUST be a DAV: | The response body for a successful request MUST be a DAV: | |||
| multistatus XML element (i.e., the response uses the same format | multistatus XML element (i.e., the response uses the same format | |||
| as the response for PROPFIND). In the case where there are no | as the response for PROPFIND). In the case where there are no | |||
| response elements, the returned DAV:multistatus XML element is | response elements, the returned DAV:multistatus XML element is | |||
| empty. | empty. | |||
| The response body for a successful CALDAV:calendar-query REPORT | The response body for a successful CALDAV:calendar-query REPORT | |||
| request MUST contain a DAV:response element for each iCalendar | request MUST contain a DAV:response element for each iCalendar | |||
| object that matched the search filter. Calendar data is being | object that matched the search filter. Calendar data is being | |||
| returned in the CALDAV:calendar-data XML element inside the DAV: | returned in the CALDAV:calendar-data XML element inside the DAV: | |||
| propstat XML element. | propstat XML element. | |||
| Preconditions: | Preconditions: | |||
| (CALDAV:supported-calendar-data): The attributes "content-type" | (CALDAV:supported-calendar-data): The attributes "content-type" | |||
| and "version" of the CALDAV:calendar-data XML element (see | and "version" of the CALDAV:calendar-data XML element (see | |||
| Section 9.5) specify a media type supported by the server for | Section 9.6) specify a media type supported by the server for | |||
| calendar object resources. | calendar object resources. | |||
| (CALDAV:valid-filter): The CALDAV:filter XML element (see | (CALDAV:valid-filter): The CALDAV:filter XML element (see | |||
| Section 9.6) specified in the REPORT request MUST be valid. For | Section 9.7) specified in the REPORT request MUST be valid. For | |||
| instance, a CALDAV:filter cannot nest a <C:comp name="VEVENT"> | instance, a CALDAV:filter cannot nest a <C:comp name="VEVENT"> | |||
| element in a <C:comp name="VTODO"> element, or a CALDAV:filter | element in a <C:comp name="VTODO"> element, or a CALDAV:filter | |||
| cannot nest a <C:time-range start="..." end="..."> element in a | cannot nest a <C:time-range start="..." end="..."> element in a | |||
| <C:prop name="SUMMARY"> element. | <C:prop name="SUMMARY"> element. | |||
| (CALDAV:supported-filter): The CALDAV:comp-filter (see | (CALDAV:supported-filter): The CALDAV:comp-filter (see | |||
| Section 9.6.1), CALDAV:prop-filter (see Section 9.6.2) and CALDAV: | Section 9.7.1), CALDAV:prop-filter (see Section 9.7.2) and CALDAV: | |||
| param-filter (see Section 9.6.3) XML elements used in the CALDAV: | param-filter (see Section 9.7.3) XML elements used in the CALDAV: | |||
| filter XML element (see Section 9.6) in the REPORT request only | filter XML element (see Section 9.7) in the REPORT request only | |||
| make reference to components, properties and parameters for which | make reference to components, properties and parameters for which | |||
| queries are supported by the server. i.e., if the CALDAV:filter | queries are supported by the server. i.e., if the CALDAV:filter | |||
| element attempts to reference an unsupported component, property | element attempts to reference an unsupported component, property | |||
| or parameter, this precondition is violated. Servers SHOULD | or parameter, this precondition is violated. Servers SHOULD | |||
| report the CALDAV:comp-filter, CALDAV:prop-filter or CALDAV:param- | report the CALDAV:comp-filter, CALDAV:prop-filter or CALDAV:param- | |||
| filter for which it does not provide support. | filter for which it does not provide support. | |||
| <!ELEMENT supported-filter (comp-filter*, | <!ELEMENT supported-filter (comp-filter*, | |||
| prop-filter*, | prop-filter*, | |||
| param-filter*)> | param-filter*)> | |||
| skipping to change at page 36, line 17 ¶ | skipping to change at page 37, line 40 ¶ | |||
| equal to the value of the CALDAV:min-date-time property value | equal to the value of the CALDAV:min-date-time property value | |||
| (Section 5.2.6) on the calendar collections being targeted by the | (Section 5.2.6) on the calendar collections being targeted by the | |||
| REPORT; | REPORT; | |||
| (CALDAV:max-date-time): Any XML element specifying a range of time | (CALDAV:max-date-time): Any XML element specifying a range of time | |||
| MUST have its start or end date or time values less than or equal | MUST have its start or end date or time values less than or equal | |||
| to the value of the CALDAV:max-date-time property value | to the value of the CALDAV:max-date-time property value | |||
| (Section 5.2.7) on the calendar collections being targeted by the | (Section 5.2.7) on the calendar collections being targeted by the | |||
| REPORT; | REPORT; | |||
| (CALDAV:supported-collation): Any XML attribute specifying a | ||||
| collation MUST specify a collation supported by the server as | ||||
| described in Section 7.5. | ||||
| Postconditions: | Postconditions: | |||
| (DAV:number-of-matches-within-limits): The number of matching | (DAV:number-of-matches-within-limits): The number of matching | |||
| calendar object resources must fall within server-specific, | calendar object resources must fall within server-specific, | |||
| predefined limits. For example, this condition might be triggered | predefined limits. For example, this condition might be triggered | |||
| if a search specification would cause the return of an extremely | if a search specification would cause the return of an extremely | |||
| large number of responses. | large number of responses. | |||
| 7.7.1. Example: Partial retrieval of events by time range | 7.8.1. Example: Partial retrieval of events by time range | |||
| In this example, the client requests the server to return specific | In this example, the client requests the server to return specific | |||
| components and properties of the VEVENT components that overlap the | components and properties of the VEVENT components that overlap the | |||
| time range from January 4th, 2006 at 00:00:00 AM UTC to January 5th, | time range from January 4th, 2006 at 00:00:00 AM UTC to January 5th, | |||
| 2006 at 00:00:00 AM UTC. In addition the DAV:getetag property is | 2006 at 00:00:00 AM UTC. In addition the DAV:getetag property is | |||
| also requested and returned as part of the response. Note that the | also requested and returned as part of the response. Note that the | |||
| first calendar object returned is a recurring event whose first | first calendar object returned is a recurring event whose first | |||
| instance lies outside of the requested time range, but whose third | instance lies outside of the requested time range, but whose third | |||
| instance does overlap the time range. Note that due to the CALDAV: | instance does overlap the time range. Note that due to the CALDAV: | |||
| calendar-data element restrictions, the DTSTAMP property in VEVENT | calendar-data element restrictions, the DTSTAMP property in VEVENT | |||
| skipping to change at page 40, line 5 ¶ | skipping to change at page 42, line 5 ¶ | |||
| UID:DC6C50A017428C5216A2F1CD@example.com | UID:DC6C50A017428C5216A2F1CD@example.com | |||
| END:VEVENT | END:VEVENT | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.2. Example: Partial retrieval of recurring events | 7.8.2. Example: Partial retrieval of recurring events | |||
| In this example, the client requests the server to return VEVENT | In this example, the client requests the server to return VEVENT | |||
| components that overlap the time range from January 3rd, 2006 at 00: | components that overlap the time range from January 3rd, 2006 at 00: | |||
| 00:00 AM UTC to January 5th, 2006 at 00:00:00 AM UTC. Use of the | 00:00 AM UTC to January 5th, 2006 at 00:00:00 AM UTC. Use of the | |||
| CALDAV:limit-recurrence-set element causes the server to only return | CALDAV:limit-recurrence-set element causes the server to only return | |||
| overridden recurrence components that overlap the time range | overridden recurrence components that overlap the time range | |||
| specified in that element, or that affect other instances that | specified in that element, or that affect other instances that | |||
| overlap the time range (e.g., in the case of a "THISANDFUTURE" | overlap the time range (e.g., in the case of a "THISANDFUTURE" | |||
| behavior). In this example the first overridden component in the | behavior). In this example the first overridden component in the | |||
| matching resource is returned but the second one is not. | matching resource is returned but the second one is not. | |||
| skipping to change at page 43, line 8 ¶ | skipping to change at page 45, line 8 ¶ | |||
| END:VEVENT | END:VEVENT | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.3. Example: Expanded retrieval of recurring events | 7.8.3. Example: Expanded retrieval of recurring events | |||
| In this example, the client requests the server to return VEVENT | In this example, the client requests the server to return VEVENT | |||
| components that overlap the time range from January 2nd, 2006 at 00: | components that overlap the time range from January 2nd, 2006 at 00: | |||
| 00:00 AM UTC to January 5th, 2006 at 00:00:00 AM UTC and to return | 00:00 AM UTC to January 5th, 2006 at 00:00:00 AM UTC and to return | |||
| recurring calendar components expanded into individual recurrence | recurring calendar components expanded into individual recurrence | |||
| instance calendar components. Use of the CALDAV:expand element | instance calendar components. Use of the CALDAV:expand element | |||
| causes the server to only return overridden recurrence instances that | causes the server to only return overridden recurrence instances that | |||
| overlap the time range specified in that element. | overlap the time range specified in that element. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| skipping to change at page 45, line 19 ¶ | skipping to change at page 47, line 19 ¶ | |||
| X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | |||
| END:VEVENT | END:VEVENT | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.4. Example: Partial retrieval of stored free busy components | 7.8.4. Example: Partial retrieval of stored free busy components | |||
| In this example, the client requests the server to return the | In this example, the client requests the server to return the | |||
| VFREEBUSY components that have free busy information that overlap the | VFREEBUSY components that have free busy information that overlap the | |||
| time range from January 2nd, 2006 at 00:00:00 AM UTC (inclusively) to | time range from January 2nd, 2006 at 00:00:00 AM UTC (inclusively) to | |||
| January 3rd, 2006 at 00:00:00 AM UTC (exclusively). Use of the | January 3rd, 2006 at 00:00:00 AM UTC (exclusively). Use of the | |||
| CALDAV:limit-freebusy-set element causes the server to only return | CALDAV:limit-freebusy-set element causes the server to only return | |||
| the FREEBUSY property values that overlap the time range specified in | the FREEBUSY property values that overlap the time range specified in | |||
| that element. Note that this is not an example of discovering when | that element. Note that this is not an example of discovering when | |||
| the calendar owner is busy. | the calendar owner is busy. | |||
| skipping to change at page 47, line 38 ¶ | skipping to change at page 49, line 38 ¶ | |||
| FREEBUSY;FBTYPE=BUSY-TENTATIVE:20060102T100000Z/20060102T120000Z | FREEBUSY;FBTYPE=BUSY-TENTATIVE:20060102T100000Z/20060102T120000Z | |||
| END:VFREEBUSY | END:VFREEBUSY | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.5. Example: Retrieval of to-dos by alarm time range | 7.8.5. Example: Retrieval of to-dos by alarm time range | |||
| In this example, the client requests the server to return the VTODO | In this example, the client requests the server to return the VTODO | |||
| components that have an alarm trigger scheduled in the specified time | components that have an alarm trigger scheduled in the specified time | |||
| range. | range. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| REPORT /bernard/work/ HTTP/1.1 | REPORT /bernard/work/ HTTP/1.1 | |||
| skipping to change at page 49, line 43 ¶ | skipping to change at page 51, line 43 ¶ | |||
| END:VALARM | END:VALARM | |||
| END:VTODO | END:VTODO | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.6. Example: Retrieval of event by UID | 7.8.6. Example: Retrieval of event by UID | |||
| In this example, the client requests the server to return the VEVENT | In this example, the client requests the server to return the VEVENT | |||
| component that has the UID property set to | component that has the UID property set to | |||
| "DC6C50A017428C5216A2F1CD@example.com". | "DC6C50A017428C5216A2F1CD@example.com". | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| REPORT /bernard/work/ HTTP/1.1 | REPORT /bernard/work/ HTTP/1.1 | |||
| skipping to change at page 50, line 23 ¶ | skipping to change at page 52, line 23 ¶ | |||
| <?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | |||
| <C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav"> | <C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav"> | |||
| <D:prop xmlns:D="DAV:"> | <D:prop xmlns:D="DAV:"> | |||
| <D:getetag/> | <D:getetag/> | |||
| <C:calendar-data/> | <C:calendar-data/> | |||
| </D:prop> | </D:prop> | |||
| <C:filter> | <C:filter> | |||
| <C:comp-filter name="VCALENDAR"> | <C:comp-filter name="VCALENDAR"> | |||
| <C:comp-filter name="VEVENT"> | <C:comp-filter name="VEVENT"> | |||
| <C:prop-filter name="UID"> | <C:prop-filter name="UID"> | |||
| <C:text-match caseless="no" | <C:text-match collation="i;octet" | |||
| >DC6C50A017428C5216A2F1CD@example.com</C:text-match> | >DC6C50A017428C5216A2F1CD@example.com</C:text-match> | |||
| </C:prop-filter> | </C:prop-filter> | |||
| </C:comp-filter> | </C:comp-filter> | |||
| </C:comp-filter> | </C:comp-filter> | |||
| </C:filter> | </C:filter> | |||
| </C:calendar-query> | </C:calendar-query> | |||
| >> Response << | >> Response << | |||
| HTTP/1.1 207 Multi-Status | HTTP/1.1 207 Multi-Status | |||
| skipping to change at page 51, line 40 ¶ | skipping to change at page 53, line 40 ¶ | |||
| X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | |||
| END:VEVENT | END:VEVENT | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.7. Example: Retrieval of events by PARTSTAT | 7.8.7. Example: Retrieval of events by PARTSTAT | |||
| In this example, the client requests the server to return the VEVENT | In this example, the client requests the server to return the VEVENT | |||
| components that have the ATTENDEE property with the value | components that have the ATTENDEE property with the value | |||
| "mailto:lisa@example.com" and for which the PARTSTAT parameter is set | "mailto:lisa@example.com" and for which the PARTSTAT parameter is set | |||
| to "NEEDS-ACTION". | to "NEEDS-ACTION". | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| skipping to change at page 52, line 23 ¶ | skipping to change at page 54, line 23 ¶ | |||
| <?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | |||
| <C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav"> | <C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav"> | |||
| <D:prop xmlns:D="DAV:"> | <D:prop xmlns:D="DAV:"> | |||
| <D:getetag/> | <D:getetag/> | |||
| <C:calendar-data/> | <C:calendar-data/> | |||
| </D:prop> | </D:prop> | |||
| <C:filter> | <C:filter> | |||
| <C:comp-filter name="VCALENDAR"> | <C:comp-filter name="VCALENDAR"> | |||
| <C:comp-filter name="VEVENT"> | <C:comp-filter name="VEVENT"> | |||
| <C:prop-filter name="ATTENDEE"> | <C:prop-filter name="ATTENDEE"> | |||
| <C:text-match | <C:text-match collation="i;ascii-casemap" | |||
| caseless="yes">mailto:lisa@example.com</C:text-match> | >mailto:lisa@example.com</C:text-match> | |||
| <C:param-filter name="PARTSTAT"> | <C:param-filter name="PARTSTAT"> | |||
| <C:text-match caseless="yes">NEEDS-ACTION</C:text-match> | <C:text-match collation="i;ascii-casemap" | |||
| >NEEDS-ACTION</C:text-match> | ||||
| </C:param-filter> | </C:param-filter> | |||
| </C:prop-filter> | </C:prop-filter> | |||
| </C:comp-filter> | </C:comp-filter> | |||
| </C:comp-filter> | </C:comp-filter> | |||
| </C:filter> | </C:filter> | |||
| </C:calendar-query> | </C:calendar-query> | |||
| >> Response << | >> Response << | |||
| HTTP/1.1 207 Multi-Status | HTTP/1.1 207 Multi-Status | |||
| skipping to change at page 53, line 43 ¶ | skipping to change at page 55, line 44 ¶ | |||
| X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | |||
| END:VEVENT | END:VEVENT | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.8. Example: Retrieval of events only | 7.8.8. Example: Retrieval of events only | |||
| In this example, the client requests the server to return all VEVENT | In this example, the client requests the server to return all VEVENT | |||
| components. | components. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| REPORT /bernard/work/ HTTP/1.1 | REPORT /bernard/work/ HTTP/1.1 | |||
| Host: cal.example.com | Host: cal.example.com | |||
| skipping to change at page 57, line 35 ¶ | skipping to change at page 59, line 35 ¶ | |||
| X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | X-ABC-GUID:E1CX5Dr-0007ym-Hz@example.com | |||
| END:VEVENT | END:VEVENT | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.9. Example: Retrieval of all pending to-dos | 7.8.9. Example: Retrieval of all pending to-dos | |||
| In this example, the client requests the server to return all VTODO | In this example, the client requests the server to return all VTODO | |||
| components that do not include a "COMPLETED" property and do not have | components that do not include a "COMPLETED" property and do not have | |||
| a "STATUS" property value matching "CANCELLED". i.e., VTODOs that | a "STATUS" property value matching "CANCELLED". i.e., VTODOs that | |||
| still need to be worked on. | still need to be worked on. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| skipping to change at page 60, line 5 ¶ | skipping to change at page 62, line 5 ¶ | |||
| END:VALARM | END:VALARM | |||
| END:VTODO | END:VTODO | |||
| END:VCALENDAR | END:VCALENDAR | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.7.10. Example: Attempt to query unsupported property | 7.8.10. Example: Attempt to query unsupported property | |||
| In this example, the client requests the server to return all VEVENT | In this example, the client requests the server to return all VEVENT | |||
| components that include an "X-ABC-GUID" property with a value | components that include an "X-ABC-GUID" property with a value | |||
| matching "ABC". However, the server does not support querying that | matching "ABC". However, the server does not support querying that | |||
| non-standard property and instead returns and error response. | non-standard property and instead returns and error response. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| skipping to change at page 61, line 5 ¶ | skipping to change at page 63, line 5 ¶ | |||
| Content-Type: application/xml; charset="utf-8" | Content-Type: application/xml; charset="utf-8" | |||
| Content-Length: xxxx | Content-Length: xxxx | |||
| <?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | |||
| <D:error> | <D:error> | |||
| <C:supported-filter> | <C:supported-filter> | |||
| <C:prop-filter name="X-ABC-GUID"/> | <C:prop-filter name="X-ABC-GUID"/> | |||
| </C:supported-filter> | </C:supported-filter> | |||
| </D:error> | </D:error> | |||
| 7.8. CALDAV:calendar-multiget Report | 7.9. CALDAV:calendar-multiget Report | |||
| The CALDAV:calendar-multiget REPORT is used to retrieve specific | The CALDAV:calendar-multiget REPORT is used to retrieve specific | |||
| calendar object resources from within a collection, if the Request- | calendar object resources from within a collection, if the Request- | |||
| URI is a collection, or to retrieve a specific calendar object | URI is a collection, or to retrieve a specific calendar object | |||
| resource, if the Request-URI is a calendar object resource. This | resource, if the Request-URI is a calendar object resource. This | |||
| REPORT is similar to the CALDAV:calendar-query REPORT (see | REPORT is similar to the CALDAV:calendar-query REPORT (see | |||
| Section 7.7), except that it takes a list of DAV:href elements | Section 7.8), except that it takes a list of DAV:href elements | |||
| instead of a CALDAV:filter element to determine which calendar object | instead of a CALDAV:filter element to determine which calendar object | |||
| resources to return. | resources to return. | |||
| Support for the calendar-multiget REPORT is REQUIRED. | Support for the calendar-multiget REPORT is REQUIRED. | |||
| Marshalling: | Marshalling: | |||
| The request body MUST be a CALDAV:calendar-multiget XML element | The request body MUST be a CALDAV:calendar-multiget XML element | |||
| (see Section 9.9). If the Request-URI is a collection resource, | (see Section 9.10). If the Request-URI is a collection resource, | |||
| then the DAV:href elements MUST refer to calendar object resources | then the DAV:href elements MUST refer to calendar object resources | |||
| within that collection, and they MAY refer to calendar object | within that collection, and they MAY refer to calendar object | |||
| resources at any depth within the collection. As a result the | resources at any depth within the collection. As a result the | |||
| "Depth" header MUST be ignored by the server and SHOULD NOT be | "Depth" header MUST be ignored by the server and SHOULD NOT be | |||
| sent by the client. If the Request-URI refers to a non-collection | sent by the client. If the Request-URI refers to a non-collection | |||
| resource, then there MUST be a single DAV:href element that is | resource, then there MUST be a single DAV:href element that is | |||
| equivalent to the Request-URI. | equivalent to the Request-URI. | |||
| The response body for a successful request MUST be a DAV: | The response body for a successful request MUST be a DAV: | |||
| multistatus XML element. | multistatus XML element. | |||
| skipping to change at page 61, line 48 ¶ | skipping to change at page 63, line 48 ¶ | |||
| In the case of an error accessing any of the provided DAV:href | In the case of an error accessing any of the provided DAV:href | |||
| resources, the server MUST return the appropriate error status | resources, the server MUST return the appropriate error status | |||
| code in the DAV:status element of the corresponding DAV:response | code in the DAV:status element of the corresponding DAV:response | |||
| element. | element. | |||
| Preconditions: | Preconditions: | |||
| (CALDAV:supported-calendar-data): The attributes "content-type" | (CALDAV:supported-calendar-data): The attributes "content-type" | |||
| and "version" of the CALDAV:calendar-data XML elements (see | and "version" of the CALDAV:calendar-data XML elements (see | |||
| Section 9.5) specify a media type supported by the server for | Section 9.6) specify a media type supported by the server for | |||
| calendar object resources. | calendar object resources. | |||
| (CALDAV:min-date-time): Any XML element specifying a range of time | (CALDAV:min-date-time): Any XML element specifying a range of time | |||
| MUST have its start or end date or time values greater than or | MUST have its start or end date or time values greater than or | |||
| equal to the value of the CALDAV:min-date-time property value | equal to the value of the CALDAV:min-date-time property value | |||
| (Section 5.2.6) on the calendar collections being targeted by the | (Section 5.2.6) on the calendar collections being targeted by the | |||
| REPORT; | REPORT; | |||
| (CALDAV:max-date-time): Any XML element specifying a range of time | (CALDAV:max-date-time): Any XML element specifying a range of time | |||
| MUST have its start or end date or time values less than or equal | MUST have its start or end date or time values less than or equal | |||
| to the value of the CALDAV:max-date-time property value | to the value of the CALDAV:max-date-time property value | |||
| (Section 5.2.7) on the calendar collections being targeted by the | (Section 5.2.7) on the calendar collections being targeted by the | |||
| REPORT; | REPORT; | |||
| Postconditions: | Postconditions: | |||
| None. | None. | |||
| 7.8.1. Example: Successful CALDAV:calendar-multiget Report | 7.9.1. Example: Successful CALDAV:calendar-multiget Report | |||
| In this example, the client requests the server to return specific | In this example, the client requests the server to return specific | |||
| properties of the VEVENT components referenced by specific URIs. In | properties of the VEVENT components referenced by specific URIs. In | |||
| addition the DAV:getetag property is also requested and returned as | addition the DAV:getetag property is also requested and returned as | |||
| part of the response. Note that in this example, the resource at | part of the response. Note that in this example, the resource at | |||
| http://cal.example.com/bernard/work/mtg1.ics does not exist, | http://cal.example.com/bernard/work/mtg1.ics does not exist, | |||
| resulting in an error status response. | resulting in an error status response. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| skipping to change at page 64, line 8 ¶ | skipping to change at page 66, line 8 ¶ | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| <D:response> | <D:response> | |||
| <D:href>http://cal.example.com/bernard/work/mtg1.ics</D:href> | <D:href>http://cal.example.com/bernard/work/mtg1.ics</D:href> | |||
| <D:status>HTTP/1.1 404 Not Found</D:status> | <D:status>HTTP/1.1 404 Not Found</D:status> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| 7.9. CALDAV:free-busy-query Report | 7.10. CALDAV:free-busy-query Report | |||
| The CALDAV:free-busy-query REPORT generates a VFREEBUSY component | The CALDAV:free-busy-query REPORT generates a VFREEBUSY component | |||
| containing free busy information for all the calendar object | containing free busy information for all the calendar object | |||
| resources targeted by the request and which have the CALDAV:read- | resources targeted by the request and which have the CALDAV:read- | |||
| free-busy or DAV:read privilege granted to the current user. | free-busy or DAV:read privilege granted to the current user. | |||
| Only VEVENT components without a TRANSP property or with the TRANSP | Only VEVENT components without a TRANSP property or with the TRANSP | |||
| property set to "OPAQUE", and VFREEBUSY components SHOULD be | property set to "OPAQUE", and VFREEBUSY components SHOULD be | |||
| considered to generate the free busy time information. | considered to generate the free busy time information. | |||
| skipping to change at page 65, line 8 ¶ | skipping to change at page 67, line 8 ¶ | |||
| SHOULD NOT be specified in the returned VFREEBUSY component. Servers | SHOULD NOT be specified in the returned VFREEBUSY component. Servers | |||
| SHOULD coalesce consecutive or overlapping busy time period of the | SHOULD coalesce consecutive or overlapping busy time period of the | |||
| same type. Busy time periods with different FBTYPE parameter values | same type. Busy time periods with different FBTYPE parameter values | |||
| MAY overlap. | MAY overlap. | |||
| Support for the CALDAV:free-busy-query REPORT is REQUIRED. | Support for the CALDAV:free-busy-query REPORT is REQUIRED. | |||
| Marshalling: | Marshalling: | |||
| The request body MUST be a CALDAV:free-busy-query XML element (see | The request body MUST be a CALDAV:free-busy-query XML element (see | |||
| Section 9.10, which MUST contain exactly one CALDAV:time-range XML | Section 9.11, which MUST contain exactly one CALDAV:time-range XML | |||
| element, as defined in Section 9.8. | element, as defined in Section 9.9. | |||
| The request MAY include a Depth header. If no Depth header is | The request MAY include a Depth header. If no Depth header is | |||
| included, Depth:0 is assumed. | included, Depth:0 is assumed. | |||
| The response body for a successful request MUST be an iCalendar | The response body for a successful request MUST be an iCalendar | |||
| object that contains exactly one VFREEBUSY component that | object that contains exactly one VFREEBUSY component that | |||
| describes the busy time intervals for the calendar object | describes the busy time intervals for the calendar object | |||
| resources containing VEVENT or VFREEBUSY components that satisfy | resources containing VEVENT or VFREEBUSY components that satisfy | |||
| the Depth value and for which the current user is at least granted | the Depth value and for which the current user is at least granted | |||
| the CALDAV:read-free-busy privilege. If no calendar object | the CALDAV:read-free-busy privilege. If no calendar object | |||
| skipping to change at page 66, line 5 ¶ | skipping to change at page 68, line 5 ¶ | |||
| Postconditions: | Postconditions: | |||
| (DAV:number-of-matches-within-limits): The number of matching | (DAV:number-of-matches-within-limits): The number of matching | |||
| calendar object resources must fall within server-specific, | calendar object resources must fall within server-specific, | |||
| predefined limits. For example, this postcondition might fail if | predefined limits. For example, this postcondition might fail if | |||
| the specified CALDAV:time-range would cause an extremely large | the specified CALDAV:time-range would cause an extremely large | |||
| number calendar object resources to be considered to compute the | number calendar object resources to be considered to compute the | |||
| response. | response. | |||
| 7.9.1. Example: Successful CALDAV:free-busy-query Report | 7.10.1. Example: Successful CALDAV:free-busy-query Report | |||
| In this example, the client requests the server to return free busy | In this example, the client requests the server to return free busy | |||
| information on the calendar collection /bernard/work/, between 9:00 | information on the calendar collection /bernard/work/, between 9:00 | |||
| AM and 5:00 PM EST (2:00 PM and 10:00 PM UTC) on the 4th January | AM and 5:00 PM EST (2:00 PM and 10:00 PM UTC) on the 4th January | |||
| 2006. The server responds indicating two busy time intervals of one | 2006. The server responds indicating two busy time intervals of one | |||
| hour, one of which is tentative. | hour, one of which is tentative. | |||
| See Appendix B for the calendar data being targeted by this example. | See Appendix B for the calendar data being targeted by this example. | |||
| >> Request << | >> Request << | |||
| skipping to change at page 71, line 19 ¶ | skipping to change at page 73, line 19 ¶ | |||
| it. This is somewhat of a barrier for WebDAV usage as well as with | it. This is somewhat of a barrier for WebDAV usage as well as with | |||
| CalDAV usage. This specification does not offer a way through this | CalDAV usage. This specification does not offer a way through this | |||
| other than making the information available in the OPTIONS response | other than making the information available in the OPTIONS response | |||
| should this be requested. | should this be requested. | |||
| For calendar sharing and scheduling use cases, one might wish to find | For calendar sharing and scheduling use cases, one might wish to find | |||
| the calendar belonging to another user. If the other user has a | the calendar belonging to another user. If the other user has a | |||
| calendar in the same repository, that calendar can be found by using | calendar in the same repository, that calendar can be found by using | |||
| the principal namespace required by WebDAV ACL support. For other | the principal namespace required by WebDAV ACL support. For other | |||
| cases, the authors have no universal solution but implementers can | cases, the authors have no universal solution but implementers can | |||
| consider whether to use vCard [RFC2426] or LDAP [RFC2251] standards | consider whether to use vCard [RFC2426] or LDAP [RFC4511] standards | |||
| together with calendar attributes [RFC2739]. | together with calendar attributes [RFC2739]. | |||
| Because CalDAV requires servers to support WebDAV ACL [RFC3744] | Because CalDAV requires servers to support WebDAV ACL [RFC3744] | |||
| including principal namespaces, and with the addition of the CALDAV: | including principal namespaces, and with the addition of the CALDAV: | |||
| calendar-home-set property, there are a couple options for CalDAV | calendar-home-set property, there are a couple options for CalDAV | |||
| clients to find one's own calendar or another user's calendar. | clients to find one's own calendar or another user's calendar. | |||
| In this case, a DAV:principal-match REPORT is used to find a named | In this case, a DAV:principal-match REPORT is used to find a named | |||
| property (the CALDAV:calendar-home-set) on the Principal-URL of the | property (the CALDAV:calendar-home-set) on the Principal-URL of the | |||
| current user. Using this, a WebDAV client can learn "who am I" and | current user. Using this, a WebDAV client can learn "who am I" and | |||
| skipping to change at page 73, line 13 ¶ | skipping to change at page 75, line 13 ¶ | |||
| download the entire calendar object resource even if the | download the entire calendar object resource even if the | |||
| attachment is unchanged. | attachment is unchanged. | |||
| 8.5.2. External attachments | 8.5.2. External attachments | |||
| CalDAV clients SHOULD support downloading of external attachments | CalDAV clients SHOULD support downloading of external attachments | |||
| referenced by arbitrary URI schemes, by either processing them | referenced by arbitrary URI schemes, by either processing them | |||
| directly, or by passing the attachment URI to a suitable "helper | directly, or by passing the attachment URI to a suitable "helper | |||
| application" for processing, if such an application exists. CalDAV | application" for processing, if such an application exists. CalDAV | |||
| clients MUST support downloading of external attachments referenced | clients MUST support downloading of external attachments referenced | |||
| by the "http" URI scheme, and MAY support downloading of external | by the "http" or "https" URI schemes. An external attachment could | |||
| attachments referenced by the "https" URI scheme. An external | be: | |||
| attachment could be: | ||||
| o In a collection in the calendar collection containing the calendar | o In a collection in the calendar collection containing the calendar | |||
| object resource; | object resource; | |||
| o Somewhere else in the same repository that hosts the calendar | o Somewhere else in the same repository that hosts the calendar | |||
| collection; or | collection; or | |||
| o On an HTTP or FTP server elsewhere. | o On an HTTP or FTP server elsewhere. | |||
| CalDAV servers MAY provide support for child collections in calendar | CalDAV servers MAY provide support for child collections in calendar | |||
| skipping to change at page 76, line 17 ¶ | skipping to change at page 78, line 17 ¶ | |||
| Purpose: Specifies a response body for a successful MKCALENDAR | Purpose: Specifies a response body for a successful MKCALENDAR | |||
| request. | request. | |||
| Description: See Section 5.3.1. | Description: See Section 5.3.1. | |||
| Definition: | Definition: | |||
| <!ELEMENT mkcalendar-response ANY> | <!ELEMENT mkcalendar-response ANY> | |||
| 9.4. CALDAV:calendar-query XML Element | 9.4. CALDAV:supported-collation XML Element | |||
| Name: supported-collation | ||||
| Namespace: urn:ietf:params:xml:ns:caldav | ||||
| Purpose: Identifies a single collation via its collation identifier | ||||
| as defined by [I-D.newman-i18n-comparator]. | ||||
| Description: The CALDAV:supported-collation contains the text of a | ||||
| collation identifier as described in Section 7.5.1. | ||||
| Definition: | ||||
| <!ELEMENT supported-collation (#PCDATA)> | ||||
| PCDATA value: collation identifier | ||||
| 9.5. CALDAV:calendar-query XML Element | ||||
| Name: calendar-query | Name: calendar-query | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Defines a REPORT for querying calendar object resources. | Purpose: Defines a REPORT for querying calendar object resources. | |||
| Description: See Section 7.7. | Description: See Section 7.8. | |||
| Definition: | Definition: | |||
| <!ELEMENT calendar-query ((DAV:allprop | | <!ELEMENT calendar-query ((DAV:allprop | | |||
| DAV:propname | | DAV:propname | | |||
| DAV:prop)?, filter, timezone?)> | DAV:prop)?, filter, timezone?)> | |||
| 9.5. CALDAV:calendar-data XML Element | 9.6. CALDAV:calendar-data XML Element | |||
| Name: calendar-data | Name: calendar-data | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Used to (1) specify a supported media type for calendar | Purpose: Used to (1) specify a supported media type for calendar | |||
| object resources when nested in the CALDAV:supported-calendar-data | object resources when nested in the CALDAV:supported-calendar-data | |||
| property; (2) specify which parts of a calendar object resource | property; (2) specify which parts of a calendar object resource | |||
| should be returned by a given calendaring REPORT; and (3) specify | should be returned by a given calendaring REPORT; and (3) specify | |||
| the content of a calendar object resource in a response to a | the content of a calendar object resource in a response to a | |||
| skipping to change at page 78, line 5 ¶ | skipping to change at page 80, line 19 ¶ | |||
| limit-recurrence-set)?, | limit-recurrence-set)?, | |||
| limit-freebusy-set?) | | limit-freebusy-set?) | | |||
| #PCDATA)?> | #PCDATA)?> | |||
| PCDATA value: iCalendar object | PCDATA value: iCalendar object | |||
| <!ATTLIST calendar-data content-type CDATA "text/calendar"> | <!ATTLIST calendar-data content-type CDATA "text/calendar"> | |||
| version CDATA "2.0"> | version CDATA "2.0"> | |||
| content-type value: a MIME media type | content-type value: a MIME media type | |||
| version value: a version string | version value: a version string | |||
| 9.5.1. CALDAV:comp XML Element | 9.6.1. CALDAV:comp XML Element | |||
| Name: comp | Name: comp | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Defines which component types to return. | Purpose: Defines which component types to return. | |||
| Description: The name value is a calendar component name (e.g., | Description: The name value is a calendar component name (e.g., | |||
| "VEVENT"). | "VEVENT"). | |||
| skipping to change at page 78, line 29 ¶ | skipping to change at page 80, line 43 ¶ | |||
| <!ATTLIST comp name CDATA #REQUIRED> | <!ATTLIST comp name CDATA #REQUIRED> | |||
| name value: a calendar component name | name value: a calendar component name | |||
| Note: The CALDAV:prop and CALDAV:allprop elements have the same name | Note: The CALDAV:prop and CALDAV:allprop elements have the same name | |||
| as the DAV:prop and DAV:allprop elements defined in [RFC2518]. | as the DAV:prop and DAV:allprop elements defined in [RFC2518]. | |||
| However, the CALDAV:prop and CALDAV:allprop element are defined in | However, the CALDAV:prop and CALDAV:allprop element are defined in | |||
| the "urn:ietf:params:xml:ns:caldav" namespace instead of the | the "urn:ietf:params:xml:ns:caldav" namespace instead of the | |||
| "DAV:" namespace. | "DAV:" namespace. | |||
| 9.5.2. CALDAV:allcomp XML Element | 9.6.2. CALDAV:allcomp XML Element | |||
| Name: allcomp | Name: allcomp | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies that all components shall be returned. | Purpose: Specifies that all components shall be returned. | |||
| Description: The CALDAV:allcomp XML element can be used when the | Description: The CALDAV:allcomp XML element can be used when the | |||
| client wants all types of components returned by a calendaring | client wants all types of components returned by a calendaring | |||
| REPORT request. | REPORT request. | |||
| Definition: | Definition: | |||
| <!ELEMENT allcomp EMPTY> | <!ELEMENT allcomp EMPTY> | |||
| 9.5.3. CALDAV:allprop XML Element | 9.6.3. CALDAV:allprop XML Element | |||
| Name: allprop | Name: allprop | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies that all properties shall be returned. | Purpose: Specifies that all properties shall be returned. | |||
| Description: The CALDAV:allprop XML element can be used when the | Description: The CALDAV:allprop XML element can be used when the | |||
| client wants all properties of components returned by a | client wants all properties of components returned by a | |||
| calendaring REPORT request. | calendaring REPORT request. | |||
| Definition: | Definition: | |||
| <!ELEMENT allprop EMPTY> | <!ELEMENT allprop EMPTY> | |||
| Note: The CALDAV:allprop element has the same name as the DAV:allprop | Note: The CALDAV:allprop element has the same name as the DAV:allprop | |||
| element defined in [RFC2518]. However, the CALDAV:allprop element | element defined in [RFC2518]. However, the CALDAV:allprop element | |||
| is defined in the "urn:ietf:params:xml:ns:caldav" namespace | is defined in the "urn:ietf:params:xml:ns:caldav" namespace | |||
| instead of the "DAV:" namespace. | instead of the "DAV:" namespace. | |||
| 9.5.4. CALDAV:prop XML Element | 9.6.4. CALDAV:prop XML Element | |||
| Name: prop | Name: prop | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Defines which properties to return in the response. | Purpose: Defines which properties to return in the response. | |||
| Description: The "name" attribute specifies the name of the calendar | Description: The "name" attribute specifies the name of the calendar | |||
| property to return (e.g., "ATTENDEE"). The "novalue" attribute | property to return (e.g., "ATTENDEE"). The "novalue" attribute | |||
| can be used by clients to request that the actual value of the | can be used by clients to request that the actual value of the | |||
| skipping to change at page 80, line 5 ¶ | skipping to change at page 82, line 19 ¶ | |||
| <!ATTLIST prop name CDATA #REQUIRED | <!ATTLIST prop name CDATA #REQUIRED | |||
| novalue (yes | no) "no"> | novalue (yes | no) "no"> | |||
| name value: a calendar property name | name value: a calendar property name | |||
| novalue value: "yes" or "no" | novalue value: "yes" or "no" | |||
| Note: The CALDAV:prop element has the same name as the DAV:prop | Note: The CALDAV:prop element has the same name as the DAV:prop | |||
| element defined in [RFC2518]. However, the CALDAV:prop element is | element defined in [RFC2518]. However, the CALDAV:prop element is | |||
| defined in the "urn:ietf:params:xml:ns:caldav" namespace instead | defined in the "urn:ietf:params:xml:ns:caldav" namespace instead | |||
| of the "DAV:" namespace. | of the "DAV:" namespace. | |||
| 9.5.5. CALDAV:expand XML Element | 9.6.5. CALDAV:expand XML Element | |||
| Name: expand | Name: expand | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Forces the server to expand recurring components into | Purpose: Forces the server to expand recurring components into | |||
| individual recurrence instances. | individual recurrence instances. | |||
| Description: The CALDAV:expand XML element specifies that for a given | Description: The CALDAV:expand XML element specifies that for a given | |||
| calendaring REPORT request the server MUST expand the recurrence | calendaring REPORT request the server MUST expand the recurrence | |||
| skipping to change at page 80, line 42 ¶ | skipping to change at page 83, line 12 ¶ | |||
| Definition: | Definition: | |||
| <!ELEMENT expand EMPTY> | <!ELEMENT expand EMPTY> | |||
| <!ATTLIST expand start CDATA #REQUIRED | <!ATTLIST expand start CDATA #REQUIRED | |||
| end CDATA #REQUIRED> | end CDATA #REQUIRED> | |||
| start value: an iCalendar "date with UTC time" | start value: an iCalendar "date with UTC time" | |||
| end value: an iCalendar "date with UTC time" | end value: an iCalendar "date with UTC time" | |||
| 9.5.6. CALDAV:limit-recurrence-set XML Element | 9.6.6. CALDAV:limit-recurrence-set XML Element | |||
| Name: limit-recurrence-set | Name: limit-recurrence-set | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies a time range to limit the set of "overridden | Purpose: Specifies a time range to limit the set of "overridden | |||
| components" returned by the server. | components" returned by the server. | |||
| Description: The CALDAV:limit-recurrence-set XML element specifies | Description: The CALDAV:limit-recurrence-set XML element specifies | |||
| that for a given calendaring REPORT request the server MUST | that for a given calendaring REPORT request the server MUST | |||
| skipping to change at page 81, line 38 ¶ | skipping to change at page 84, line 5 ¶ | |||
| Definition: | Definition: | |||
| <!ELEMENT limit-recurrence-set EMPTY> | <!ELEMENT limit-recurrence-set EMPTY> | |||
| <!ATTLIST limit-recurrence-set start CDATA #REQUIRED | <!ATTLIST limit-recurrence-set start CDATA #REQUIRED | |||
| end CDATA #REQUIRED> | end CDATA #REQUIRED> | |||
| start value: an iCalendar "date with UTC time" | start value: an iCalendar "date with UTC time" | |||
| end value: an iCalendar "date with UTC time" | end value: an iCalendar "date with UTC time" | |||
| 9.5.7. CALDAV:limit-freebusy-set XML Element | 9.6.7. CALDAV:limit-freebusy-set XML Element | |||
| Name: limit-freebusy-set | Name: limit-freebusy-set | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies a time range to limit the set of FREEBUSY values | Purpose: Specifies a time range to limit the set of FREEBUSY values | |||
| returned by the server. | returned by the server. | |||
| Description: The CALDAV:limit-freebusy-set XML element specifies that | Description: The CALDAV:limit-freebusy-set XML element specifies that | |||
| for a given calendaring REPORT request the server MUST only return | for a given calendaring REPORT request the server MUST only return | |||
| skipping to change at page 82, line 19 ¶ | skipping to change at page 84, line 35 ¶ | |||
| Definition: | Definition: | |||
| <!ELEMENT limit-freebusy-set EMPTY> | <!ELEMENT limit-freebusy-set EMPTY> | |||
| <!ATTLIST limit-freebusy-set start CDATA #REQUIRED | <!ATTLIST limit-freebusy-set start CDATA #REQUIRED | |||
| end CDATA #REQUIRED> | end CDATA #REQUIRED> | |||
| start value: an iCalendar "date with UTC time" | start value: an iCalendar "date with UTC time" | |||
| end value: an iCalendar "date with UTC time" | end value: an iCalendar "date with UTC time" | |||
| 9.6. CALDAV:filter XML Element | 9.7. CALDAV:filter XML Element | |||
| Name: filter | Name: filter | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies a filter to limit the set of calendar components | Purpose: Specifies a filter to limit the set of calendar components | |||
| returned by the server. | returned by the server. | |||
| Description: The CALDAV:filter XML element specifies the search | Description: The CALDAV:filter XML element specifies the search | |||
| filter used to limit the calendar components returned by a | filter used to limit the calendar components returned by a | |||
| calendaring REPORT request. | calendaring REPORT request. | |||
| Definition: | Definition: | |||
| <!ELEMENT filter (comp-filter)> | <!ELEMENT filter (comp-filter)> | |||
| 9.6.1. CALDAV:comp-filter XML Element | 9.7.1. CALDAV:comp-filter XML Element | |||
| Name: comp-filter | Name: comp-filter | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies search criteria on calendar components. | Purpose: Specifies search criteria on calendar components. | |||
| Description: The CALDAV:comp-filter XML element specifies the queried | Description: The CALDAV:comp-filter XML element specifies the queried | |||
| calendar component type (e.g., "VEVENT"). A calendar object | calendar component type (e.g., "VEVENT"). A calendar object | |||
| resource is said to match a CALDAV:comp-filter if: | resource is said to match a CALDAV:comp-filter if: | |||
| skipping to change at page 83, line 20 ¶ | skipping to change at page 85, line 37 ¶ | |||
| not exist, and the CALDAV:is-not-defined element is specified. | not exist, and the CALDAV:is-not-defined element is specified. | |||
| Definition: | Definition: | |||
| <!ELEMENT comp-filter (is-not-defined | (time-range?, | <!ELEMENT comp-filter (is-not-defined | (time-range?, | |||
| prop-filter*, comp-filter*))> | prop-filter*, comp-filter*))> | |||
| <!ATTLIST comp-filter name CDATA #REQUIRED> | <!ATTLIST comp-filter name CDATA #REQUIRED> | |||
| name value: a calendar component name (e.g., "VEVENT") | name value: a calendar component name (e.g., "VEVENT") | |||
| 9.6.2. CALDAV:prop-filter XML Element | 9.7.2. CALDAV:prop-filter XML Element | |||
| Name: prop-filter | Name: prop-filter | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies search criteria on calendar properties. | Purpose: Specifies search criteria on calendar properties. | |||
| Description: The CALDAV:prop-filter XML element specifies a search | Description: The CALDAV:prop-filter XML element specifies a search | |||
| criteria on a specific calendar property (e.g., CATEGORIES) in the | criteria on a specific calendar property (e.g., CATEGORIES) in the | |||
| scope of a given CALDAV:comp-filter. A calendar component is said | scope of a given CALDAV:comp-filter. A calendar component is said | |||
| skipping to change at page 84, line 5 ¶ | skipping to change at page 86, line 21 ¶ | |||
| Definition: | Definition: | |||
| <!ELEMENT prop-filter ((is-not-defined | | <!ELEMENT prop-filter ((is-not-defined | | |||
| ((time-range | text-match)?, | ((time-range | text-match)?, | |||
| param-filter*))> | param-filter*))> | |||
| <!ATTLIST prop-filter name CDATA #REQUIRED> | <!ATTLIST prop-filter name CDATA #REQUIRED> | |||
| name value: a calendar property name (e.g., "ATTENDEE") | name value: a calendar property name (e.g., "ATTENDEE") | |||
| 9.6.3. CALDAV:param-filter XML Element | 9.7.3. CALDAV:param-filter XML Element | |||
| Name: param-filter | Name: param-filter | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Limits the search to specific parameter values. | Purpose: Limits the search to specific parameter values. | |||
| Description: The CALDAV:param-filter XML element specifies a search | Description: The CALDAV:param-filter XML element specifies a search | |||
| criteria on a specific calendar property parameter (e.g., | criteria on a specific calendar property parameter (e.g., | |||
| PARTSTAT) in the scope of a given CALDAV:prop-filter. A calendar | PARTSTAT) in the scope of a given CALDAV:prop-filter. A calendar | |||
| skipping to change at page 84, line 34 ¶ | skipping to change at page 87, line 5 ¶ | |||
| * A parameter of the type specified by the "name" attribute does | * A parameter of the type specified by the "name" attribute does | |||
| not exist, and the CALDAV:is-not-defined element is specified. | not exist, and the CALDAV:is-not-defined element is specified. | |||
| Definition: | Definition: | |||
| <!ELEMENT param-filter (is-not-defined | text-match)?> | <!ELEMENT param-filter (is-not-defined | text-match)?> | |||
| <!ATTLIST param-filter name CDATA #REQUIRED> | <!ATTLIST param-filter name CDATA #REQUIRED> | |||
| name value: a property parameter name (e.g., "PARTSTAT") | name value: a property parameter name (e.g., "PARTSTAT") | |||
| 9.6.4. CALDAV:is-not-defined XML Element | 9.7.4. CALDAV:is-not-defined XML Element | |||
| Name: is-not-defined | Name: is-not-defined | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies that a match should occur if the enclosing | Purpose: Specifies that a match should occur if the enclosing | |||
| component, property or parameter does not exist. | component, property or parameter does not exist. | |||
| Description: The CALDAV:is-not-defined XML element specifies that a | Description: The CALDAV:is-not-defined XML element specifies that a | |||
| match occurs if the enclosing component, property or parameter | match occurs if the enclosing component, property or parameter | |||
| value specified in a calendaring REPORT request does not exist in | value specified in a calendaring REPORT request does not exist in | |||
| the calendar data being tested. | the calendar data being tested. | |||
| Definition: | Definition: | |||
| <!ELEMENT is-not-defined EMPTY> | <!ELEMENT is-not-defined EMPTY> | |||
| 9.6.5. CALDAV:text-match XML Element | 9.7.5. CALDAV:text-match XML Element | |||
| Name: text-match | Name: text-match | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies a substring match on a property or parameter | Purpose: Specifies a substring match on a property or parameter | |||
| value. | value. | |||
| Description: The CALDAV:text-match XML element specifies text used | Description: The CALDAV:text-match XML element specifies text used | |||
| for a substring match against the property or parameter value | for a substring match against the property or parameter value | |||
| specified in a calendaring REPORT request. | specified in a calendaring REPORT request. | |||
| The "caseless" attribute indicates whether the match is case- | The "collation" attribute is used to select the collation that the | |||
| sensitive (value set to "no") or case-insensitive (value set to | server MUST use for character string matching. In the absence of | |||
| "yes"). The default value is server-specified. Support for the | this attribute the server MUST use the "i;ascii-casemap" | |||
| "caseless" attribute is REQUIRED, and implementers of servers are | collation. | |||
| strongly encouraged to consult "The Unicode Standard" [UNICODE4], | ||||
| especially Section 5.18, Subsection "Caseless Matching", for | ||||
| guidance when implementing their case-insensitive matching | ||||
| algorithms. A server MAY ignore the caseless attribute when | ||||
| applied to enumerated iCalendar property or parameter values, and | ||||
| default to caseless matching for those values, since they are | ||||
| defined as being case-insensitive in iCalendar. | ||||
| The "negate-condition" attribute is used to indicate that this | The "negate-condition" attribute is used to indicate that this | |||
| test returns a match if the text matches, when the attribute value | test returns a match if the text matches, when the attribute value | |||
| is set to "no", or return a match if the text does not match, if | is set to "no", or return a match if the text does not match, if | |||
| the attribute value is set to "yes". For example, this can be | the attribute value is set to "yes". For example, this can be | |||
| used to match components with a STATUS property not set to | used to match components with a STATUS property not set to | |||
| CANCELLED. | CANCELLED. | |||
| Definition: | Definition: | |||
| <!ELEMENT text-match (#PCDATA)> | <!ELEMENT text-match (#PCDATA)> | |||
| PCDATA value: string | PCDATA value: string | |||
| <!ATTLIST text-match caseless (yes | no) #IMPLIED | <!ATTLIST text-match collation CDATA "i;ascii-casemap" | |||
| negate-condition (yes | no) "no"> | negate-condition (yes | no) "no"> | |||
| 9.7. CALDAV:timezone XML Element | 9.8. CALDAV:timezone XML Element | |||
| Name: timezone | Name: timezone | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies the time zone component to use when determining | Purpose: Specifies the time zone component to use when determining | |||
| the results of a report. | the results of a report. | |||
| Description: The CALDAV:timezone XML element specifies that for a | Description: The CALDAV:timezone XML element specifies that for a | |||
| given calendaring REPORT request the server MUST rely on the | given calendaring REPORT request the server MUST rely on the | |||
| specified VTIMEZONE component instead of the CALDAV:calendar- | specified VTIMEZONE component instead of the CALDAV:calendar- | |||
| timezone property of the calendar collection in which the calendar | timezone property of the calendar collection in which the calendar | |||
| object resource is contained to resolve "date" values and "date | object resource is contained to resolve "date" values and "date | |||
| with local time" values (i.e., floating time) to "date with UTC | with local time" values (i.e., floating time) to "date with UTC | |||
| time" values. The server will require this information to | time" values. The server will require this information to | |||
| skipping to change at page 86, line 30 ¶ | skipping to change at page 88, line 43 ¶ | |||
| rules, including use of <, >, & etc entity encoding or | rules, including use of <, >, & etc entity encoding or | |||
| the use of a <![CDATA[ ... ]]> construct. In the later case the | the use of a <![CDATA[ ... ]]> construct. In the later case the | |||
| iCalendar data cannot contain the character sequence "]]>" which | iCalendar data cannot contain the character sequence "]]>" which | |||
| is the end delimiter for the CDATA section. | is the end delimiter for the CDATA section. | |||
| Definition: | Definition: | |||
| <!ELEMENT timezone (#PCDATA)> | <!ELEMENT timezone (#PCDATA)> | |||
| PCDATA value: an iCalendar object with exactly one VTIMEZONE | PCDATA value: an iCalendar object with exactly one VTIMEZONE | |||
| 9.8. CALDAV:time-range XML Element | 9.9. CALDAV:time-range XML Element | |||
| Name: time-range | Name: time-range | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: Specifies a time range to limit the set of calendar | Purpose: Specifies a time range to limit the set of calendar | |||
| components returned by the server. | components returned by the server. | |||
| Description: The CALDAV:time-range XML element specifies that for a | Description: The CALDAV:time-range XML element specifies that for a | |||
| given calendaring REPORT request the server MUST only return the | given calendaring REPORT request the server MUST only return the | |||
| skipping to change at page 90, line 38 ¶ | skipping to change at page 93, line 38 ¶ | |||
| Definition: | Definition: | |||
| <!ELEMENT time-range EMPTY> | <!ELEMENT time-range EMPTY> | |||
| <!ATTLIST time-range start CDATA #IMPLIED | <!ATTLIST time-range start CDATA #IMPLIED | |||
| end CDATA #IMPLIED> | end CDATA #IMPLIED> | |||
| start value: an iCalendar "date with UTC time" | start value: an iCalendar "date with UTC time" | |||
| end value: an iCalendar "date with UTC time" | end value: an iCalendar "date with UTC time" | |||
| 9.9. CALDAV:calendar-multiget XML Element | 9.10. CALDAV:calendar-multiget XML Element | |||
| Name: calendar-multiget | Name: calendar-multiget | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: CalDAV REPORT used to retrieve specific calendar object | Purpose: CalDAV REPORT used to retrieve specific calendar object | |||
| resources. | resources. | |||
| Description: See Section 7.8. | Description: See Section 7.9. | |||
| Definition: | Definition: | |||
| <!ELEMENT calendar-multiget ((DAV:allprop | | <!ELEMENT calendar-multiget ((DAV:allprop | | |||
| DAV:propname | | DAV:propname | | |||
| DAV:prop)?, DAV:href+)> | DAV:prop)?, DAV:href+)> | |||
| 9.10. CALDAV:free-busy-query XML Element | 9.11. CALDAV:free-busy-query XML Element | |||
| Name: free-busy-query | Name: free-busy-query | |||
| Namespace: urn:ietf:params:xml:ns:caldav | Namespace: urn:ietf:params:xml:ns:caldav | |||
| Purpose: CalDAV REPORT used to generate a VFREEBUSY to determine busy | Purpose: CalDAV REPORT used to generate a VFREEBUSY to determine busy | |||
| time over a specific time range. | time over a specific time range. | |||
| Description: See Section 7.9. | Description: See Section 7.10. | |||
| Definition: | Definition: | |||
| <!ELEMENT free-busy-query (time-range)> | <!ELEMENT free-busy-query (time-range)> | |||
| 10. Internationalization Considerations | 10. Internationalization Considerations | |||
| CalDAV allows internationalized strings to be stored and retrieved | CalDAV allows internationalized strings to be stored and retrieved | |||
| for the description of calendar collections (see Section 5.2.1). | for the description of calendar collections (see Section 5.2.1). | |||
| The CALDAV:calendar-query report (Section 7.7) includes a text | The CALDAV:calendar-query report (Section 7.8) includes a text | |||
| searching option controlled by the CALDAV:text-match element and | searching option controlled by the CALDAV:text-match element and | |||
| details of character handling are covered in the description of that | details of character handling are covered in the description of that | |||
| element (see Section 9.6.5). | element (see Section 9.7.5). | |||
| 11. Security Considerations | 11. Security Considerations | |||
| HTTP protocol transactions are sent in the clear over the network | HTTP protocol transactions are sent in the clear over the network | |||
| unless protection from snooping is negotiated. This can be | unless protection from snooping is negotiated. This can be | |||
| accomplished by use of TLS as defined in [RFC2818]. In particular, | accomplished by use of TLS as defined in [RFC2818]. In particular, | |||
| HTTP Basic authentication MUST NOT be used unless TLS is in effect. | HTTP Basic authentication MUST NOT be used unless TLS is in effect. | |||
| Servers MUST take adequate precautions to ensure malicious clients | Servers MUST take adequate precautions to ensure malicious clients | |||
| cannot consume excessive server resources (CPU, memory, disk, etc.) | cannot consume excessive server resources (CPU, memory, disk, etc.) | |||
| skipping to change at page 93, line 10 ¶ | skipping to change at page 96, line 10 ¶ | |||
| Registrant Contact: See the "Author's Address" section of this | Registrant Contact: See the "Author's Address" section of this | |||
| document. | document. | |||
| XML: None. Namespace URIs do not represent an XML specification. | XML: None. Namespace URIs do not represent an XML specification. | |||
| 13. Acknowledgements | 13. Acknowledgements | |||
| The authors would like to thank the following individuals for | The authors would like to thank the following individuals for | |||
| contributing their ideas and support for writing this specification: | contributing their ideas and support for writing this specification: | |||
| Michael Arick, Mario Bonin, Chris Bryant, Scott Carr, Mike Douglass, | Michael Arick, Mario Bonin, Chris Bryant, Scott Carr, Mike Douglass, | |||
| Helge Hess, Dan Mosedale, Kervin L. Pierre, Julian F. Reschke, Mike | Ted Hardie, Sam Hartman, Helge Hess, Jeff McCullough, Alexey | |||
| Shaver, Simon Vaillancourt, Wilfredo Sanchez and Jim Whitehead, | Melnikov, Dan Mosedale, Brian Moseley, Kervin L. Pierre, Julian F. | |||
| Alexey Melnikov, Jeff McCullough, Brian Moseley, Jari Urpalainen. | Reschke, Wilfredo Sanchez Vega, Mike Shaver, Jari Urpalainen, Simon | |||
| Vaillancourt, Jim Whitehead. | ||||
| The authors would also like to thank the Calendaring and Scheduling | The authors would also like to thank the Calendaring and Scheduling | |||
| Consortium for advice with this specification, and for organizing | Consortium for advice with this specification, and for organizing | |||
| interoperability testing events to help refine it. | interoperability testing events to help refine it. | |||
| 14. References | 14. References | |||
| 14.1. Normative References | 14.1. Normative References | |||
| [I-D.newman-i18n-comparator] | ||||
| Newman, C., "Internet Application Protocol Collation | ||||
| Registry", draft-newman-i18n-comparator-13 (work in | ||||
| progress), August 2006. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", | [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", | |||
| RFC 2246, January 1999. | RFC 2246, January 1999. | |||
| [RFC2445] Dawson, F. and Stenerson, D., "Internet Calendaring and | [RFC2445] Dawson, F. and Stenerson, D., "Internet Calendaring and | |||
| Scheduling Core Object Specification (iCalendar)", | Scheduling Core Object Specification (iCalendar)", | |||
| RFC 2445, November 1998. | RFC 2445, November 1998. | |||
| skipping to change at page 94, line 15 ¶ | skipping to change at page 97, line 20 ¶ | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| January 2004. | January 2004. | |||
| [RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web | [RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web | |||
| Distributed Authoring and Versioning (WebDAV) Access | Distributed Authoring and Versioning (WebDAV) Access | |||
| Control Protocol", RFC 3744, May 2004. | Control Protocol", RFC 3744, May 2004. | |||
| [RFC4346] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC4346] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.1", RFC 4346, April 2006. | (TLS) Protocol Version 1.1", RFC 4346, April 2006. | |||
| [UNICODE4] | [W3C.REC-xml-20060816] | |||
| The Unicode Consortium, "The Unicode Standard, Version | Yergeau, F., Paoli, J., Bray, T., Sperberg-McQueen, C., | |||
| 4.0", Addison-Wesley, Boston, MA. ISBN 0-321-18578-1, | and E. Maler, "Extensible Markup Language (XML) 1.0 | |||
| August 2003, | (Fourth Edition)", World Wide Web Consortium | |||
| <http://www.unicode.org/versions/Unicode4.0.0/>. | Recommendation REC-xml-20060816, August 2006, | |||
| <http://www.w3.org/TR/2006/REC-xml-20060816>. | ||||
| [W3C.REC-xml-20040204] | ||||
| Maler, E., Sperberg-McQueen, C., Bray, T., Yergeau, F., | ||||
| and J. Paoli, "Extensible Markup Language (XML) 1.0 (Third | ||||
| Edition)", World Wide Web Consortium Recommendation REC- | ||||
| xml-20040204, February 2004, | ||||
| <http://www.w3.org/TR/2004/REC-xml-20040204>. | ||||
| 14.2. Informative References | 14.2. Informative References | |||
| [I-D.ietf-webdav-rfc2518bis] | [I-D.ietf-webdav-rfc2518bis] | |||
| Dusseault, L., "HTTP Extensions for Distributed Authoring | Dusseault, L., "HTTP Extensions for Distributed Authoring | |||
| - WebDAV", draft-ietf-webdav-rfc2518bis-15 (work in | - WebDAV", draft-ietf-webdav-rfc2518bis-15 (work in | |||
| progress), May 2006. | progress), May 2006. | |||
| [RFC2251] Wahl, M., Howes, T., and S. Kille, "Lightweight Directory | ||||
| Access Protocol (v3)", RFC 2251, December 1997. | ||||
| [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile", | [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile", | |||
| RFC 2426, September 1998. | RFC 2426, September 1998. | |||
| [RFC2739] Small, T., Hennessy, D., and F. Dawson, "Calendar | [RFC2739] Small, T., Hennessy, D., and F. Dawson, "Calendar | |||
| Attributes for vCard and LDAP", RFC 2739, January 2000. | Attributes for vCard and LDAP", RFC 2739, January 2000. | |||
| [RFC4331] Korver, B. and L. Dusseault, "Quota and Size Properties | [RFC4331] Korver, B. and L. Dusseault, "Quota and Size Properties | |||
| for Distributed Authoring and Versioning (DAV) | for Distributed Authoring and Versioning (DAV) | |||
| Collections", RFC 4331, February 2006. | Collections", RFC 4331, February 2006. | |||
| [RFC4511] Sermersheim, J., "Lightweight Directory Access Protocol | ||||
| (LDAP): The Protocol", RFC 4511, June 2006. | ||||
| Appendix A. CalDAV Method Privilege Table (Normative) | Appendix A. CalDAV Method Privilege Table (Normative) | |||
| The following table extends the WebDAV Method Privilege Table | The following table extends the WebDAV Method Privilege Table | |||
| specified in Appendix B of [RFC3744]. | specified in Appendix B of [RFC3744]. | |||
| +------------+------------------------------------------------------+ | +------------+------------------------------------------------------+ | |||
| | METHOD | PRIVILEGES | | | METHOD | PRIVILEGES | | |||
| +------------+------------------------------------------------------+ | +------------+------------------------------------------------------+ | |||
| | MKCALENDAR | DAV:bind | | | MKCALENDAR | DAV:bind | | |||
| | REPORT | DAV:read or CALDAV:read-free-busy (on all referenced | | | REPORT | DAV:read or CALDAV:read-free-busy (on all referenced | | |||
| skipping to change at page 101, line 36 ¶ | skipping to change at page 104, line 36 ¶ | |||
| </C:calendar-data> | </C:calendar-data> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| Appendix C. Changes (to be removed prior to publication as an RFC) | Appendix C. Changes (to be removed prior to publication as an RFC) | |||
| C.1. Changes in -14 | C.1. Changes in -15 | |||
| a. Switched to using collations for text-match element in calendar- | ||||
| query report. | ||||
| b. Removed caseless attribute from text-match element. | ||||
| c. Removed UNICODE4 reference. | ||||
| d. Removed mailing list comment. | ||||
| e. Made calendar-home-set property a SHOULD as it was in previous | ||||
| drafts. | ||||
| f. Now require https download of external attachments. | ||||
| g. Changed some improper uses of 2119 terms to lowercase. | ||||
| h. Updated some references to latest specs. | ||||
| C.2. Changes in -14 | ||||
| a. Reverted to normative reference to 2518 and added informative | a. Reverted to normative reference to 2518 and added informative | |||
| reference to 2518bis. | reference to 2518bis. | |||
| b. Reinserted section describing preconditions/postconditions. | b. Reinserted section describing preconditions/postconditions. | |||
| c. Removed redundant compliance statement in last paragraph of | c. Removed redundant compliance statement in last paragraph of | |||
| Section 3. | Section 3. | |||
| d. Clarify that only text/calendar is allowed if supported-calendar- | d. Clarify that only text/calendar is allowed if supported-calendar- | |||
| skipping to change at page 102, line 13 ¶ | skipping to change at page 105, line 35 ¶ | |||
| of Section 6.2.1. | of Section 6.2.1. | |||
| f. Removed redundant compliance statement in first paragraph of | f. Removed redundant compliance statement in first paragraph of | |||
| Section 7.5. | Section 7.5. | |||
| g. Fixed incorrect whitespace in elements in example in Section | g. Fixed incorrect whitespace in elements in example in Section | |||
| 7.7.6. | 7.7.6. | |||
| h. Fixed incorrect CDATA descriptions in various places. | h. Fixed incorrect CDATA descriptions in various places. | |||
| C.2. Changes in -13 | C.3. Changes in -13 | |||
| a. Changed mailing list draft description. | a. Changed mailing list draft description. | |||
| b. Added security review suggested text to Security Considerations. | b. Added security review suggested text to Security Considerations. | |||
| c. Changed external attachment support to require http URI | c. Changed external attachment support to require http URI | |||
| downloads, and optionally others. | downloads, and optionally others. | |||
| d. Added reference to text-match element in Internationalization | d. Added reference to text-match element in Internationalization | |||
| Considerations section. | Considerations section. | |||
| e. Changed 'undefined' to 'not specified here' in ETag behavior | e. Changed 'undefined' to 'not specified here' in ETag behavior | |||
| section. | section. | |||
| f. Added reference to RFC4346 with note that it obsoletes RFC2246 | f. Added reference to RFC4346 with note that it obsoletes RFC2246 | |||
| C.3. Changes in -12 | C.4. Changes in -12 | |||
| a. Changed requirements for ETags on PUT to better reflect the needs | a. Changed requirements for ETags on PUT to better reflect the needs | |||
| of CalDAV clients wrt synchronization and reflect what other | of CalDAV clients wrt synchronization and reflect what other | |||
| standards define or do not define. | standards define or do not define. | |||
| b. Changed CALDAV:read-free-busy privilege so that it is also | b. Changed CALDAV:read-free-busy privilege so that it is also | |||
| defined on regular collections. | defined on regular collections. | |||
| C.4. Changes in -11 | C.5. Changes in -11 | |||
| a. Added statement that calendar-query Depth defaults to zero if | a. Added statement that calendar-query Depth defaults to zero if | |||
| header is not present. Fixed one multiget example's Depth | header is not present. Fixed one multiget example's Depth | |||
| header. | header. | |||
| b. Fixed reference to WebDAV Quota RFC. | b. Fixed reference to WebDAV Quota RFC. | |||
| c. Changed DAV:resource to DAV:href in CALDAV:no-uid-conflict | c. Changed DAV:resource to DAV:href in CALDAV:no-uid-conflict | |||
| element. | element. | |||
| skipping to change at page 104, line 5 ¶ | skipping to change at page 107, line 27 ¶ | |||
| range overlap. | range overlap. | |||
| r. Added more section references for XML element definitions. | r. Added more section references for XML element definitions. | |||
| s. Reworded limit-recurrence-set definition to try and make it clear | s. Reworded limit-recurrence-set definition to try and make it clear | |||
| that mast component is always returned, but only some overridden | that mast component is always returned, but only some overridden | |||
| one are returned. | one are returned. | |||
| t. Clarified dependence on UNICODE reference for caseless matching. | t. Clarified dependence on UNICODE reference for caseless matching. | |||
| C.5. Changes in -10 | C.6. Changes in -10 | |||
| a. Added new section about support for X- items when storing data. | a. Added new section about support for X- items when storing data. | |||
| b. Added new precondition to allow servers to reject queries on | b. Added new precondition to allow servers to reject queries on | |||
| unsupported X- items, and a new example. | unsupported X- items, and a new example. | |||
| c. Added new text about always supporting X- in calendar-data. | c. Added new text about always supporting X- in calendar-data. | |||
| d. Created new section for PUT, COPY and MOVE preconditions. | d. Created new section for PUT, COPY and MOVE preconditions. | |||
| skipping to change at page 104, line 35 ¶ | skipping to change at page 108, line 10 ¶ | |||
| names. | names. | |||
| i. Add constraint that free-busy-query can only be run on a | i. Add constraint that free-busy-query can only be run on a | |||
| collection. | collection. | |||
| j. Add preconditions for calendar-timezone property/elements in | j. Add preconditions for calendar-timezone property/elements in | |||
| MKCALENDAR, PROPPATCH and calendar-query REPORT. | MKCALENDAR, PROPPATCH and calendar-query REPORT. | |||
| k. Fix principal-match example. | k. Fix principal-match example. | |||
| C.6. Changes in -09 | C.7. Changes in -09 | |||
| a. Numerous editorial changes. | a. Numerous editorial changes. | |||
| b. Removed the CALDAV:is-defined XML element. | b. Removed the CALDAV:is-defined XML element. | |||
| c. Removed section on privilege aggregation. | c. Removed section on privilege aggregation. | |||
| d. Renamed the CALDAV:expand-recurrence-set XML element to CALDAV: | d. Renamed the CALDAV:expand-recurrence-set XML element to CALDAV: | |||
| expand and clarified the server behavior. | expand and clarified the server behavior. | |||
| skipping to change at page 106, line 25 ¶ | skipping to change at page 109, line 45 ¶ | |||
| calendar-timezone property for a given CALDAV:calendar-query | calendar-timezone property for a given CALDAV:calendar-query | |||
| REPORT request. | REPORT request. | |||
| y. Added text on the conversion of "floating date" and "floating | y. Added text on the conversion of "floating date" and "floating | |||
| time" values to date with UTC time values. | time" values to date with UTC time values. | |||
| z. Completed internationalization considerations section. | z. Completed internationalization considerations section. | |||
| aa. Completed security considerations section. | aa. Completed security considerations section. | |||
| C.7. Changes in -08 | C.8. Changes in -08 | |||
| a. Removed statement that said that client SHOULD always request | a. Removed statement that said that client SHOULD always request | |||
| DAV:getetag in calendar REPORTs. | DAV:getetag in calendar REPORTs. | |||
| b. Removed redefiniton of DAV:response. | b. Removed redefiniton of DAV:response. | |||
| c. Removed XML elements CALDAV:calendar-data-only. | c. Removed XML elements CALDAV:calendar-data-only. | |||
| d. Removed resource type CALDAV:calendar-home. | d. Removed resource type CALDAV:calendar-home. | |||
| skipping to change at page 107, line 17 ¶ | skipping to change at page 110, line 38 ¶ | |||
| l. Added example for limit-recurrence-set. | l. Added example for limit-recurrence-set. | |||
| m. Added example for expand-recurrence-set. | m. Added example for expand-recurrence-set. | |||
| n. Moved CALDAV:calendar-address-set in the calendar-schedule draft | n. Moved CALDAV:calendar-address-set in the calendar-schedule draft | |||
| and renamed it to CALDAV:calendar-user-address-set. | and renamed it to CALDAV:calendar-user-address-set. | |||
| o. Added guidelines on attachments and alarms. | o. Added guidelines on attachments and alarms. | |||
| C.8. Changes in -07 | C.9. Changes in -07 | |||
| a. Various editorial changes. | a. Various editorial changes. | |||
| b. Added properties calendar-restrictions and calendar-component- | b. Added properties calendar-restrictions and calendar-component- | |||
| restriction-set on calendar collections. | restriction-set on calendar collections. | |||
| c. Added properties calendar-home-URL and calendar-address-set on | c. Added properties calendar-home-URL and calendar-address-set on | |||
| principal resources. | principal resources. | |||
| d. Removed property calendar-URL on principal resources. | d. Removed property calendar-URL on principal resources. | |||
| skipping to change at page 107, line 49 ¶ | skipping to change at page 111, line 23 ¶ | |||
| i. Added comment about client not setting a duplicate displayname. | i. Added comment about client not setting a duplicate displayname. | |||
| j. Removed three CalDAV OPTIONS requests. | j. Removed three CalDAV OPTIONS requests. | |||
| k. Changed "authenticated user" to "user" in various places. | k. Changed "authenticated user" to "user" in various places. | |||
| l. Rewrote section on calendar object resource restrictions for | l. Rewrote section on calendar object resource restrictions for | |||
| better clarity. | better clarity. | |||
| C.9. Changes in -06 | C.10. Changes in -06 | |||
| a. Reworded section "Recurrence and the Data Model". | a. Reworded section "Recurrence and the Data Model". | |||
| b. Removed timezone collection feature. | b. Removed timezone collection feature. | |||
| c. Removed ability for a server to return the Location header on a | c. Removed ability for a server to return the Location header on a | |||
| successful PUT request. | successful PUT request. | |||
| d. Clarified restrictions on calendar object resources contained in | d. Clarified restrictions on calendar object resources contained in | |||
| calendar collections. | calendar collections. | |||
| e. Added preconditions on PUT in calendar collections. | e. Added preconditions on PUT in calendar collections. | |||
| f. Added informative "Guidelines" section, with information on | f. Added informative "Guidelines" section, with information on | |||
| locking and how to find calendar collections. | locking and how to find calendar collections. | |||
| g. Moved "Sychronization Operations" section in the "Guidelines" | g. Moved "Sychronization Operations" section in the "Guidelines" | |||
| section. | section. | |||
| C.10. Changes in -05 | C.11. Changes in -05 | |||
| a. Removed a lot of non-normative text. | a. Removed a lot of non-normative text. | |||
| b. Removed property promotion/demotion requirements. | b. Removed property promotion/demotion requirements. | |||
| c. Removed calendar-owner and cal-scale properties. | c. Removed calendar-owner and cal-scale properties. | |||
| d. Removed 'ical' prefix/text from element names. | d. Removed 'ical' prefix/text from element names. | |||
| e. Relaxed WebDAV Class 2 (locking) requirement to a MAY. | e. Relaxed WebDAV Class 2 (locking) requirement to a MAY. | |||
| skipping to change at page 109, line 12 ¶ | skipping to change at page 112, line 31 ¶ | |||
| m. Added description and examples of handling timezones. | m. Added description and examples of handling timezones. | |||
| n. Added mandatory "start" and "end" attributes to the CALDAV: | n. Added mandatory "start" and "end" attributes to the CALDAV: | |||
| expand-recurrence-set element. | expand-recurrence-set element. | |||
| o. Added three CalDAV OPTIONS requests. | o. Added three CalDAV OPTIONS requests. | |||
| p. Grouped XML Element declarations in a separate section. | p. Grouped XML Element declarations in a separate section. | |||
| C.11. Changes in -04 | C.12. Changes in -04 | |||
| a. Added a note about the HTTP Location response header. | a. Added a note about the HTTP Location response header. | |||
| b. Added report calendar-query. | b. Added report calendar-query. | |||
| c. Removed reports calendar-property-search and calendar-time-range. | c. Removed reports calendar-property-search and calendar-time-range. | |||
| d. Removed section on CalDAV and timezones. | d. Removed section on CalDAV and timezones. | |||
| e. Added requirement to return ETag on creation. | e. Added requirement to return ETag on creation. | |||
| f. Revised data model to remove sub-collections from calendar | f. Revised data model to remove sub-collections from calendar | |||
| collection. | collection. | |||
| g. Added informative references section. | g. Added informative references section. | |||
| h. Removed dependencies on DASL. | h. Removed dependencies on DASL. | |||
| C.12. Changes in -03 | C.13. Changes in -03 | |||
| a. Removed Calendar Containers (simplification that doesn't seem to | a. Removed Calendar Containers (simplification that doesn't seem to | |||
| remove much functionality) | remove much functionality) | |||
| b. Added MKCALENDAR to create calendars and all sub-collections | b. Added MKCALENDAR to create calendars and all sub-collections | |||
| c. Added cal-scale property to calendars | c. Added cal-scale property to calendars | |||
| C.13. Changes in -02 | C.14. Changes in -02 | |||
| Basically still adding major sections of content: | Basically still adding major sections of content: | |||
| a. Defined new field values to the OPTIONS "DAV:" response header | a. Defined new field values to the OPTIONS "DAV:" response header | |||
| b. Added new resource properties | b. Added new resource properties | |||
| c. Added new principal properties | c. Added new principal properties | |||
| d. Added new SCHEDULE method and related headers | d. Added new SCHEDULE method and related headers | |||
| skipping to change at page 110, line 4 ¶ | skipping to change at page 113, line 25 ¶ | |||
| Basically still adding major sections of content: | Basically still adding major sections of content: | |||
| a. Defined new field values to the OPTIONS "DAV:" response header | a. Defined new field values to the OPTIONS "DAV:" response header | |||
| b. Added new resource properties | b. Added new resource properties | |||
| c. Added new principal properties | c. Added new principal properties | |||
| d. Added new SCHEDULE method and related headers | d. Added new SCHEDULE method and related headers | |||
| e. Added new privileges for scheduling | e. Added new privileges for scheduling | |||
| C.14. Changes in -01 | C.15. Changes in -01 | |||
| a. Added section on privileges for calendaring, extending WebDAV ACL | a. Added section on privileges for calendaring, extending WebDAV ACL | |||
| privilege set | privilege set | |||
| b. Defined what to do with unrecognized properties in the bodies of | b. Defined what to do with unrecognized properties in the bodies of | |||
| iCalendar events, with respect to property promotion/demotion | iCalendar events, with respect to property promotion/demotion | |||
| Authors' Addresses | Authors' Addresses | |||
| Cyrus Daboo | Cyrus Daboo | |||
| End of changes. 102 change blocks. | ||||
| 209 lines changed or deleted | 319 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||