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

calendar


Click on the red underlined text to get to the source

... 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 ...
... working group as early as 1997 or 1998. Several companies have implemented calendar access protocols using HTTP to upload and download iCalendar ...
... 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 ...
... calendar data in WebDAV, with additional features to make an interoperable calendar access protocol. ...


... iCalendar [RFC2445] as a media type for the calendar object resource format; ...
... document; and o MUST advertise support on all calendar collections and calendar object resources for the calendaring reports in the DAV ...
... o MUST advertise support on all calendar collections and calendar object resources for the calendaring reports in the DAV:supported- ...


... data model. As a brief overview, a CalDAV calendar is modeled as a WebDAV collection with a defined structure; each calendar ...
... CalDAV calendar is modeled as a WebDAV collection with a defined structure; each calendar collection contains a number of resources representing calendar objects as its ...
... collection with a defined structure; each calendar collection contains a number of resources representing calendar objects as its direct child resource. Each resource representing a calendar object ...
... contains a number of resources representing calendar objects as its direct child resource. Each resource representing a calendar object (event, to-do, journal entry, or other calendar components) is called ...
... direct child resource. Each resource representing a calendar object (event, to-do, journal entry, or other calendar components) is called a "calendar object resource". Each calendar ...
... (event, to-do, journal entry, or other calendar components) is called a "calendar object resource". Each calendar object resource and each calendar ...
... calendar components) is called a "calendar object resource". Each calendar object resource and each calendar collection can be individually locked and have individual ...
... calendar object resource". Each calendar object resource and each calendar collection can be individually locked and have individual WebDAV properties. Requirements ...
... Calendar Server ...
... A WebDAV repository MAY include calendar data in some parts of its URL namespace ...
... within the root of the repository. That might mean that calendaring data is spread throughout the repository and mixed with non-calendar data in nearby collections (e.g., calendar data may be found in /home/lisa/calendars ...
... root of the repository. That might mean that calendaring data is spread throughout the repository and mixed with non-calendar data in nearby collections (e.g., calendar data may be found in /home/lisa/calendars/ as well as in /home/bernard/calendars ...
... calendar data in nearby collections (e.g., calendar data may be found in /home/lisa/calendars/ as well as in /home/bernard/calendars/, and non-calendar data ...
... calendar data may be found in /home/lisa/calendars/ as well as in /home/bernard/calendars/, and non-calendar data in /home/lisa/contacts/). Or, it might mean that ...
... calendars/ as well as in /home/bernard/calendars/, and non-calendar data in /home/lisa/contacts/). Or, it might mean that calendar data can be found only in certain sections of the repository ...
... non-calendar data in /home/lisa/contacts/). Or, it might mean that calendar data can be found only in certain sections of the repository (e.g., /calendar/). Calendaring features are only required in the ...
... calendar data can be found only in certain sections of the repository (e.g., /calendar/). Calendaring features are only required in the repository sections that are or contain calendar object resources. ...
... (e.g., /calendar/). Calendaring features are only required in the repository sections that are or contain calendar object resources. Therefore, a repository confining calendar data to the /calendar ...
... repository sections that are or contain calendar object resources. Therefore, a repository confining calendar data to the /calendar/ collection would only need to support the CalDAV ...
... calendar object resources. Therefore, a repository confining calendar data to the /calendar/ collection would only need to support the CalDAV required features ...
... CalDAV server or repository is the canonical location for calendar data and state information. Clients may submit requests to ...
... Clients may submit requests to change data or download data. Clients may store calendar objects offline and attempt to synchronize at a later time. However, clients ...
... offline and attempt to synchronize at a later time. However, clients MUST be prepared for calendar data on the server to change between the time of last synchronization and when attempting an update ...
... synchronization and when attempting an update, as calendar collections may be shared and accessible via multiple clients. Entity ...
... data model because it governs how many resources are expected to exist. This specification models a recurring calendar component and its recurrence exceptions as a single resource. In this model, recurrence rules, recurrence dates, exception rules, and exception dates are all part of the data in a ...
... single resource. In this model, recurrence rules, recurrence dates, exception rules, and exception dates are all part of the data in a single calendar object resource. This model avoids problems of limiting how many recurrence instances to store in the repository, how to keep recurrence instances in sync with the recurring calendar component ...
... calendar object resource. This model avoids problems of limiting how many recurrence instances to store in the repository, how to keep recurrence instances in sync with the recurring calendar component, and how to link recurrence exceptions with the recurring calendar component ...
... calendar component, and how to link recurrence exceptions with the recurring calendar component. It also results in less data to synchronize between client and server, and makes it easier to make changes to all ...
... recurrence instances or to a recurrence rule. It makes it easier to create a recurring calendar component and to delete all recurrence instances. ...
... Clients are not forced to retrieve information about all recurrence instances of a recurring component. The CALDAV:calendar-query and CALDAV ...
... query and CALDAV:calendar-multiget reports defined in this document allow clients to retrieve only recurrence instances that overlap a given ...


... Calendar Resources ...
... Calendar Object Resources ...
... Calendar object resources contained in calendar collections MUST NOT contain more than one type of calendar component ...
... Calendar object resources contained in calendar collections MUST NOT contain more than one type of calendar component (e.g., VEVENT ...
... Calendar object resources contained in calendar collections MUST NOT contain more than one type of calendar component (e.g., VEVENT, VTODO ...
... TZID parameter value specified in the iCalendar object. For instance, a calendar object resource can contain one VEVENT component and one VTIMEZONE ...
... VEVENT and VTODO components would have to be stored in separate calendar object resources in the same collection. Calendar ...
... calendar object resources in the same collection. Calendar object resources contained in calendar collections MUST NOT specify the iCalendar ...
... Calendar object resources contained in calendar collections MUST NOT specify the iCalendar METHOD ...
... The UID property value of the calendar components contained in a calendar object resource MUST be unique in the scope of the calendar ...
... UID property value of the calendar components contained in a calendar object resource MUST be unique in the scope of the calendar collection in which they are stored. ...
... calendar components contained in a calendar object resource MUST be unique in the scope of the calendar collection in which they are stored. ...
... collection in which they are stored. Calendar components in a calendar collection that have different UID ...
... Calendar components in a calendar collection that have different UID property values MUST be stored in separate calendar ...
... calendar collection that have different UID property values MUST be stored in separate calendar object resources. Calendar components ...
... calendar object resources. Calendar components with the same UID property value, in a given calendar ...
... Calendar components with the same UID property value, in a given calendar collection, MUST be contained in the same calendar object resource. This ensures that all components in a recurrence "set" are ...
... UID property value, in a given calendar collection, MUST be contained in the same calendar object resource. This ensures that all components in a recurrence "set" are contained in the same calendar ...
... calendar object resource. This ensures that all components in a recurrence "set" are contained in the same calendar object resource. It is possible for a calendar object resource to just contain components that represent ...
... contained in the same calendar object resource. It is possible for a calendar object resource to just contain components that represent "overridden" instances (ones that modify the behavior of a regular instance, and thus include a RECURRENCE-ID property) without also ...
... VEVENT component with the UID value "1@example.com" would be stored in its own calendar object resource. The two VEVENT components with the UID ...
... UID value "2@example.com", which represent a recurring event where one recurrence instance has been overridden, would be stored in the same calendar object resource. ...
... Calendar Collection ...
... A calendar collection contains calendar object resources that represent calendar components ...
... A calendar collection contains calendar object resources that represent calendar components within a calendar ...
... calendar collection contains calendar object resources that represent calendar components within a calendar. A calendar ...
... calendar object resources that represent calendar components within a calendar. A calendar collection is manifested to clients ...
... represent calendar components within a calendar. A calendar collection is manifested to clients as a WebDAV ...
... WebDAV resource collection identified by a URL. A calendar collection MUST report the DAV: collection and CALDAV ...
... DAV: collection and CALDAV:calendar XML elements in the value of the DAV: ...
... element type declaration for CALDAV: calendar is: <!ELEMENT ...
... <!ELEMENT calendar EMPTY> A calendar ...
... calendar EMPTY> A calendar collection can be created through provisioning (i.e., automatically created ...
... method can be useful for a user to create additional calendars (e.g., soccer schedule) or for users to share a calendar (e.g., team events ...
... create additional calendars (e.g., soccer schedule) or for users to share a calendar (e.g., team events or conference rooms). However, note that this document doesn't define the purpose of extra calendar ...
... calendar (e.g., team events or conference rooms). However, note that this document doesn't define the purpose of extra calendar collections. Users must rely on non-standard cues to find out what a calendar collection is for, or ...
... define the purpose of extra calendar collections. Users must rely on non-standard cues to find out what a calendar collection is for, or use the CALDAV:calendar ...
... calendar collection is for, or use the CALDAV:calendar-description property defined in Section 5.2.1 to provide such a cue. ...
... The following restrictions are applied to the resources within a calendar collection: a. Calendar ...
... calendar collection: a. Calendar collections MUST only contain calendar object resources and collections that are not calendar ...
... a. Calendar collections MUST only contain calendar object resources and collections that are not calendar collections, i.e., the only ...
... Calendar collections MUST only contain calendar object resources and collections that are not calendar collections, i.e., the only "top-level" non-collection resources allowed in a calendar ...
... calendar collections, i.e., the only "top-level" non-collection resources allowed in a calendar collection are calendar object resources. This ensures that ...
... top-level" non-collection resources allowed in a calendar collection are calendar object resources. This ensures that calendar clients ...
... collection are calendar object resources. This ensures that calendar clients do not have to deal with non-calendar data in a ...
... calendar clients do not have to deal with non-calendar data in a calendar collection, though they do have to distinguish between ...
... clients do not have to deal with non-calendar data in a calendar collection, though they do have to distinguish between calendar object resources and collections when using standard ...
... calendar collection, though they do have to distinguish between calendar object resources and collections when using standard WebDAV techniques to examine the contents of a collection. ...
... WebDAV techniques to examine the contents of a collection. b. Collections contained in calendar collections MUST NOT contain calendar collections at any depth, i.e., "nesting" of calendar ...
... b. Collections contained in calendar collections MUST NOT contain calendar collections at any depth, i.e., "nesting" of calendar collections within other calendar ...
... calendar collections MUST NOT contain calendar collections at any depth, i.e., "nesting" of calendar collections within other calendar collections at any depth is not ...
... calendar collections at any depth, i.e., "nesting" of calendar collections within other calendar collections at any depth is not allowed. This specification does not define how collections contained in a calendar ...
... calendar collections at any depth is not allowed. This specification does not define how collections contained in a calendar collection are used or how they relate to any calendar object resources contained in the calendar ...
... contained in a calendar collection are used or how they relate to any calendar object resources contained in the calendar collection. ...
... calendar collection are used or how they relate to any calendar object resources contained in the calendar collection. ...
... collection. Multiple calendar collections MAY be children of the same collection. ...


... Calendar Access Feature ...
... Calendar Access Support ...
... A server supporting the features described in this document MUST include "calendar-access" as a field in the DAV response header from ...
... DAV response header from an OPTIONS request on any resource that supports any calendar properties, reports, method, or privilege ...
... properties, reports, method, or privilege. A value of "calendar- access" in the DAV response header ...
... Example: Using OPTIONS for the Discovery of Calendar Access ...
... >> Request << OPTIONS /home/bernard/calendars/ HTTP/1.1 Host ...
... ACL DAV: 1, 2, access-control, calendar-access Date: Sat, 11 Nov 2006 09:32:12 GMT ...
... In this example, the OPTIONS method returns the value "calendar- access" in the DAV response header ...
... DAV response header to indicate that the collection "/home/bernard/calendars/" supports the properties, reports, method, or privilege ...
... Calendar Collection Properties ...
... This section defines properties for calendar collections. ...
... CALDAV:calendar-description Property ...
... Name: calendar-description Namespace ...
... Purpose: Provides a human-readable description of the calendar collection. ...
... collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MAY be protected and SHOULD NOT be returned by a PROPFIND ...
... Description: If present, the property contains a description of the calendar collection that is suitable for presentation to a user. If not present, the client should assume no description for the ...
... If not present, the client should assume no description for the calendar collection. Definition: ...
... <!ELEMENT calendar-description (#PCDATA)> PCDATA value: string ...
... Example: <C:calendar-description xml:lang="fr-CA" ...
... xmlns:C="urn:ietf:params:xml:ns:caldav" >Calendrier de Mathilde Desruisseaux</C:calendar-description> ...
... CALDAV:calendar-timezone Property ...
... Name: calendar-timezone Namespace ...
... caldav Purpose: Specifies a time zone on a calendar collection. Conformance: This property SHOULD be defined on all calendar ...
... calendar collection. Conformance: This property SHOULD be defined on all calendar collections. If defined, it SHOULD NOT be returned by a PROPFIND ...
... Description: The CALDAV:calendar-timezone property is used to specify the time zone the server should rely on to resolve "date" values and "date with local time" values (i.e., floating time) to ...
... "date with UTC time" values. The server will require this information to determine if a calendar component scheduled with "date" values or "date with local time" values overlaps a CALDAV: ...
... time-range specified in a CALDAV:calendar-query REPORT. The server will also require this information to compute the proper ...
... CALDAV:free-busy-query REPORT request that takes into account calendar components scheduled with "date" values or "date with local time" values. In the absence of this property, the server MAY rely on the time zone ...
... Note: The iCalendar data embedded within the CALDAV:calendar- timezone XML element MUST follow the standard XML character data ...
... <!ELEMENT calendar-timezone (#PCDATA)> PCDATA value: an iCalendar object with exactly one VTIMEZONE ...
... Example: <C:calendar-timezone xmlns:C="urn:ietf:params:xml:ns:caldav ...
... END:VCALENDAR </C:calendar-timezone> ...
... CALDAV:supported-calendar-component-set Property ...
... Name: supported-calendar-component-set Namespace ...
... caldav Purpose: Specifies the calendar component types (e.g., VEVENT, VTODO ...
... VEVENT, VTODO, etc.) that calendar object resources can contain in the calendar collection. ...
... VTODO, etc.) that calendar object resources can contain in the calendar collection. Conformance: This property MAY be defined on any calendar ...
... calendar collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be returned by a PROPFIND ...
... Description: The CALDAV:supported-calendar-component-set property is used to specify restrictions on the calendar component types that ...
... CALDAV:supported-calendar-component-set property is used to specify restrictions on the calendar component types that calendar object resources may contain in a calendar ...
... used to specify restrictions on the calendar component types that calendar object resources may contain in a calendar collection. Any attempt by the client ...
... calendar component types that calendar object resources may contain in a calendar collection. Any attempt by the client to store calendar ...
... calendar collection. Any attempt by the client to store calendar object resources with component types not listed in this property, if it exists, MUST result in an error, with the CALDAV ...
... component types not listed in this property, if it exists, MUST result in an error, with the CALDAV:supported-calendar-component precondition (Section 5.3.2.1) being violated. Since this property is protected, it cannot be changed by clients ...
... PROPPATCH request. However, clients can initialize the value of this property when creating a new calendar collection with MKCALENDAR. The empty-element ...
... tag <C:comp name="VTIMEZONE"/> MUST only be specified if support for calendar object resources that only contain VTIMEZONE components is provided or desired. Support ...
... VTIMEZONE components is provided or desired. Support for VTIMEZONE components in calendar object resources that contain VEVENT or VTODO ...
... <!ELEMENT supported-calendar-component-set (comp+)> Example: ...
... Example: <C:supported-calendar-component-set xmlns:C="urn:ietf:params:xml:ns:caldav ...
... <C:comp name="VTODO"/> </C:supported-calendar-component-set> ...
... CALDAV:supported-calendar-data Property ...
... Name: supported-calendar-data Namespace ...
... Purpose: Specifies what media types are allowed for calendar object resources in a calendar collection. ...
... media types are allowed for calendar object resources in a calendar collection. Conformance: This property MAY be defined on any calendar ...
... calendar collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be returned by a PROPFIND ...
... Description: The CALDAV:supported-calendar-data property is used to specify the media type supported for the calendar ...
... calendar-data property is used to specify the media type supported for the calendar object resources contained in a given calendar collection (e.g., iCalendar ...
... media type supported for the calendar object resources contained in a given calendar collection (e.g., iCalendar version 2.0). Any attempt by the client ...
... iCalendar version 2.0). Any attempt by the client to store calendar object resources with a media type ...
... media type not listed in this property MUST result in an error, with the CALDAV:supported-calendar-data precondition (Section 5.3.2.1) being violated. In the absence of this property, the server MUST only accept data with the media type ...
... precondition (Section 5.3.2.1) being violated. In the absence of this property, the server MUST only accept data with the media type "text/calendar" and iCalendar version 2.0, and clients ...
... <!ELEMENT supported-calendar-data (calendar-data+)> ...
... <!ELEMENT supported-calendar-data (calendar-data+)> Example: ...
... Example: <C:supported-calendar-data xmlns:C="urn:ietf:params:xml:ns:caldav ...
... xmlns:C="urn:ietf:params:xml:ns:caldav"> <C:calendar-data content-type="text/calendar" version ...
... <C:calendar-data content-type="text/calendar" version="2.0"/> </C:supported-calendar ...
... text/calendar" version="2.0"/> </C:supported-calendar-data> ...
... Purpose: Provides a numeric value indicating the maximum size of a resource in octets that the server is willing to accept when a calendar object resource is stored in a calendar collection. ...
... resource in octets that the server is willing to accept when a calendar object resource is stored in a calendar collection. Conformance: This property MAY be defined on any calendar ...
... calendar collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be returned by a PROPFIND ...
... CALDAV:max-resource-size is used to specify a numeric value that represents the maximum size in octets that the server is willing to accept when a calendar object resource is stored in a calendar collection. Any attempt to store a calendar ...
... server is willing to accept when a calendar object resource is stored in a calendar collection. Any attempt to store a calendar object resource exceeding this size MUST result in an error, with ...
... calendar object resource is stored in a calendar collection. Any attempt to store a calendar object resource exceeding this size MUST result in an error, with the CALDAV ...
... UTC) that the server is willing to accept for any DATE or DATE-TIME value in a calendar object resource stored in a calendar collection. ...
... DATE-TIME value in a calendar object resource stored in a calendar collection. ...
... collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be returned by a PROPFIND ...
... inclusive date that the server is willing to accept for any explicit DATE or DATE-TIME value in a calendar object resource stored in a calendar collection. Any attempt to store a calendar ...
... DATE-TIME value in a calendar object resource stored in a calendar collection. Any attempt to store a calendar object resource using a DATE or DATE-TIME value ...
... calendar object resource stored in a calendar collection. Any attempt to store a calendar object resource using a DATE or DATE-TIME value earlier than this ...
... In that case, the server MAY simply ignore those instances outside of the acceptable range when processing reports on the calendar object resource. In the absence of this property, the client can ...
... UTC) that the server is willing to accept for any DATE or DATE-TIME value in a calendar object resource stored in a calendar collection. ...
... DATE-TIME value in a calendar object resource stored in a calendar collection. ...
... collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be returned by a PROPFIND ...
... UTC that indicates the inclusive latest date that the server is willing to accept for any date or time value in a calendar object resource stored in a calendar collection. Any attempt to store a calendar ...
... latest date that the server is willing to accept for any date or time value in a calendar object resource stored in a calendar collection. Any attempt to store a calendar object resource using ...
... calendar object resource stored in a calendar collection. Any attempt to store a calendar object resource using a DATE or DATE-TIME value later than this value MUST result in an ...
... case, the server MAY simply ignore those instances outside of the acceptable range when processing reports on the calendar object resource. In the absence of this property, the client can assume ...
... Purpose: Provides a numeric value indicating the maximum number of recurrence instances that a calendar object resource stored in a calendar collection can generate. ...
... recurrence instances that a calendar object resource stored in a calendar collection can generate. Conformance: This property MAY be defined on any calendar ...
... calendar collection can generate. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be returned by a PROPFIND ...
... CALDAV:max-instances is used to specify a numeric value that indicates the maximum number of recurrence instances that a calendar object resource stored in a calendar collection can generate. Any attempt to store a calendar ...
... value that indicates the maximum number of recurrence instances that a calendar object resource stored in a calendar collection can generate. Any attempt to store a calendar object resource ...
... calendar object resource stored in a calendar collection can generate. Any attempt to store a calendar object resource with a recurrence pattern that generates more instances than this value MUST result in an error, with the CALDAV ...
... Purpose: Provides a numeric value indicating the maximum number of ATTENDEE properties in any instance of a calendar object resource stored in a calendar collection. ...
... ATTENDEE properties in any instance of a calendar object resource stored in a calendar collection. Conformance: This property MAY be defined on any calendar ...
... calendar collection. Conformance: This property MAY be defined on any calendar collection. If defined, it MUST be protected and SHOULD NOT be ...
... iCalendar ATTENDEE properties on any one instance of a calendar object resource stored in a calendar collection. Any attempt to ...
... ATTENDEE properties on any one instance of a calendar object resource stored in a calendar collection. Any attempt to store a calendar object resource with more ATTENDEE ...
... object resource stored in a calendar collection. Any attempt to store a calendar object resource with more ATTENDEE properties per instance than this value MUST result in an error, with the CALDAV ...
... that the server can handle any number of ATTENDEE properties in a calendar component. Definition: ...
... (CALDAV:valid-calendar-data): The time zone specified in CALDAV: calendar ...
... calendar-data): The time zone specified in CALDAV: calendar-timezone property MUST be a valid iCalendar object ...
... Calendar collections and calendar object resources may be created by ...
... Calendar collections and calendar object resources may be created by either a CalDAV ...
... data model that both clients and servers MUST adhere to when manipulating such calendar data. ...
... MKCALENDAR method creates a new calendar collection resource. A server MAY restrict calendar collection ...
... creates a new calendar collection resource. A server MAY restrict calendar collection creation to particular collections. ...
... Support for MKCALENDAR on the server is only RECOMMENDED and not REQUIRED because some calendar stores only support one calendar per user (or principal ...
... MKCALENDAR on the server is only RECOMMENDED and not REQUIRED because some calendar stores only support one calendar per user (or principal), and those are typically pre-created ...
... MKCALENDAR whenever possible to allow users to create multiple calendar collections to help organize their data better. Clients ...
... DAV:displayname property for a human-readable name of the calendar. Clients can either specify the value of the DAV ...
... Clients SHOULD NOT set the DAV: displayname property to be the same as any other calendar collection at the same URI "level". When displaying calendar ...
... calendar collection at the same URI "level". When displaying calendar collections to users, clients SHOULD check the DAV ...
... clients SHOULD check the DAV:displayname property and use that value as the name of the calendar. In the event that the DAV: displayname property is empty, the client ...
... displayname property is empty, the client MAY use the last part of the calendar collection URI as the name; however, that path segment ...
... (CALDAV:calendar-collection-location-ok): The Request-URI MUST identify a location where a calendar ...
... calendar-collection-location-ok): The Request-URI MUST identify a location where a calendar collection can be created; ...
... (CALDAV:valid-calendar-data): The time zone specified in the CALDAV:calendar ...
... calendar-data): The time zone specified in the CALDAV:calendar-timezone property MUST be a valid iCalendar object ...
... (CALDAV:initialize-calendar-collection): A new calendar collection exists at the Request-URI ...
... (CALDAV:initialize-calendar-collection): A new calendar collection exists at the Request-URI. The DAV ...
... exists at the Request-URI. The DAV:resourcetype of the calendar collection MUST contain both DAV:collection and CALDAV ...
... collection MUST contain both DAV:collection and CALDAV:calendar XML elements. ...
... 201 (Created) - The calendar collection resource was created in its entirety; ...
... its entirety; 207 (Multi-Status) - The calendar collection resource was not created since one or more DAV ...
... 403 (Forbidden) - This indicates at least one of two conditions: 1) the server does not allow the creation of calendar collections at the given location in its namespace, or 2) the parent ...
... This example creates a calendar collection called /home/lisa/ calendars/events/ on the server cal.example.com with specific values ...
... creates a calendar collection called /home/lisa/ calendars/events/ on the server cal.example.com with specific values for the properties DAV:displayname, CALDAV ...
... for the properties DAV:displayname, CALDAV:calendar-description, CALDAV:supported-calendar ...
... calendar-description, CALDAV:supported-calendar-component-set, and CALDAV:calendar- ...
... CALDAV:supported-calendar-component-set, and CALDAV:calendar- timezone. ...
... MKCALENDAR /home/lisa/calendars/events/ HTTP/1.1 Host ...
... <D:prop> <D:displayname>Lisa's Events</D:displayname> <C:calendar-description xml:lang="en" >Calendar ...
... calendar-description xml:lang="en" >Calendar restricted to events.</C:calendar-description> <C:supported-calendar ...
... xml:lang="en" >Calendar restricted to events.</C:calendar-description> <C:supported-calendar-component-set> ...
... Calendar restricted to events.</C:calendar-description> <C:supported-calendar-component-set> <C:comp name="VEVENT"/> ...
... <C:comp name="VEVENT"/> </C:supported-calendar-component-set> <C:calendar-timezone><![CDATA[BEGIN:VCALENDAR ...
... </C:supported-calendar-component-set> <C:calendar-timezone><![CDATA[BEGIN:VCALENDAR PRODID:-//Example Corp.//CalDAV ...
... VTIMEZONE END:VCALENDAR]]></C:calendar-timezone> </D:prop> </D:set> ...
... Creating Calendar Object Resources ...
... Clients populate calendar collections with calendar object resources. The URL ...
... Clients populate calendar collections with calendar object resources. The URL for each calendar ...
... calendar object resources. The URL for each calendar object resource is entirely arbitrary and does not need to bear a specific relationship to the calendar object ...
... URL for each calendar object resource is entirely arbitrary and does not need to bear a specific relationship to the calendar object resource's iCalendar properties or other metadata. New calendar ...
... calendar object resource's iCalendar properties or other metadata. New calendar object resources MUST be created with a PUT request targeted at an ...
... URI. A PUT request targeted at a mapped URI updates an existing calendar object resource. When servers create ...
... >> Request << PUT /home/lisa/calendars/events/qwue23489.ics HTTP/1.1 If-None-Match: * ...
... Host: cal.example.com Content-Type: text/calendar Content-Length: xxxx ...
... As indicated in Section 3.10 of [RFC2445], the URL of calendar object resources containing (an arbitrary set of) calendaring and scheduling information may be suffixed by ".ics", and the URL ...
... resources containing (an arbitrary set of) calendaring and scheduling information may be suffixed by ".ics", and the URL of calendar object resources containing free or busy time information may be suffixed by ...
... and MOVE methods. These preconditions apply when a PUT operation of a calendar object resource into a calendar collection occurs, or when a COPY or MOVE operation of a calendar ...
... methods. These preconditions apply when a PUT operation of a calendar object resource into a calendar collection occurs, or when a COPY or MOVE operation of a calendar object resource into a ...
... calendar object resource into a calendar collection occurs, or when a COPY or MOVE operation of a calendar object resource into a calendar collection occurs, or when a COPY or MOVE operation occurs ...
... a COPY or MOVE operation of a calendar object resource into a calendar collection occurs, or when a COPY or MOVE operation occurs on a calendar collection. ...
... calendar collection occurs, or when a COPY or MOVE operation occurs on a calendar collection. The new preconditions are: ...
... (CALDAV:supported-calendar-data): The resource submitted in the PUT request, or targeted by a COPY or MOVE request, MUST be a supported media type ...
... supported media type (i.e., iCalendar) for calendar object resources; ...
... (CALDAV:valid-calendar-data): The resource submitted in the PUT request, or targeted by a COPY or MOVE request, MUST be valid data ...
... (CALDAV:valid-calendar-object-resource): The resource submitted in the PUT request, or targeted by a COPY or MOVE request, MUST obey all restrictions specified in Section 4.1 (e.g., calendar ...
... calendar-object-resource): The resource submitted in the PUT request, or targeted by a COPY or MOVE request, MUST obey all restrictions specified in Section 4.1 (e.g., calendar object resources MUST NOT contain more than one type of calendar component, calendar ...
... all restrictions specified in Section 4.1 (e.g., calendar object resources MUST NOT contain more than one type of calendar component, calendar object resources MUST NOT specify the iCalendar ...
... calendar object resources MUST NOT contain more than one type of calendar component, calendar object resources MUST NOT specify the iCalendar METHOD ...
... (CALDAV:supported-calendar-component): The resource submitted in the PUT request, or targeted by a COPY or MOVE request, MUST contain a type of calendar component ...
... calendar-component): The resource submitted in the PUT request, or targeted by a COPY or MOVE request, MUST contain a type of calendar component that is supported in the targeted calendar collection; ...
... contain a type of calendar component that is supported in the targeted calendar collection; (CALDAV ...
... iCalendar UID property value already in use in the targeted calendar collection or overwrite an existing calendar object resource with one that has a different UID ...
... UID property value already in use in the targeted calendar collection or overwrite an existing calendar object resource with one that has a different UID property value. ...
... (CALDAV:calendar-collection-location-ok): In a COPY or MOVE request, when the Request-URI is a calendar ...
... calendar-collection-location-ok): In a COPY or MOVE request, when the Request-URI is a calendar collection, the Destination-URI ...
... Destination-URI MUST identify a location where a calendar collection can be created; ...
... size less than or equal to the value of the CALDAV:max-resource- size property value (Section 5.2.5) on the calendar collection where the resource will be stored; ...
... instance) greater than or equal to the value of the CALDAV:min- date-time property value (Section 5.2.6) on the calendar collection where the resource will be stored; ...
... instance) less than the value of the CALDAV:max-date-time property value (Section 5.2.7) on the calendar collection where the resource will be stored; ...
... recurring instances less than or equal to the value of the CALDAV: max-instances property value (Section 5.2.8) on the calendar collection where the resource will be stored; ...
... equal to the value of the CALDAV:max-attendees-per-instance property value (Section 5.2.9) on the calendar collection where the resource will be stored; ...
... Servers MUST support the use of non-standard components, properties, and parameters in calendar object resources stored via the PUT method. ...
... Calendar Object Resource Entity Tag ...
... entity tag on all calendar object resources. A response to a GET request targeted at a calendar ...
... calendar object resources. A response to a GET request targeted at a calendar object resource MUST contain an ETag response header field indicating the current ...
... value of the strong entity tag of the calendar object resource. Servers SHOULD return a strong entity ...
... tag (ETag header) in a PUT response when the stored calendar object resource is equivalent by octet equality to the calendar object resource submitted in the body ...
... response when the stored calendar object resource is equivalent by octet equality to the calendar object resource submitted in the body of the PUT request. This allows clients to reliably use the returned ...
... the client can do a PROPFIND request on the stored calendar object resource and have the DAV:getetag property returned, and compare that ...
... entity tag it recei