RFC 4791:Calendaring Extensions to WebDAV (CalDAV)
RFC-Ref

1. Introduction


   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
   discussed in the IETF CALSCH working group as early as 1997 or 1998.
   Several companies have implemented calendar access protocols using
   HTTP to upload and download iCalendar [RFC2445] objects, and using
   WebDAV to get listings of resources.  However, those implementations
   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
   as how to implement required features that aren't already part of
   WebDAV.  This document proposes a way to model calendar data in
   WebDAV, with additional features to make an interoperable calendar
   access protocol.


1.1. Notational Conventions


   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

   The term "protected" is used in the Conformance field of property
   definitions as defined in Section 1.4.2 of [RFC3253].

   When XML element types in the namespaces "DAV:" and
   "urn:ietf:params:xml:ns:caldav" are referenced in this document
   outside of the context of an XML fragment, the string "DAV:" and
   "CALDAV:" will be prefixed to the element type names, respectively.


1.2. XML Namespaces and Processing


   Definitions of XML elements in this document use XML element type
   declarations (as found in XML Document Type Declarations), described
   in Section 3.2 of [W3C.REC-xml-20060816].

   The namespace "urn:ietf:params:xml:ns:caldav" is reserved for the XML
   elements defined in this specification, its revisions, and related
   CalDAV specifications.  XML elements defined by individual
   implementations MUST NOT use the "urn:ietf:params:xml:ns:caldav"
   namespace, and instead should use a namespace that they control.

   The XML declarations used in this document do not include namespace
   information.  Thus, implementers must not use these declarations as
   the only way to create valid CalDAV properties or to validate CalDAV
   XML element types.  Some of the declarations refer to XML elements
   defined by WebDAV [RFC2518], which use the "DAV:" namespace.
   Wherever such XML elements appear, they are explicitly prefixed with
   "DAV:" to avoid confusion.

   Also note that some CalDAV XML element names are identical to WebDAV
   XML element names, though their namespace differs.  Care must be
   taken not to confuse the two sets of names.

   Processing of XML by CalDAV clients and servers MUST follow the rules
   described in [RFC2518]; in particular, Section 14, and Appendix 3 of
   that specification.


1.3. Method Preconditions and Postconditions


   A "precondition" of a method describes the state of the server that
   must be true for that method to be performed.  A "postcondition" of a
   method describes the state of the server that must be true after that
   method has been completed.  If a method precondition or postcondition
   for a request is not satisfied, the response status of the request
   MUST either be 403 (Forbidden), if the request should not be repeated
   because it will always fail, or 409 (Conflict), if it is expected
   that the user might be able to resolve the conflict and resubmit the
   request.

   In order to allow better client handling of 403 and 409 responses, a
   distinct XML element type is associated with each method precondition
   and postcondition of a request.  When a particular precondition is
   not satisfied or a particular postcondition cannot be achieved, the
   appropriate XML element MUST be returned as the child of a top-level
   DAV:error element in the response body, unless otherwise negotiated
   by the request.



Google
Web
RFC-Ref