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.
...
... 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 ...
... 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 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 ...
... 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 ...
...
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.
...
...
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:
...
... xmlns:C="urn:ietf:params:xml:ns:caldav"
>Calendrier de Mathilde Desruisseaux</C:calendar-description>
...
... 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 ...
... END:VCALENDAR
</C:calendar-timezone>
...
... 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 ...
...
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 ...
... xmlns:C="urn:ietf:params:xml:ns:caldav">
<C:calendar-data content-type="text/calendar" version ...
... 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.
...
... 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.
...
... 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:
...
... calendar-data): The time zone specified in CALDAV:
calendar-timezone property MUST be a valid iCalendar object
...
... 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;
...
... 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 ...
... 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 ...
... <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 ...
... Creating Calendar Object Resources ...
... 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 ...
... 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 ...
... (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 ...
... 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.
...
... 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
...
