<?xml version="1.0" encoding="UTF-8"?>
<metanorma xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="2.8.5" schema-version="v2.1.5" flavor="cc">
<bibdata type="standard">
<title language="en" type="main">CalWS-Rest - Restful Web Services Protocol for Calendaring</title>
<docidentifier primary="true" type="CalConnect">CC/R 1011:2012</docidentifier><docnumber>1011</docnumber><date type="published"><on>2012-02-22</on></date><contributor><role type="author"/><organization>
<name>CalConnect</name>
</organization></contributor><contributor><role type="editor"/><person>
<name><completename>Michael Douglass</completename></name>
<affiliation><organization>
<name>Rensselaer Polytechnic Institute</name>
</organization></affiliation><email>douglm@rpi.edu</email></person></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>CalConnect</name>
<subdivision type="Technical committee">
<name>XML</name>
</subdivision></organization></contributor><contributor><role type="publisher"/><organization>
<name>CalConnect</name>
</organization></contributor><edition>1.0.1</edition><version><revision-date>2012-02-22</revision-date></version><language>en</language><script>Latn</script><abstract><p>This document describes a RESTful web service for calendar access and update.</p>
</abstract><status><stage>draft</stage></status><copyright><from>2012</from><owner><organization>
<name>CalConnect</name>
</organization></owner></copyright><relation type="updatedBy"><bibitem schema-version="v1.5.6">
  <docidentifier type="CalConnect">CC/R 1011:2012</docidentifier>
  <date type="published">
    <on>2011-03-19</on>
  </date>
  <contributor>
    <person>
      <name>          <completename>Toby Considine</completename>       </name>
    </person>
  </contributor>
  <edition>0.1</edition>
<amend change="modify"><description><p id="_4a60636e-2253-104f-ba8c-1beea85eeed3">ws-calendar-wd19 — Originally contributed by Mike Douglass as part of WS-Calendar v1.0 Specification. See full history in that document.</p>
</description></amend></bibitem></relation><relation type="updatedBy"><bibitem schema-version="v1.5.6">
  <docidentifier type="CalConnect">CC/R 1011:2012</docidentifier>
  <date type="updated">
    <on>2012-02-13</on>
  </date>
  <contributor>
    <person>
      <name>          <completename>Toby Considine</completename>       </name>
    </person>
  </contributor>
  <edition>0.2</edition>
<amend change="modify"><description><p id="_312aa918-59f1-cf43-8967-749b6d55b0b1">Ported to separate document. “Promoted” all section headers.</p>
</description></amend></bibitem></relation><relation type="updatedBy"><bibitem schema-version="v1.5.6">
  <docidentifier type="CalConnect">CC/R 1011:2012</docidentifier>
  <date type="updated">
    <on>2012-02-15</on>
  </date>
  <contributor>
    <person>
      <name>          <completename>Toby Considine</completename>       </name>
    </person>
  </contributor>
  <edition>0.3</edition>
<amend change="modify"><description><p id="_1dc5233f-d195-e3b2-4f38-a6572cf798a4">Added Intro, updated namespaces to meet OASIS standard</p>
</description></amend></bibitem></relation><relation type="updatedBy"><bibitem schema-version="v1.5.6">
  <docidentifier type="CalConnect">CC/R 1011:2012</docidentifier>
  <date type="updated">
    <on>2012-02-17</on>
  </date>
  <contributor>
    <person>
      <name>          <completename>Toby Considine</completename>       </name>
    </person>
  </contributor>
  <edition>0.4</edition>
<amend change="modify"><description><p id="_ae99dfa5-e27e-e307-ac35-7980a5355470">Additional namespace clean-up in response to Cover comments.</p>

<p id="_817f2bc5-cc8f-94e5-5850-e71038a2b085">Consistent capitalization of calWS when used as a namespace identifier</p>

<p id="_e3fd5239-0c04-8ad0-0dc9-6c1cff01dc95">Clean-up of CalWS discussion in appendix</p>
</description></amend></bibitem></relation><relation type="updatedBy"><bibitem schema-version="v1.5.6">
  <docidentifier type="CalConnect">CC/R 1011:2012</docidentifier>
  <date type="updated">
    <on>2012-02-17</on>
  </date>
  <contributor>
    <person>
      <name>          <completename>Toby Considine</completename>       </name>
    </person>
  </contributor>
  <edition>0.5</edition>
<amend change="modify"><description><p id="_de8f1d04-212b-a57e-8c62-6fba990002c9">Types, capitalization, missing XRD reference</p>
</description></amend></bibitem></relation><ext><doctype abbreviation="R">report</doctype><flavor>cc</flavor></ext></bibdata><metanorma-extension><semantic-metadata><stage-published>false</stage-published></semantic-metadata>
<clause id="_e6b5f4bb-bad0-e14f-461b-b79e29e951cf" obligation="normative">
<title id="_590c01ce-1222-d27a-9f50-f66ad3f8ecaa">document history</title>
<sourcecode id="_c72ed5bd-15b3-cc3c-6bd5-5bc1b4b1b83c" lang="yaml"><body>- date:
  - type: published
    value:  2011-03-19
  edition: 0.1
  contributor:
  - person:
      name:
        completename: Toby Considine
  amend:
    - description: ws-calendar-wd19 -- Originally contributed by Mike Douglass as part of WS-Calendar v1.0 Specification. See full history in that document.
- date:
  - type: updated
    value:  2012-02-13
  edition: 0.2
  contributor:
  - person:
      name:
        completename: Toby Considine
  amend:
    - description: Ported to separate document. "Promoted" all section headers.
- date:
  - type: updated
    value:  2012-02-15
  edition: 0.3
  contributor:
  - person:
      name:
        completename: Toby Considine
  amend:
    - description: Added Intro, updated namespaces to meet OASIS standard
- date:
  - type: updated
    value:  2012-02-17
  edition: 0.4
  contributor:
  - person:
      name:
        completename: Toby Considine
  amend:
    - description: |
        Additional namespace clean-up in response to Cover comments.

        Consistent capitalization of calWS when used as a namespace identifier

        Clean-up of CalWS discussion in appendix
- date:
  - type: updated
    value:  2012-02-17
  edition: 0.5
  contributor:
  - person:
      name:
        completename: Toby Considine
  amend:
    - description: Types, capitalization, missing XRD reference</body></sourcecode>

</clause>
<presentation-metadata><toc-heading-levels>2</toc-heading-levels><html-toc-heading-levels>2</html-toc-heading-levels><doc-toc-heading-levels>2</doc-toc-heading-levels><pdf-toc-heading-levels>2</pdf-toc-heading-levels></presentation-metadata></metanorma-extension>
<boilerplate><copyright-statement>

<clause id="_c71e5b63-6ef7-2811-f801-8d2526bd089b" obligation="normative"><p id="_7669dbe9-3d38-be34-4f26-83d226329e2b">© 2012 The Calendaring and Scheduling Consortium, Inc.</p>
</clause>
</copyright-statement>

<license-statement>

<clause id="_c4364fd8-2f9b-8fdb-cf27-c7a37bb0b74a" obligation="normative">
<title id="_5ad8fb30-fcae-1072-87a2-407e6b4939ec">Warning for Drafts</title>
<p id="_0426ba5a-69d0-b41e-5aa5-7bdbfb2f6938">This document is not a CalConnect Standard. It is distributed for review and         comment, and is subject to change without notice and may not be referred to as         a Standard. Recipients of this draft are invited to submit, with their         comments, notification of any relevant patent rights of which they are aware         and to provide supporting documentation.</p>
</clause>
</license-statement>

<legal-statement>

<clause id="_30bb02f9-a03f-937c-b3bb-0058ec7c185d" obligation="normative"><p id="_4997ac1f-fe23-c399-660a-4ca594a6abda">All rights reserved. Unless otherwise specified, no part of this         publication may be reproduced or utilized otherwise in any form or by any         means, electronic or mechanical, including photocopying, or posting on the         internet or an intranet, without prior written permission. Permission can         be requested from the address below.</p>
</clause>
</legal-statement>

<feedback-statement>

<clause id="_525641bf-9235-cdcb-5b80-9232a01ea9cc" obligation="normative"><p id="_9c7e0878-01cd-c6a2-8060-5caf3135b547" anchor="boilerplate-name">The Calendaring and Scheduling Consortium, Inc.</p>

<p id="_851786db-d5f1-a086-bdb1-3bd48dc4f17c" anchor="boilerplate-address">4390 Chaffin Lane<br/> McKinleyville<br/> California 95519<br/> United States of America<br/> <br/> <link target="mailto:copyright@calconnect.org"/><br/> <link target="https://www.calconnect.org">www.calconnect.org</link></p>
</clause>
</feedback-statement>
</boilerplate><preface><abstract id="_373895b8-3119-f160-6c98-c881503c3f88"><title id="_37c298bf-5619-a5c6-817b-d777b5ead0b1">Abstract</title><p id="_307b3f98-6420-3711-244c-6fb296d0479c">This document describes a RESTful web service for calendar access and update.</p>
</abstract><foreword id="_26b57094-4f5d-793b-910e-d8588948f75f" obligation="informative">
<title id="_41c9fad3-d4c1-eecc-4fad-f91704acc026">Foreword</title>
<p id="_019b8700-192e-a4a6-28dc-b4f24b9c03bf">This document was editorially updated to ensure synchronization with the OASIS WS-Calendar publication of CalWS-SOAP as V1.0 for public review and contains the same content.</p>

<p id="_0df9df6d-3caf-2c4c-9020-4d51de18f9cc">This document is copyright ©2012 by The Calendaring and Scheduling Consortium and is licensed under the Creative Commons 3.0 Unported License:</p>

<p id="_d4ff059f-c564-a164-c75d-3fd9297dde30"><link target="http://creativecommons.org/licenses/by/3.0/"/>.</p>

<dl id="_9bd4a29f-f030-f5de-e181-6f188eff398a"><dt>Chair(s)</dt>
<dd id="_bcfe9a85-cc7a-4b96-fa95-ba1632b64441"><p id="_b3b71e2e-5e6c-ef83-b5ee-821ad5010ce5">Michael Douglass</p>
</dd>
<dt>Related work</dt>
<dd id="_c1b2568d-809d-cc8d-2f87-e165b1d96729"><p id="_66428a9c-e099-e8bb-b47f-6be111eff6f7">This specification is related to:</p>

<ul id="_8b5737bf-cdb6-d42d-6cc0-6421caec808f"><li><p id="_3e7382b2-d66f-5432-fb44-25efb636d57d"><em>WS-Calendar Version 1.0</em>. Latest version.<br/> <link target="http://docs.oasis-open.org/ws-calendar/ws-calendar/v1.0/ws-calendar-1.0-spec.html"/></p>
</li>
</ul>
</dd>
</dl>
</foreword><introduction id="_d92165b9-c432-b4d8-c2a0-9ec271725020" obligation="informative">
<title id="_2b2e98d1-114a-3da4-8556-01ae0a724280">Introduction</title>
<p id="_7307e820-3930-ff77-6fab-ed4e699180c6">The CalWS REST protocol is built upon and makes the same assumptions about structure as the CalDAV protocol defined in  <eref type="inline" bibitemid="rfc4791" citeas="IETF RFC 4791"/> and related specifications. It does NOT require nor assume the WebDAV nor CalDAV protocol.</p>

<p id="_7696cb31-20fc-faba-5065-31a5273b8254">Calendar resources, for example events and tasks are stored as named resources (files) inside special collections (folders) known as “<strong>Calendar Collections</strong>”.</p>

<p id="_25416597-5fa5-cfa1-518a-6fca0b1b706a">This specification can be looked upon as a layer built on top of CalDAV and defines the basic operations which allow creation, retrieval, update and deletion. In addition, query and  <tt>freebusy</tt> operations are defined to allow efficient, partial retrieval of calendar data.</p>

<p id="_c42dfd0e-a468-f72e-e877-f43fccf77964">This does not mean that a CalWS service must be built on CalDAV, merely that a degree of conformity is established such that services built in that manner do not have a significant mismatch. It is assumed that some CalWS REST services will be built without any CalDAV support.</p>

<clause id="_788eb076-1d15-816e-0e24-6dfa0a1cd775" obligation="informative">
<title id="_2c403cba-dc5d-aa23-9adf-98a8217ccbb0">Terminology</title>
<p id="_94de3a42-0155-d4b5-adf2-f032cdb097bc">The keywords “<tt>MUST</tt>”, “<tt>MUST NOT</tt>”, “<tt>REQUIRED</tt>”, “<tt>SHALL</tt>”, “<tt>SHALL NOT</tt>”, “<tt>SHOULD</tt>”, “<tt>SHOULD NOT</tt>”, “<tt>RECOMMENDED</tt>”, “<tt>MAY</tt>”, and “<tt>OPTIONAL</tt>” in this document are to be interpreted as described in  <eref type="inline" bibitemid="rfc2119" citeas="IETF RFC 2119"/>.</p>
</clause>

<clause id="_20c7b0e5-04f4-842d-1c3e-ad0e7e7dfae3" obligation="informative">
<title id="_3a15c433-c61c-a213-cf33-efc28d9c517b">Namespace</title>
<p id="_b636eb25-af5a-ed4b-6ace-8b7695ab1cf5">XML namespaces and prefixes used in this standard:</p>

<table id="_5b45f5d4-4057-d86a-015d-0aba7111d7c4">
<name id="_60be5168-3891-2c53-1701-c309cbb54fb9">XML Namespaces in this standard</name>
<tbody><tr id="_940c3718-cc18-32b9-8fe0-5ab7b31669ad"><td id="_170d40ac-4b45-0b36-f1fc-e0b8cbd307f7" valign="top" align="left">Prefix</td>
<td id="_6734cf02-371a-2676-5846-de1ff399725a" valign="top" align="left">Namespace</td>
</tr><tr id="_3cccc4ae-8740-9ff3-dd2d-b83c4cddce74"><td id="_102adb43-2d6c-b19d-8426-6f248b449229" valign="top" align="left">xcal</td>
<td id="_6dcc5341-9ee9-df2a-3253-ecb69a094424" valign="top" align="left">urn:ietf:params:xml:ns:icalendar-2.0</td>
</tr><tr id="_b7ff8041-94aa-7c33-6207-53b526033c9d"><td id="_97c4363c-2457-ea86-19e4-1b425e21f452" valign="top" align="left">calWS</td>
<td id="_cf162b8d-40a6-45f1-09b8-3af51dc039b3" valign="top" align="left"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST"/></td>
</tr><tr id="_db54e52c-9660-f92b-8e33-072e8465e5b4"><td id="_eea39669-b9d3-a385-5405-62069d9d9af4" valign="top" align="left">xrd</td>
<td id="_f1e51d5f-14db-38c7-31aa-b0d945b83550" valign="top" align="left"><link target="http://docs.oasis-open.org/ns/xri/xrd-1.0"/></td>
</tr></tbody>
</table>
</clause>
</introduction></preface><sections>





<clause id="_6b3ae4b7-f0b9-4ead-7d19-873ab87e27b9" obligation="normative">
<title id="_cf50923e-66d9-d978-4c2b-a6ae77a2508a">Calendar Services</title>
<p id="_a67a25e7-fa0a-88bd-c8d6-b3d2f5b44cad">The Service interactions are built upon and make the same assumptions about structure as the CalDAV protocol defined in  <eref type="inline" bibitemid="rfc4791" citeas="IETF RFC 4791"/> and related specifications. It does NOT require nor assume the WebDAV nor CalDAV protocol but does make use of some of the same elements and structures in the CalDAV XML namespace.</p>

<p id="_ac85fa15-2d35-547c-684f-34df8469657d">Calendar resources, for example events and tasks are stored as named resources (files) inside special collections (folders) known as “<strong>Calendar Collections</strong>”.</p>

<p id="_f6b2f7a5-1d86-9914-ba5b-609ca2987501">These services can be looked upon as a layer built on top of CalDAV and defines the basic operations which allow creation, retrieval, update and deletion. In addition, query, and free-busy operations are defined to allow efficient, partial retrieval of calendar data.</p>

<p id="_1b2144c3-8b2f-b379-aaf0-6777870610cb">These services assume a degree of conformity with CalDAV is established such that services built in that manner do not have a significant mismatch. It is assumed that some WS-Calendar services will be built without any CalDAV support.</p>

<clause id="_c25093ae-6364-9dd2-7719-b340192450f3" obligation="normative">
<title id="_56366124-5278-70c3-20cb-399890027b8f">Overview of the protocol</title>
<p id="_cbb52de6-01be-fb13-86b8-949f802fad5d">The protocol is an HTTP based RESTfull protocol using a limited set of methods. Each request may be followed by a response containing status information. The following methods are specified in the protocol description,  <tt>PUT</tt>, <tt>POST</tt>, <tt>GET</tt>, <tt>DELETE</tt>. To avoid various issues with certain methods being blocked clients may use the  <tt>X-HTTP-Method-Override:</tt> header to specify the intended operation. Servers  <tt>SHOULD</tt> behave as if the named method was used.</p>

<sourcecode id="_12c2ba48-b187-b2f8-6852-93b53542f77e" unnumbered="true"><body>POST /user/fred/calendar/ HTTP/1.1
...
X-HTTP-Method-Override: PUT
Properties</body></sourcecode>


<p id="_39ade816-099f-e942-f8f7-dde3360b4e19">A service or resource will have a number of properties which describe the current state of that service or resource. These properties are accessed through a  <tt>GET</tt> on the target resource or service with an <tt>ACCEPT</tt> header specifying <tt>application/xrd+xml</tt>. See <xref target="sec-2.1.3.6"/>.</p>

<p id="_1830ad37-3e64-c1f5-8692-d04352f080a1">The following operations are defined by this specification:</p>

<ul id="_e706314d-fd66-640b-b03e-706a310a4085"><li><p id="_13593346-3fb8-ce7c-0719-a6b6f4167d0b">Retrieval and update of service and resource properties</p>
</li>
<li><p id="_5524dbb3-2ae8-650b-9011-c079b63b6b21">Creation of a calendar object</p>
</li>
<li><p id="_f53766f3-4ffb-9a91-1ab0-27413f8e0320">Retrieval of a calendar object</p>
</li>
<li><p id="_6ac6eaa1-e7ac-7e52-6c1b-faa20fa97aaa">Update of a calendar object</p>
</li>
<li><p id="_b22b0e4a-d911-5145-0769-c4b71b67d9b1">Deletion of a calendar object</p>
</li>
<li><p id="_4e7b8099-4e85-a64e-bbfa-ea28ba242cd6">Query</p>
</li>
<li><p id="_e5028abd-8c87-97e8-5df8-5f72176215ef">Free-busy query</p>
</li>
</ul>

<clause id="_f419e1b6-3fa5-81b5-2b19-b89b1369e498" obligation="normative">
<title id="_65c4bb35-323b-6a7f-8c26-299d048c8a4b">Calendar Object Resources</title>
<p id="_26a9fa9e-b14a-4a15-16e6-6ee53e0aa3d7">The same restrictions apply to Calendar Object Resources as specified in CalDAV <eref type="inline" bibitemid="rfc4791" citeas="IETF RFC 4791"><localityStack><locality type="section"><referenceFrom>4.2</referenceFrom></locality></localityStack></eref>. An additional constraint for CalWS is that no timezone specifications are transferred.</p>
</clause>

<clause id="_b069d863-a3b9-9ecd-5093-d150dfc44c57" obligation="normative">
<title id="_dccd0877-78d6-2b55-f3ca-68925c68d5c2">Timezone information</title>
<p id="_d397d61f-50e9-88c0-ea66-cb8831eba2d2">It is assumed that the client and server each have access to a full set of up to date timezone information. Timezones will be referenced by a timezone identifier from the full set of Olson data together with a set of well-known aliases defined [TZDB]. CalWS services may advertise themselves as timezone servers through the server properties object.</p>
</clause>

<clause id="_5a88765b-3bd9-9ad5-515a-ced132335367" obligation="normative">
<title id="_a0ebb25f-5f55-3bae-f1f6-f6806de08631">Issues not addressed by this specification</title>
<p id="_51e3ebad-c982-30b9-b363-b0833e9138c0">A number of issues are not addressed by this version of the specification, either because they should be addressed elsewhere or will be addressed at some later date.</p>

<clause id="_0a75488e-80d1-5ec0-5e2a-0f552f44b277" obligation="normative">
<title id="_26585b65-9105-769b-c4d6-a42860261b01">Access Control</title>
<p id="_0cbc9dbd-0809-f54e-ed24-01ed177a3b84">It is assumed that the targeted server will set an appropriate level of access based on authentication. This specification will not attempt to address the issues of sharing or Access Control Lists (ACLs).</p>
</clause>

<clause id="_4bb4f3fb-25fd-f82e-1dfa-e941f7390014" obligation="normative">
<title id="_277e63c1-7454-a319-fa3e-0b5b210753dd">Provisioning</title>
<p id="_a445de4f-fbd6-32ad-3431-9eba3d2de47d">The protocol will not provide any explicit provisioning operations. If it is possible to authenticate or address a principals calendar resources then they  <tt>MUST</tt> be automatically created if necessary or appropriate</p>
</clause>

<clause id="_599ad5b2-a0dc-362d-f124-a51887d215eb" obligation="normative">
<title id="_4b01e316-2db0-e30e-f8ec-f075d8711a8c">Copy/Move</title>
<p id="_588801de-8b74-f08a-ad9a-aef5cfaf5255">These operations are not yet defined for this version of the CalWS protocol. Both operations raise a number of issues. In particular implementing a move operation through a series of retrievals, insertions and deletions may cause undesirable side-effects. Both these operations will be defined in a later version of this specification.</p>
</clause>

<clause id="_b4c10711-70f7-e4a1-251a-b94e3f10fa3a" obligation="normative">
<title id="_b76c1e49-8e0b-4701-3b62-eaab9a8114e0">Creating Collections</title>
<p id="_64765b5f-96e1-fe80-7575-3b14164564b9">We will not address the issue of creating collections within the address space. The initial set is created by provisioning.</p>
</clause>

<clause id="_76ddcdd3-7712-1332-2101-2ffae95ed57d" obligation="normative">
<title id="_80eed674-8ce0-f379-ba69-10d7b92a653f">Retrieving collections</title>
<p id="_0ca0d0f6-e652-45f7-fa30-08f61162fade">This operation is currently undefined. A <tt>GET</tt> on a collection may fail or return a complete calendar object representing the collection.</p>
</clause>

<clause id="_59ec73ce-db63-d7cd-9e56-31776cc28f43" anchor="sec-2.1.3.6" obligation="normative">
<title id="_bfe1c75e-615f-a04c-6b6e-b662aeacdec9">Setting service and resource properties.</title>
<p id="_24554ee8-6dfc-42a3-decd-217fbc5c99a5">These operations are not defined in this version of the specification. In the future it will be possible to define or set the properties for the service or resources within the service.</p>
</clause>
</clause>

<clause id="_2f050b8b-bf50-abb4-c46b-7800fed3462c" obligation="normative">
<title id="_c4f95ad3-a2da-9836-3c35-7cfd3a34cca3">CalWS Glossary</title>
<clause id="_fbffa90d-4b78-746c-0a7e-cea88791a2d0" obligation="normative">
<title id="_0fc0a7e9-7187-28fe-1169-6038ab2e7a63">Hrefs</title>
<p id="_91f17c9f-29b7-f383-1699-9b337f7e6201">An <tt>href</tt> is a URI reference to a resource, for example</p>

<sourcecode id="_7e08a567-9c73-604b-938c-c19168133b9e" unnumbered="true"><body>"http://example.org/user/fred/calendar/event1.ics".</body></sourcecode>


<p id="_0a376ffe-adf9-281a-6638-83b8cc0fea13">The URL above reflects a possible structure for a calendar server. All URLs should be absolute or path-absolute following the rules defined in  <eref type="inline" bibitemid="rfc4918" citeas="IETF RFC 4918"><localityStack><locality type="section"><referenceFrom>8.3</referenceFrom></locality></localityStack></eref>.</p>
</clause>

<clause id="_35f9f60b-893a-83ea-674c-dd8f8a4c0b26" obligation="normative">
<title id="_34ab552e-7712-3557-8091-a963b40f5afa">Calendar Object Resource</title>
<p id="_09d30a67-c1d5-3314-d9a9-527796dd55ce">A calendar object resource is an event, meeting or a task. Attachments are resources but NOT calendar object resources. An event or task with overrides is a single calendar resource entity.</p>
</clause>

<clause id="_f9d056ad-4928-f364-2363-ef2fe618030a" obligation="normative">
<title id="_8c6fff9c-da48-8d11-300b-dca31826cbd2">Calendar Collection</title>
<p id="_a62a55dd-923d-886f-b99c-93d75e255aed">A folder only allowed to contain calendar object resources.</p>
</clause>

<clause id="_c26eb0ee-04a5-6de3-ab51-83749e6f1d80" obligation="normative">
<title id="_ae6d05e9-edd9-a33d-6748-6106dbcfbc93">Scheduling Calendar Collection</title>
<p id="_26ba3654-d93c-2e06-098b-3b28d448e4d1">A folder only allowed to contain calendar resources which is also used for scheduling operations. Scheduling events placed in such a collection will trigger implicit scheduling activity on the server.</p>
</clause>

<clause id="_c829f23c-2886-e39e-127c-aa62bbf85621" obligation="normative">
<title id="_30b55cd4-7ee6-da48-0186-056690cacd4c">Principal Home</title>
<p id="_2d7788d3-c667-951f-b0b6-3a1b9d550870">The collection under which all the resources for a given principal are stored. For example, for principal “<tt>fred</tt>” the principal home might be “<tt>/user/fred/</tt>”</p>
</clause>
</clause>
</clause>
</clause>

<clause id="_3987243e-17a8-6155-6557-feb23a66d616" obligation="normative">
<title id="_91600eaa-7e1a-9dd9-a369-29f008897718">Error conditions</title>
<p id="_173ae616-2570-aaac-ef3c-50dedebd53fd">Each operation on the calendar system has a number of pre-conditions and post-conditions that apply.</p>

<p id="_aaffe9a8-5296-df7a-1d9a-914016b7f5cb">A “precondition” for a method describes the state of the server that must be true for that method to be performed. A “post-condition” of a method describes the state of the server that must be true after that method has been completed. Any violation of these conditions will result in an error response in the form of a CalWS XML error element containing the violated condition and an optional description.</p>

<p id="_5ea4ebf7-9654-1a2c-62b4-c7636a0c29b9">Each method specification defines the preconditions that must be satisfied before the method can succeed. A number of post-conditions are generally specified which define the state that must exist after the execution of the operation. Preconditions and post-conditions are defined as error elements in the CalWS XML namespace.</p>

<clause id="_217d6d06-ed09-eb3b-a2b6-8c7e1c781379" obligation="normative">
<title id="_bf4e4b79-3be8-e1dc-e9e2-279d171c2bc8">Example: error with CalDAV error condition</title>
<sourcecode id="_bebb1dc7-480a-e8fe-1529-adc5abc62822" unnumbered="true"><body>&lt;?xml version="1.0" encoding="utf-8"
  xmlns:CW="http://docs.oasis-open.org/ns/wscal/calws"
  xmlns:C="http://docs.oasis-open.org/ws-calendar/ns/REST" ?&gt;
&lt;CW:error&gt;
  &lt;C:supported-filter&gt;
    &lt;C:prop-filter name="X-ABC-GUID"/&gt;
  &lt;/C:supported-filter&gt;
  &lt;CW:description&gt;Unknown property &lt;/CW:description&gt;
&lt;/CW:error&gt;</body></sourcecode>

</clause>
</clause>

<clause id="_9b4ad6d6-7470-8771-8753-4679ecf1a303" obligation="normative">
<title id="_68b35a16-62d4-e1a8-dd22-991043b4d987">Properties and link relations</title>
<clause id="_c303b05a-9ebb-834c-379a-0716744ae0a1" obligation="normative">
<title id="_11252b33-1c13-8f05-9f74-25e9c46d67b8">Property and relation-type URIs</title>
<p id="_8012b484-1a6a-09eb-8841-c7dc527eb779">In the <tt>XRD</tt> entity returned properties and related services and entities are defined by absolute URIs which correspond to the extended relation type defined in  <eref type="inline" bibitemid="webl" citeas="Internet-Draft draft-nottingham-http-link-header-10"><localityStack><locality type="section"><referenceFrom>4.2</referenceFrom></locality></localityStack></eref>. These URIs do NOT correspond to any real entity on the server and clients should not attempt to retrieve any data at that target.</p>

<p id="_71af4f40-166c-68c5-0c83-8af2408b9a07">Certain of these property URIs correspond to CalDAV preconditions. Each URL is prefixed by the CalWS relations and properties namespace  <link target="http://docs.oasis-open.org/ws-calendar/ns/REST/"/>. Those properties which correspond to CalDAV properties have the additional path element “<strong>caldav/</strong>”, for example</p>

<sourcecode id="_15bf89f2-66d5-5670-aede-d7fcc1df57c0" unnumbered="true"><body>http://docs.oasis-open.org/ws-calendar/ns/REST/supported-calendar-data</body></sourcecode>


<p id="_165dc944-3ee8-1209-4f89-4d2994372c19">corresponds to</p>

<sourcecode id="_1c9a09e3-1618-989a-8fc1-cdb39e07ede9" unnumbered="true"><body>CalDAV:supported-calendar-data</body></sourcecode>


<p id="_db36af33-4fb8-3eaf-28e3-021ff85e5ff2">In addition to those CalDAV properties, the CalWS specification defines a number of other properties and link relations with the URI prefix of  <link target="http://docs.oasis-open.org/ws-calendar/ns/REST"/>.</p>
</clause>

<clause id="_87b3eae4-de31-21fa-07db-746c460931e0" obligation="normative">
<title id="_41d9454d-563d-54ec-65b4-d57e627f5cbe"><tt>supported-features</tt> property</title>
<p id="_0b35e4a9-0ae9-3277-ceac-1807f5314c4a"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/supported-features"/></p>

<p id="_a5bc41c5-9e40-de8a-fe7e-c71b0ff35625">This property defines the features supported by the target. All resources contained and managed by the service should return this property. The value is a comma separated list containing one or more of the following</p>

<ul id="_19292a0e-d290-7e68-dc27-7f2c8ecde229"><li><p id="_19ebdb18-afa7-03b3-7096-3be0150bfc67"><tt>calendar-access</tt> — the service supports all <tt>MUST</tt> requirements in this specification</p>
<sourcecode id="_a31a6007-49a4-78a7-35d4-3fc06ce3fba0" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/supported-features"&gt;calendar-access&lt;/Property&gt;</body></sourcecode>

</li>
</ul>
</clause>

<clause id="_d6594bb7-0029-2844-d421-e61012163c8f" obligation="normative">
<title id="_dc0e6240-3786-0b89-561c-d2320a6ee300"><tt>max-attendees-per-instance</tt></title>
<p id="_a478a1b1-270c-7c1d-51fd-6f8153b6d596"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/max-attendees-per-instance"/></p>

<p id="_faab7a23-069e-a2fe-7e96-8673598dd4ab">Defines the maximum number of attendees allowed per event or task.</p>
</clause>

<clause id="_8d31a96b-bd85-45a6-d159-694ba054444b" obligation="normative">
<title id="_8984aef3-4ec7-ad51-9048-9b43ad980db6"><tt>max-date-time</tt></title>
<p id="_b1219e3b-fda1-46be-1ed5-639f920e9579"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/max-date-time"/></p>

<p id="_7abc7a06-f738-f2b4-7639-199b683632e0">Defines the maximum date/time allowed on an event or task</p>
</clause>

<clause id="_48661943-51b9-7a72-ff47-94682ad1298c" obligation="normative">
<title id="_059885d5-b784-5a82-5f89-712f463d25af"><tt>max-instances</tt></title>
<p id="_a3d4c950-97ed-0cd7-bdba-b4b2f1f7cd86"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/max-instances"/></p>

<p id="_273dd4fd-eaac-56f3-07fe-654e2f70a876">Defines the maximum number of instances allowed per event or task</p>
</clause>

<clause id="_e0cadda2-a884-09c6-c5b1-6f8956017feb" obligation="normative">
<title id="_c7e6bb77-0c37-dead-05c8-d3b766d149e9"><tt>max-resource-size</tt></title>
<p id="_e043ac12-3691-b934-3c7b-56c0c40b29d0"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/max-resource-size"/></p>

<p id="_3b5e1597-c92f-90b4-c5ef-a17adeb947f6">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.</p>
</clause>

<clause id="_6f1bab94-b051-2bd3-f39d-691ca350947f" obligation="normative">
<title id="_8d100e6c-5576-7b69-d217-128d4e8b7c41"><tt>min-date-time</tt></title>
<p id="_d28a0365-3f9b-2337-91ad-169afeb70c7f"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/min-date-time"/></p>

<p id="_e202a7c7-ecf9-e799-19d6-ae96fbef5fc9">Provides a <tt>DATE-TIME</tt> value indicating the earliest date and time (in UTC) that the server is willing to accept for any  <tt>DATE</tt> or <tt>DATE-TIME</tt> value in a calendar object resource stored in a calendar collection.</p>
</clause>

<clause id="_5b9eb198-bb74-94c7-bcde-abb5e52c0a11" obligation="normative">
<title id="_75f16a4e-3e1a-f207-6b6f-66bc7a193eaf"><tt>description</tt></title>
<p id="_444febb5-2cfc-7118-37b7-f20afc673e7a"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/description"/></p>

<p id="_0b956b1d-f9b1-0d0c-8506-15d6f2a2f9b8">Provides some descriptive text for the targeted collection.</p>
</clause>

<clause id="_c707a72b-0fba-96a8-e475-372adabb8066" obligation="normative">
<title id="_c699525e-6422-e91d-93e6-0fec8df87ea2"><tt>timezone-service</tt> relation</title>
<p id="_75e3b227-ecf9-50a9-302c-f8b75d4007c0"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/timezone-service"/></p>

<p id="_54ec29f9-1bab-3897-989a-072afe60d8c1">The location of a timezone service used to retrieve timezone information and specifications. This may be an absolute URL referencing some other service or a relative URL if the current server also provides a timezone service.</p>

<sourcecode id="_0a02ea06-4272-84e8-d2bb-19a62b5bb325" unnumbered="true"><body>&lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/timezone-service"
           href="http://example.com/tz" /&gt;</body></sourcecode>

</clause>

<clause id="_6c52832e-ef3c-69a3-c013-1d1848c95ca4" obligation="normative">
<title id="_349b9385-fa3b-d345-b358-bb7185cccfd4"><tt>principal-home</tt> relation</title>
<p id="_14370f85-4473-8e7c-999a-4c3593bbe31b"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/principal-home"/></p>

<p id="_7ca52aa1-9565-e539-2413-3be4c0a5ad35">Provides the URL to the user home for the currently authenticated principal.</p>

<sourcecode id="_607e20a3-3991-ef2d-9d46-c9350531fe0f" unnumbered="true"><body>&lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/principal-home"
           href="http://example.com/user/fred" /&gt;</body></sourcecode>

</clause>

<clause id="_d6dc1680-6985-2c1f-5a39-4b4c1046b6bb" obligation="normative">
<title id="_1ca21f08-fb93-9be8-848c-e68940d79ddf"><tt>current-principal-freebusy</tt> relation</title>
<p id="_d6952054-d009-0c7d-1877-1c95ae64192d"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/current-principal-freebusy"/></p>

<p id="_2fc3772a-43e0-486f-8ddd-6493fdff9e66">Provides the URL to use as a target for <tt>freebusy</tt> requests for the current authenticated principal.</p>

<sourcecode id="_d1bd2982-cda3-e226-a213-ede96a83aa0e" unnumbered="true"><body>&lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/current-principal-freebusy"
           href="http://example.com/freebusy/user/fred" /&gt;</body></sourcecode>

</clause>

<clause id="_cb4fcb30-e66a-b939-77d1-879ae38482a0" obligation="normative">
<title id="_7297f87a-1de2-95d3-0b7b-7622cc39de58"><tt>principal-freebusy</tt> relation</title>
<p id="_5bb6b56d-20b5-0000-a88c-5a702c6a56f0"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/principal-freebusy"/></p>

<p id="_3b044029-0b42-9c37-6dd4-cb91b4d73c79">Provides the URL to use as a target for <tt>freebusy</tt> requests for a different principal.</p>

<sourcecode id="_d900e677-177c-d97a-f45a-a7de66ea966a" unnumbered="true"><body>&lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/principal-freebusy"
           href="http://example.com/freebusy" /&gt;</body></sourcecode>

</clause>

<clause id="_0b5bf8e2-a394-b4a2-7340-a9120b1a18d3" obligation="normative">
<title id="_fa0db8a5-7fe6-9c7c-6933-6de5cdb89aba"><tt>child-collection</tt> relation</title>
<p id="_59b45ac7-407c-a469-151a-d8e3982bceb1"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/child-collection"/></p>

<p id="_50f83d70-8442-6a26-4855-3450a23696ae">Provides information about a child collections for the target. The <tt>href</tt> attribute gives the URI of the collection. The element should only have CalWS child elements giving the type of the collection, that is the  <tt>calWS:collection</tt> link property and the CalWS-calendar-collection link property. This allows clients to determine the structure of a hierarchical system by targeting each of the child collections in turn.</p>

<p id="_c5f2e829-1cce-b538-899e-de5b2dda92ee">The <tt>xrd:title</tt> child element of the link element provides a description for the child-collection.</p>

<sourcecode id="_7fd54f78-9ccb-c394-2fa1-50be1f393099" unnumbered="true"><body>&lt;Link rel="http://http://docs.oasis-open.org/ws-calendar/ns/REST/child-collection"
           href="http://example.com/calWS/user/fred/calendar"&gt;
  &lt;Title xml:lang="en"&gt;Calendar&lt;/Title&gt;
  &lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/collection"
            xsi:nil="true" /&gt;
  &lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/calendar-collection"
            xsi:nil="true" /&gt;
&lt;/Link&gt;</body></sourcecode>

</clause>

<clause id="_4096780d-05ef-f83e-8d2e-c0ea98ff1807" obligation="normative">
<title id="_625b9113-81e5-d8b5-88c6-a18ce7790fd5"><tt>created</tt> link property</title>
<p id="_7795affe-a727-f2db-a6d8-9a773289b57c"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/created"/></p>

<p id="_c4643cac-fee7-8d32-e863-ea032f84f87f">Appears within a link relation describing collections or entities. The value is a date-time as defined in <eref type="inline" bibitemid="rfc3339" citeas="IETF RFC 3339"><localityStack><locality type="section"><referenceFrom>5.6</referenceFrom></locality></localityStack></eref>.</p>

<sourcecode id="_2225e293-03a7-6c10-3c6b-33dee639c9b7" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/created"&gt;1985-04-12T23:20:50.52Z&lt;/Property&gt;</body></sourcecode>

</clause>

<clause id="_2b53b0b9-95cc-943d-076d-e852e6c1ba81" obligation="normative">
<title id="_784d5ffd-be19-aa49-4780-f0b81f178ad2"><tt>last-modified</tt> property</title>
<p id="_8414203c-2491-4d48-beb3-3fc29fc86302"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/last-modified"/></p>

<p id="_5d8bd072-6b34-e656-c36a-825f74db903d">Appears within an <tt>xrd</tt> object describing collections or entities. The value is the same format as would appear in the Last-Modified header and is defined in  <eref type="inline" bibitemid="rfc2616" citeas="IETF RFC 2616"><localityStack><locality type="section"><referenceFrom>3.3.1</referenceFrom></locality></localityStack></eref></p>

<sourcecode id="_bbbc8763-3e38-8d03-6a26-b58b0a7c83c6" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/last-modified"&gt;Mon, 12 Jan 1998 09:25:56 GMT&lt;/Property&gt;</body></sourcecode>

</clause>

<clause id="_2d3284f6-1379-db4a-8f02-10b5212af80c" obligation="normative">
<title id="_252efea3-0515-0657-98ba-3425eaff7097"><tt>displayname</tt> property</title>
<p id="_68c769db-71fe-cde6-b188-0df81fa99659"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/displayname"/></p>

<p id="_8862714a-6174-b601-e26a-fd1da6efa32b">Appears within an <tt>xrd</tt> object describing collections or entities. The value is a localized name for the entity or collection.</p>

<sourcecode id="_76ed2f0b-38b7-b586-c0f6-03b297d6cf7d" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/displayname"&gt;My Calendar&lt;/Property&gt;</body></sourcecode>

</clause>

<clause id="_bbfd0ebd-ef5f-3b97-cc7e-dedda1ded9c6" obligation="normative">
<title id="_c241265d-280b-6c65-f988-128e00a4dff6"><tt>timezone</tt> property</title>
<p id="_74ab3ea9-fb5f-d416-7edd-e603e81c8859"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/timezone"/></p>

<p id="_d0cd20ca-9bf1-9413-357f-1636bf0157a9">Appears within an <tt>xrd</tt> object describing collections. The value is a text timezone identifier.</p>

<sourcecode id="_b2f62069-2e7d-08df-fd69-af244f2a3c99" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/timezone"&gt;America/New_York&lt;/Property&gt;</body></sourcecode>

</clause>

<clause id="_1f15dee5-b810-80aa-566c-26dc0f81e056" obligation="normative">
<title id="_15d75df7-cec8-14c0-97b2-e5f70473aab7"><tt>owner</tt> property</title>
<p id="_ca8887ec-3b9a-7855-9711-5c1716f3a576"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/owner"/></p>

<p id="_2191c23a-7287-fd6b-fdc0-502d8958145a">Appears within an <tt>xrd</tt> object describing collections or entities. The value is a server specific URI.</p>

<sourcecode id="_70c94c11-f455-653b-e12b-af164efd50a2" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/owner"&gt;/principals/users/mike&lt;/Property&gt;</body></sourcecode>

</clause>

<clause id="_9c86c173-85f8-a329-0095-ff0d835183d3" obligation="normative">
<title id="_19bb9385-ffe2-bc39-11a2-2a8834f0ad79"><tt>collection</tt> link property</title>
<p id="_4022b03d-3a70-19ad-a2c4-adcb8ae75010"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/collection"/></p>

<p id="_f7f3b3ca-535b-10be-6281-227a40ce0a1c">Appears within a link relation describing collections or entities. The property takes no value and indicates that this child element is a collection.</p>

<sourcecode id="_37fcc823-9897-7e7c-83f3-4030541cb675" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/collection"
          xsi:nil="true" /&gt;</body></sourcecode>

</clause>

<clause id="_236240ba-8e4a-2bbc-7fe8-fa68a5df2f07" obligation="normative">
<title id="_db3f5f07-014f-6e33-2022-eff6533cf3e9"><tt>calendar-collection</tt> link property</title>
<p id="_301bd6fe-0f27-3d25-506e-6fa4f2409cc5"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/calendar-collection"/></p>

<p id="_0ba69e39-71dc-c0fd-9014-711f6fd62371">Appears within a link relation describing collections or entities. The property takes no value and indicates that this child element is a calendar collection.</p>

<sourcecode id="_aee55aee-155e-1cb7-7c64-97b24216dada" unnumbered="true"><body>&lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/calendar-collection"
          xsi:nil="true" /&gt;</body></sourcecode>

</clause>

<clause id="_75e95477-26d0-15b5-1e68-710cd120fe0b" obligation="normative">
<title id="_4457e3f4-6184-10bc-8089-85d209acad84"><tt>calWS:privilege-set</tt> XML element</title>
<p id="_3c0f1c62-3969-ff52-3b86-f18b2e753cea"><link target="http://docs.oasis-open.org/ws-calendar/ns/REST/calws:privilege-set"/></p>

<p id="_5cad9143-8b0b-d0bf-a950-22c9a9504aed">Appears within a link relation describing collections or entities and specifies the set of privileges allowed to the current authenticated principal for that collection or entity.</p>

<sourcecode id="_b93cb356-0eb9-bc26-5ef4-1f98a089290e" unnumbered="true"><body>&lt;!ELEMENT calWS:privilege-set (calWS:privilege*)&gt;
&lt;!ELEMENT calWS:privilege ANY&gt;</body></sourcecode>


<p id="_c2d412b4-6532-cd41-3f76-af8dfc484d82">Each privilege element defines a privilege or access right. The following set is currently defined</p>

<ul id="_da1784d0-16fe-4285-e9c2-4a5a16fc48aa"><li><p id="_32e0aa32-1e31-21ec-96ec-e31b2f48d377">calWS: Read — current principal has read access</p>
</li>
<li><p id="_64c9881a-13c5-4211-751d-50861d9f293a">calWS: Write — current principal has write access</p>
</li>
</ul>

<sourcecode id="_d8bd50b0-62ef-6dda-9a7b-29cc6c0cbd44" unnumbered="true"><body>&lt;calWS:privilege-set&gt;
  &lt;calWS:privilege&gt;&lt;calWS:read&gt;&lt;/calWS:privilege&gt;
  &lt;calWS:privilege&gt;&lt;calWS:write&gt;&lt;/calWS:privilege&gt;
&lt;/calWS:privilege-set&gt;</body></sourcecode>

</clause>
</clause>

<clause id="_94ddc304-5e45-34c7-c6c0-af98847d1766" anchor="sec-retrieving" obligation="normative">
<title id="_0f498af0-760b-1230-1c39-a3cc2c0a4a21">Retrieving Collection and Service Properties</title>
<p id="_f44b2306-9d55-95d2-4fa3-c1a1d3554da2">Properties, related services and locations are obtained from the service or from service resources in the form of an XRD document as defined by  <eref type="inline" bibitemid="xrd" citeas="XRD-1.0"/>.</p>

<p id="_8c2844e1-8c3e-b464-415f-2f67d3604636">Given the URL of a CalWS service a client retrieves the service XRD document through a <tt>GET</tt> on the service URL with an  <tt>ACCEPT</tt> header specifying <tt>application/xrd+xml</tt>.</p>

<p id="_56478afb-dcda-e311-5762-d72987a6a7e4">Retrieving resource properties is identical to obtaining service properties, that is, execute a <tt>GET</tt> on the target URL with an  <tt>ACCEPT</tt> header specifying <tt>application/xrd+xml</tt>.</p>

<p id="_36092274-c7cc-9e02-1b11-9e8b9a05c1eb">The service properties define the global limits and defaults. Any properties defined on collections within the service hierarchy override those service defaults. The service may choose to prevent such overriding of defaults and limits when appropriate.</p>

<clause id="_2658f74a-b87f-d802-cb7e-3447c2816f2c" obligation="normative">
<title id="_4fcb9c26-685c-8b7c-34cb-58c2de726ade">Request parameters</title>
<ul id="_0c253a61-2a28-cabb-b2da-cc86a9d1500a"><li><p id="_1d3cdbbd-14a3-e628-7e72-73cd1f9fb594">None</p>
</li>
</ul>
</clause>

<clause id="_88700656-e0fc-258a-a4a0-6ee055e21de2" obligation="normative">
<title id="_d1c266be-bbf2-0533-591c-906d464fd789">Responses</title>
<ul id="_a6a42a18-2902-989a-066e-a1a48f68e223"><li><p id="_f03d1189-5cc8-e891-3cfa-e48ef018fdda">200: OK</p>
</li>
<li><p id="_60fbb4f0-4a87-51d2-5a94-2b0a537e5fa7">403: Forbidden</p>
</li>
<li><p id="_0c08fce9-2066-568b-a90d-184dc14d92e6">404: Not found</p>
</li>
</ul>
</clause>

<clause id="_dbc1ef7e-2e26-6e01-f0b9-93bc451993c1" obligation="normative">
<title id="_86322e6e-044f-3070-5abf-286f5a5c5853">Example — retrieving server properties</title>
<sourcecode id="_dd3ea9b1-bff9-dec0-a33f-bf2cf649c247" unnumbered="true"><body>&gt;&gt;Request

GET / HTTP/1.1
Host: example.com
ACCEPT:application/xrd+xml

&gt;&gt;Response
&lt;XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;Expires&gt;1970-01-01T00:00:00Z&lt;/Expires&gt;
  &lt;Subject&gt;http://example.com/calWS&lt;/Subject&gt;
  &lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/created"&gt;1970-01-01&lt;/Property&gt;

  &lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/timezone-service"
        href="http://example.com/tz" /&gt;

  &lt;calWS:privilege-set&gt;
    &lt;calWS:privilege&gt;&lt;calWS:read&gt;&lt;/calWS:privilege&gt;
  &lt;/calWS:privilege-set&gt;

  &lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/principal-home"
        type="collection"
        href="http://example.com/calWS/user/fred"&gt;
    &lt;Title xml:lang="en"&gt;Fred's calendar home&lt;/Title&gt;
  &lt;/Link&gt;

  &lt;Link rel="http://docs.oasis-open.org/ws-calendar/ns/REST/child-collection"
        type="calendar,scheduling"
        href="http://example.com/calWS/user/fred/calendar"&gt;
    &lt;Title xml:lang="en"&gt;Calendar&lt;/Title&gt;
  &lt;/Link&gt;

  &lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/max-instances"&gt;1000&lt;/Property&gt;

  &lt;Property type="http://docs.oasis-open.org/ws-calendar/ns/REST/max-attendees-per-instance"&gt;100&lt;/Property&gt;
    ...
&lt;/XRD&gt;</body></sourcecode>

</clause>
</clause>

<clause id="_61b50e2c-06e6-932f-1e06-ada66b50a47e" obligation="normative">
<title id="_36959627-e0fd-39af-02bc-ba0d42d62bcf">Creating Calendar Object Resources</title>
<p id="_5da5f6be-af9b-66ca-589e-c874b690cf01">Creating calendar object resources is carried out by a <tt>POST</tt> on the parent collection. The body of the request will contain the resource being created. The request parameter “action=create” indicates this <tt>POST</tt> is a create. The location header of the response gives the URL of the newly created object.</p>

<clause id="_398f3a54-557e-584d-1314-21d20f51465e" obligation="normative">
<title id="_097a9d7a-b69e-b9d6-38bc-46dfa70ff608">Request parameters</title>
<ul id="_b2900863-e826-d151-bdf6-e1eea01f1666"><li><p id="_46408484-00b2-ced9-788c-3eb656167be7">action=create</p>
</li>
</ul>
</clause>

<clause id="_44364714-7a20-a9ba-af00-308b4888785e" obligation="normative">
<title id="_55ef6841-5667-7ffe-48f8-7586341a3245">Responses</title>
<ul id="_4883061b-f8cb-bcf9-c0d3-e914a452ff95"><li><p id="_ff7a884f-4165-c4f8-d205-0209c18d8e45">201: created</p>
</li>
<li><p id="_efe4923d-292c-1be9-8d2b-13f237739b83">403: Forbidden — no access</p>
</li>
</ul>
</clause>

<clause id="_dc064b3e-38f4-8458-9208-a42bc2253d60" anchor="sec-preconditions" obligation="normative">
<title id="_8a4ac55d-e20b-aee3-b36e-dc102fb408b7">Preconditions for Calendar Object Creation</title>
<ul id="_65ec9285-4e67-cac4-068e-31d8bb0a7f3d"><li><p id="_8656fa53-464d-342a-912a-8aa06835f540"><strong><tt>calWS:target-exists</tt></strong>: The target of a <tt>PUT</tt> must exist. Use <tt>POST</tt> to create entities and <tt>PUT</tt> to update them.</p>
</li>
<li><p id="_1f47cd07-8fb9-95d4-3b18-db8d9f4aa765"><strong><tt>calWS:not-calendar-data</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or <tt>MOVE</tt> request, <tt>MUST</tt> be a supported media type (i.e., iCalendar) for calendar object resources;</p>
</li>
<li><p id="_1348a1d8-3d99-e09d-8184-c092aba3aa49"><strong><tt>calWS:invalid-calendar-data</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or  <tt>MOVE</tt> request, <tt>MUST</tt> be valid data for the media type being specified (i.e., <tt>MUST</tt> contain valid iCalendar data);</p>
</li>
<li><p id="_3b3c1d7d-874c-73f0-4ca1-eeddbd6e0694"><strong><tt>calWS:invalid-calendar-object-resource</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a  <tt>COPY</tt> or <tt>MOVE</tt> request, <tt>MUST</tt> obey all restrictions specified in Calendar Object Resources (e.g., calendar object resources  <tt>MUST NOT</tt> contain more than one type of calendar component, calendar object resources  <tt>MUST NOT</tt> specify the iCalendar <tt>METHOD</tt> property, etc.);</p>
</li>
<li><p id="_fe976388-f081-5802-1175-8a34f1947315"><strong><tt>calWS:unsupported-calendar-component</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a  <tt>COPY</tt> or <tt>MOVE</tt> request, <tt>MUST</tt> contain a type of calendar component that is supported in the targeted calendar collection;</p>
</li>
<li><p id="_cb9707a9-1f2a-a904-1dff-35a380d64a67"><strong><tt>calWS:uid-conflict</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or <tt>MOVE</tt> request,  <tt>MUST NOT</tt> specify an iCalendar <tt>UID</tt> 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. Servers  <tt>SHOULD</tt> report the URL of the resource that is already making use of the same UID property value in the  <tt>calWS:href</tt> element</p>
<sourcecode id="_3f7c7271-910c-e8de-d5a2-51dc871502f2" unnumbered="true"><body>&lt;!ELEMENT uid-conflict (calWS:href)&gt;</body></sourcecode>

</li>
<li><p id="_3c9be6d2-cae9-6a06-69e1-dfbadb90cafc"><strong><tt>calWS:invalid-calendar-collection-location</tt></strong>: In a <tt>COPY</tt> or <tt>MOVE</tt> request, when the Request- URI is a calendar collection, the Destination-URI  <tt>MUST</tt> identify a location where a calendar collection can be created;</p>
</li>
<li><p id="_dfd6f37d-d1ca-6fac-b2a7-b4239551b313"><strong><tt>calWS:exceeds-max-resource-size</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or <tt>MOVE</tt> request, <tt>MUST</tt> have an octet size less than or equal to the value of the <tt>CalDAV:max-resource-size</tt> property value on the calendar collection where the resource will be stored;</p>
</li>
<li><p id="_83f3a428-5bbd-10f9-ffb1-8ae5defd67f5"><strong><tt>calWS:before-min-date-time</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or  <tt>MOVE</tt> request, <tt>MUST</tt> have all of its iCalendar <tt>DATE</tt> or <tt>DATE-TIME</tt> property values (for each recurring instance) greater than or equal to the value of the  <tt>CalDAV:min-date-time</tt> property value on the calendar collection where the resource will be stored;</p>
</li>
<li><p id="_2ffbc872-44af-e35b-4a3d-1a9c92f417cc"><strong><tt>calWS:after-max-date-time</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or  <tt>MOVE</tt> request, <tt>MUST</tt> have all of its iCalendar <tt>DATE</tt> or <tt>DATE-TIME</tt> property values (for each recurring instance) less than the value of the  <tt>CalDAV:max-date-time</tt> property value on the calendar collection where the resource will be stored;</p>
</li>
<li><p id="_055bfc8c-8973-758e-f936-2c7112eb3eb7"><strong><tt>calWS:too-many-instances</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a <tt>COPY</tt> or  <tt>MOVE</tt> request, <tt>MUST</tt> generate a number of recurring instances less than or equal to the value of the  <tt>CalDAV:max-instances</tt> property value on the calendar collection where the resource will be stored;</p>
</li>
<li><p id="_b7de7e72-1f05-5d39-f01f-492c84fd2608"><strong><tt>calWS:too-many-attendees-per-instance</tt></strong>: The resource submitted in the <tt>PUT</tt> request, or targeted by a  <tt>COPY</tt> or <tt>MOVE</tt> request, <tt>MUST</tt> have a number of <tt>ATTENDEE</tt> properties on any one instance less than or equal to the value of the  <tt>CalDAV:max-attendees-per-instance</tt> property value on the calendar collection where the resource will be stored;</p>
</li>
</ul>
</clause>

<clause id="_36ec4d47-918d-99f3-e36e-f78c820cba89" obligation="normative">
<title id="_225387f3-a15c-9fd9-2cac-bb20df59e131">Example — successful <tt>POST</tt></title>
<sourcecode id="_cc351cf4-ae71-587a-4c7f-7c15a7a61dac" unnumbered="true"><body>&gt;&gt;Request

POST /user/fred/calendar/?action=create HTTP/1.1
Host: example.com
Content-Type: application/xml+calendar; charset="utf-8"
Content-Length: ?

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
  &lt;vcalendar&gt;
  ...
  &lt;/vcalendar&gt;
&lt;/icalendar&gt;

&gt;&gt;Response

HTTP/1.1 201 Created
Location: http://example.com/user/fred/calendar/event1.ics</body></sourcecode>

</clause>

<clause id="_153cb89e-e7d1-ee90-c9b3-9f63b38331b6" obligation="normative">
<title id="_21c80487-88e1-82c1-cac0-3f0899d69140">Example — unsuccessful <tt>POST</tt></title>
<sourcecode id="_b17a71ce-cd1f-de87-f3d2-89ca6139ba1d" unnumbered="true"><body>&gt;&gt;Request

POST /user/fred/readcalendar/?action=create HTTP/1.1
Host: example.com
Content-Type: text/text; charset="utf-8"
Content-Length: ?

This is not an xml calendar object

&gt;&gt;Response

HTTP/1.1 403 Forbidden
  &lt;?xml version="1.0" encoding="utf-8"
    xmlns:D="DAV:"
    xmlns:C="urn:ietf:params:xml:ns:caldav" ?&gt;
&lt;D:error&gt;
    &lt;C:supported-calendar-data/&gt;
    &lt;D:description&gt;Not an icalendar object&lt;/D:description&gt;
&lt;/D:error&gt;</body></sourcecode>

</clause>
</clause>

<clause id="_99d87816-a52e-afdf-fdce-16077cf4acb4" obligation="normative">
<title id="_bbfed5a9-7240-9f46-e989-1e9ceff0fd7f">Retrieving resources</title>
<p id="_a628a571-0a22-10a0-7001-1bc97c27e594">A simple <tt>GET</tt> on the href will return a named resource. If that resource is a recurring event or task with overrides, the entire set will be returned. The desired format is specified in the  <tt>ACCEPT</tt> header. The default form is  <tt>application/xml+calendar</tt></p>

<clause id="_1b2c3a94-8016-4849-6275-e9698886ca0e" obligation="normative">
<title id="_e134ebb4-1728-9ab0-c527-f2898f63b97d">Request parameters</title>
<ul id="_13c1f3f0-d6fa-fa71-942e-79e31bc7fd23"><li><p id="_c6a3c44e-5ae6-2362-ffc2-24678b975e40">none</p>
</li>
</ul>
</clause>

<clause id="_ff1ce5d7-d397-bb00-42a4-776f8923b896" obligation="normative">
<title id="_3e7440d4-ff9c-cac9-7475-17d110cdff4e">Responses</title>
<ul id="_0dee3fe1-56c5-be2e-77c8-d869a0977536"><li><p id="_c175bfb4-66a4-0fee-b015-06fb1f6aa820">200: OK</p>
</li>
<li><p id="_abc22e98-c11a-ed2d-d87a-1e109c2e6724">403: Forbidden — no access</p>
</li>
<li><p id="_b11ad2bd-a57f-6c84-d483-de3b415fa43a">406 The requested format specified in the accept header is not supported.</p>
</li>
</ul>
</clause>

<clause id="_8147d675-eec7-f6ed-bbee-bbd72b81b89c" obligation="normative">
<title id="_3901472f-2204-dc0b-6e70-c76e79e375a7">Example — successful fetch</title>
<sourcecode id="_184e1c71-65b2-0bcf-03a4-b6e51ba726d6" unnumbered="true"><body>&gt;&gt;Request

GET /user/fred/calendar/event1.ics HTTP/1.1
Host: example.com

&gt;&gt;Response

HTTP/1.1 200 OK
Content-Type: application/xml+calendar; charset="utf-8"
Content-Length: ?

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
  &lt;vcalendar&gt;
  ...
  &lt;/vcalendar&gt;
&lt;/icalendar&gt;</body></sourcecode>

</clause>

<clause id="_eadfaf8b-cb1b-878f-d534-4387e56b631a" obligation="normative">
<title id="_07cc1dc7-9e7b-900b-f518-83de427522b6">Example — unsuccessful fetch</title>
<sourcecode id="_e09b9f4a-f2be-97a5-0cf2-6e1fe9dd2f9f" unnumbered="true"><body>&gt;&gt;Request

PUT /user/fred/calendar/noevent1.ics HTTP/1.1
Host: example.com

&gt;&gt;Response

HTTP/1.1 404 Not found</body></sourcecode>

</clause>
</clause>

<clause id="_25dc57dd-c316-c092-d35d-5ed7a46106d2" obligation="normative">
<title id="_178aae53-071e-802e-3472-d2d4a28810f4">Updating resources</title>
<p id="_80d0f544-5891-ff4e-2b99-954ceab5e1e4">Resources are updated with the <tt>PUT</tt> method targeted at the resource <tt>href</tt>. The body of the request contains a complete new resource which effectively replaces the targeted resource. To allow for optimistic locking of the resource use the if-match header.</p>

<p id="_09f4a4bc-123e-13c4-ab37-d839840d4fa9">When updating a recurring event all overrides and master must be supplied as part of the content.</p>

<p id="_4cab6da6-b17e-bf5e-bdea-dbd4d7d0d026">Preconditions as specified in <xref target="sec-preconditions"/> are applicable.</p>

<clause id="_43fd6462-e2fd-a144-3f73-e1bb2089bf58" obligation="normative">
<title id="_8cbc2978-9cab-b968-3522-394d0ffdf530">Responses</title>
<ul id="_ea391799-1b98-9732-38fc-d8ab80fdf267"><li><p id="_4e8a127a-fe01-5dca-4bba-66b503907a2a">200: OK</p>
</li>
<li><p id="_dbf73fc4-5269-1fc6-acc8-e0a90d278b98">304: Not modified — entity was modified by some other request</p>
</li>
<li><p id="_125916ff-fa82-641c-fe8f-e89557f43e1f">403: Forbidden — no access, does not exist etc. See error response</p>
</li>
</ul>

<example id="_5e6a5716-c010-53df-55e0-bdd257ccfb9f">
<name id="_5a950ed4-3797-a337-8746-8f6b5ac520a3">Successful update</name>
<sourcecode id="_25b678ca-4f1b-59b7-3cc8-91187c4262a1"><body>&gt;&gt;Request

PUT /user/fred/calendar/event1.ics HTTP/1.1
Host: example.com
Content-Type: application/xml+calendar; charset="utf-8"
Content-Length: ?

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
  &lt;vcalendar&gt;
  ...
  &lt;/vcalendar&gt;
&lt;/icalendar&gt;

&gt;&gt;Response

HTTP/1.1 200 OK</body></sourcecode>

</example>

<example id="_e7c1ec69-e684-3282-90a9-c02c201032f8">
<name id="_567d387a-cb41-abd3-748f-bd72c58c819f">Unsuccessful update</name>
<sourcecode id="_e1e7ce4c-128b-d6cc-387c-a581b6630088"><body>&gt;&gt;Request

PUT /user/fred/readcalendar/event1.ics HTTP/1.1
Host: example.com
Content-Type: application/xml+calendar; charset="utf-8"
Content-Length: ?

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
  &lt;vcalendar&gt;
  ...
  &lt;/vcalendar&gt;
&lt;/icalendar&gt;

&gt;&gt;Response

HTTP/1.1 403 Forbidden
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

&lt;?xml version="1.0" encoding="utf-8"
  xmlns:D="DAV:"
  xmlns:CW="http://docs.oasis-open.org/ws-calendar/ns/REST/calws" ?&gt;
&lt;CW:error&gt;
  &lt;CW:target-exists/&gt;
  &lt;CW:description&gt;Target of update must exist&lt;/C:description&gt;
&lt;/CW:error&gt;</body></sourcecode>

</example>
</clause>
</clause>

<clause id="_114c26af-68bc-2ee6-6506-171101e3fe4f" obligation="normative">
<title id="_1e729a8d-7e16-9112-581b-74fa00fee1fd">Deletion of resources</title>
<p id="_896492c3-dabb-119e-87b9-b8c2b8556634">Delete is defined in <eref type="inline" bibitemid="rfc2616" citeas="IETF RFC 2616"><localityStack><locality type="section"><referenceFrom>9.7</referenceFrom></locality></localityStack></eref>. In addition to conditions defined in that specification, servers must remove any references from the deleted resource to other resources. Resources are deleted with the  <tt>DELETE</tt> method targeted at the resource URL. After a successful completion of a deletion a <tt>GET</tt> on that URL must result in a 404 — Not Found status.</p>

<clause id="_a781dde0-d3b8-9c41-e69d-64b9cfce4279" obligation="normative">
<title id="_de987159-71eb-1a98-6f6c-dca1c5b5c24d">Delete for Collections</title>
<p id="_d5d269aa-9d01-6bac-fce1-b86cfdb85c71">Delete for collections may or may not be supported by the server. Certain collections are considered undeletable. On a successful deletion of a collection all contained resources to any depth must also be deleted.</p>
</clause>

<clause id="_cfd376b4-0423-46d8-5a94-6d711cd3612a" obligation="normative">
<title id="_31085628-a4e4-dcd2-a544-d2766e8e95bf">Responses</title>
<ul id="_ce606ed8-538c-aa58-38e2-09d4d308da48"><li><p id="_3d363bc3-0861-0db1-494c-373c5e10a3f1">200: OK</p>
</li>
<li><p id="_f072f847-ccf9-dc47-beb8-ec49cd898f9f">403: Forbidden — no access</p>
</li>
<li><p id="_a5a3e982-5ecf-7541-fc7e-6936c6c8e678">404: Not Found</p>
</li>
</ul>
</clause>
</clause>

<clause id="_43555353-b463-df1e-7c5c-cb6e30214833" obligation="normative">
<title id="_78cf2f42-1582-2482-1d00-48c796e7bac0">Querying calendar resources</title>
<p id="_543ee705-41af-69d0-7c54-3a492216273e">Querying provides a mechanism by which information can be obtained from the service through possibly complex queries. A list of iCalendar properties can be specified to limit the amount of information returned to the client. A query takes the parts</p>

<ul id="_8c8c08f2-1818-392f-c900-e9e3e137d1d8"><li><p id="_b60c228a-c404-9690-80f4-eadb06fdabf6">Limitations on the data returned</p>
</li>
<li><p id="_2ce22d1c-440f-8e16-bab8-fc3afcac961d">Selection of the data</p>
</li>
<li><p id="_231cb875-1498-3866-491f-2a950faa20f6">Optional timezone id for floating time calculations.</p>
</li>
</ul>

<p id="_b64ff47e-cf16-e9fa-1b60-8a24ba2f5916">The current specification uses CalDAV <tt>multiget</tt> and <tt>calendar-query</tt> XML bodies as specified in <eref type="inline" bibitemid="rfc4791" citeas="IETF RFC 4791"/> with certain limitations and differences.</p>

<ol id="_0b7137cb-53d3-ae39-f305-9eaf338accd6" type="arabic"><li><p id="_6d62f0b9-0999-4865-896d-a7a3bfbf1fed">The <tt>POST</tt> method is used for all requests, the action being identified by the outer element.</p>
</li>
<li><p id="_3f36420d-1b72-8325-a4d2-889e44c5877e">While CalDAV servers generally only support <eref type="inline" bibitemid="rfc5545" citeas="IETF RFC 5545"/> and assume that as the default, the delivery format for CalWS will, by default, be  <eref type="inline" bibitemid="xcal" citeas="Internet-Draft draft-daboo-et-al-icalendar-in-xml-11"/>.</p>
</li>
<li><p id="_f9fd811a-13b9-126d-d4da-5a6f304f9a1e">The CalDAV query allows the specification of a number of <tt>DAV</tt> properties. Specification of these properties, with the exception of  <tt>DAV:getetag</tt>, is considered an error in CalWS.</p>
</li>
<li><p id="_540c278c-e01e-15f4-92c7-68d64069ee67">The <tt>CalDAV:propnames</tt> element is invalid</p>
</li>
</ol>

<p id="_c28da6ab-c4f2-d545-c95a-d4211eb15b73">With those differences, the CalDAV specification is the normative reference for this operation.</p>

<clause id="_9173d974-46f1-42fc-9287-56630f500ddf" obligation="normative">
<title id="_8b18ae66-9d9b-8ab3-3065-5e4d425a6f90">Limiting data returned</title>
<p id="_e20e1f55-e5d5-05b9-e259-8791595cd687">This is achieved by specifying one of the following</p>

<ul id="_307a26b3-f76b-90cf-6505-81ab27d39303"><li><p id="_f66b8419-f803-b0a4-b15d-c1961bb7a37a"><tt>CalDAV:allprop</tt> return all properties (some properties are specified as not being part of the <tt>allprop</tt> set so are not returned)</p>
</li>
<li><p id="_576d7037-6081-ef50-89ff-25b608ce47c1"><tt>CalDAV:prop</tt> An element which contains a list of properties to be returned. May only contain <tt>DAV:getetag</tt> and <tt>CalDAV:calendar-data</tt></p>
</li>
</ul>

<p id="_554a5251-8dfa-a6a5-e754-a1c3e57fdc1e">Of particular interest, and complexity, is the calendar-data property which can contain a time range to limit the range of recurrences returned and/or a list of calendar properties to return.</p>
</clause>

<clause id="_893e7090-fd5f-5ec8-20e7-c974b3a85f2b" obligation="normative">
<title id="_2bc27448-1f65-7d89-1346-df2f25fdeb20">Pre/postconditions for calendar queries</title>
<p id="_06838e34-018b-fa0b-89f5-52c1df2ba610">The preconditions as defined in <eref type="inline" bibitemid="rfc4791" citeas="IETF RFC 4791"><localityStack><locality type="section"><referenceFrom>7.8</referenceFrom></locality></localityStack></eref> apply here. CalDav errors may be reported by the service when preconditions or postconditions are violated.</p>
</clause>

<clause id="_06f4964d-17b3-14c5-1eef-ce9783ac2ed2" obligation="normative">
<title id="_b60b84dd-c8f3-c302-a226-1e9cf92ed454">Example: time range limited retrieval</title>
<p id="_e15f4dfe-c10f-fd78-d0cf-e8ec3683bdbd">This example shows the time-range limited retrieval from a calendar which results in 2 events, one a recurring event and one a simple non-recurring event.</p>

<sourcecode id="_0b814648-404a-a786-cb3b-1e18c8db87c2" unnumbered="true"><body>&gt;&gt; Request &lt;&lt;

POST /user/fred/calendar/ HTTP/1.1
Host: calWS.example.com
Depth: 1
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;C:calendar-query xmlns:D="DAV:"
  xmlns:C="urn:ietf:params:xml:ns:caldav"&gt;
  &lt;D:prop&gt;
    &lt;D:getetag/&gt;
    &lt;C:calendar-data content-type="application/xml+calendar" &gt;
      &lt;C:comp name="VCALENDAR"&gt;
        &lt;C:prop name="VERSION"/&gt;
        &lt;C:comp name="VEVENT"&gt;
          &lt;C:prop name="SUMMARY"/&gt;
          &lt;C:prop name="UID"/&gt;
          &lt;C:prop name="DTSTART"/&gt;
          &lt;C:prop name="DTEND"/&gt;
          &lt;C:prop name="DURATION"/&gt;
          &lt;C:prop name="RRULE"/&gt;
          &lt;C:prop name="RDATE"/&gt;
          &lt;C:prop name="EXRULE"/&gt;
          &lt;C:prop name="EXDATE"/&gt;
          &lt;C:prop name="RECURRENCE-ID"/&gt;
        &lt;/C:comp&gt;
      &lt;/C:comp&gt;
    &lt;/C:calendar-data&gt;
  &lt;/D:prop&gt;
  &lt;C:filter&gt;
    &lt;C:comp-filter name="VCALENDAR"&gt;
      &lt;C:comp-filter name="VEVENT"&gt;
        &lt;C:time-range start="20060104T000000Z"
                      end="20060105T000000Z"/&gt;
      &lt;/C:comp-filter&gt;
    &lt;/C:comp-filter&gt;
  &lt;/C:filter&gt;
&lt;/C:calendar-query&gt;

&gt;&gt; Response &lt;&lt;

HTTP/1.1 207 Multi-Status
Date: Sat, 11 Nov 2006 09:32:12 GMT
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;D:multistatus xmlns:D="DAV:"
               xmlns:C="urn:ietf:params:xml:ns:caldav"&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://cal.example.com/bernard/work/abcd2.ics&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:getetag&gt;"fffff-abcd2"&lt;/D:getetag&gt;
        &lt;C:calendar-data content-type="application/xml+calendar" &gt;
          &lt;xc:icalendar
            xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
    &lt;xc:vcalendar&gt;
      &lt;xc:properties&gt;
      &lt;xc:calscale&gt;&lt;text&gt;GREGORIAN&lt;/text&gt;&lt;/xc:calscale&gt;
      &lt;xc:prodid&gt;
        &lt;xc:text&gt;-//Example Inc.//Example Calendar//EN&lt;/xc:text&gt;
      &lt;/xc:prodid&gt;
        &lt;xc:version&gt;&lt;xc:text&gt;2.0&lt;/xc:text&gt;&lt;/xc:version&gt;
      &lt;/xc:properties&gt;
      &lt;xc:components&gt;
        &lt;xc:vevent&gt;
          &lt;xc:properties&gt;
            &lt;xc:dtstart&gt;
              &lt;xc:parameters&gt;
                &lt;xc:tzid&gt;US/Eastern&lt;xc:tzid&gt;
              &lt;xc:parameters&gt;
              &lt;xc:date-time&gt;20060102T120000&lt;/xc:date-time&gt;
            &lt;/xc:dtstart&gt;
            &lt;xc:duration&gt;&lt;xc:duration&gt;PT1H&lt;/xc:duration&gt;&lt;/xc:duration&gt;
            &lt;xc:summary&gt;
              &lt;xc:text&gt;Event #2&lt;/xc:text&gt;
            &lt;/xc:summary&gt;
            &lt;xc:uid&gt;
              &lt;xc:text&gt;00959BC664CA650E933C892C@example.com&lt;/xc:text&gt;
            &lt;/xc:uid&gt;
            &lt;xc:rrule&gt;
              &lt;xc:recur&gt;
                &lt;xc:freq&gt;DAILY&lt;/xc:freq&gt;
                &lt;xc:count&gt;5&lt;/xc:count&gt;
              &lt;/xc:recur&gt;
            &lt;/xc:rrule&gt;
          &lt;/xc:properties&gt;
        &lt;/xc:vevent&gt;

        &lt;xc:vevent&gt;
          &lt;xc:properties&gt;
            &lt;xc:dtstart&gt;
              &lt;xc:parameters&gt;
                &lt;xc:tzid&gt;US/Eastern&lt;xc:tzid&gt;
              &lt;xc:parameters&gt;
              &lt;xc:date-time&gt;20060104T140000&lt;/xc:date-time&gt;
            &lt;/xc:dtstart&gt;
            &lt;xc:duration&gt;&lt;xc:duration&gt;PT1H&lt;/xc:duration&gt;&lt;/xc:duration&gt;
            &lt;xc:summary&gt;
              &lt;xc:text&gt;Event #2 bis&lt;/xc:text&gt;
            &lt;/xc:summary&gt;
            &lt;xc:uid&gt;
              &lt;xc:text&gt;00959BC664CA650E933C892C@example.com&lt;/xc:text&gt;
            &lt;/xc:uid&gt;
            &lt;xc:recurrence-id&gt;
              &lt;xc:parameters&gt;
                &lt;xc:tzid&gt;US/Eastern&lt;xc:tzid&gt;
              &lt;xc:parameters&gt;
              &lt;xc:date-time&gt;20060104T120000&lt;/xc:date-time&gt;
            &lt;/xc:recurrence-id&gt;
            &lt;xc:rrule&gt;
              &lt;xc:recur&gt;
                &lt;xc:freq&gt;DAILY&lt;/xc:freq&gt;
                &lt;xc:count&gt;5&lt;/xc:count&gt;
              &lt;/xc:recur&gt;
            &lt;/xc:rrule&gt;
          &lt;/xc:properties&gt;
        &lt;/xc:vevent&gt;

        &lt;xc:vevent&gt;
          &lt;xc:properties&gt;
            &lt;xc:dtstart&gt;
              &lt;xc:parameters&gt;
                &lt;xc:tzid&gt;US/Eastern&lt;xc:tzid&gt;
              &lt;xc:parameters&gt;
              &lt;xc:date-time&gt;20060106T140000&lt;/xc:date-time&gt;
            &lt;/xc:dtstart&gt;
            &lt;xc:duration&gt;&lt;xc:duration&gt;PT1H&lt;/xc:duration&gt;&lt;/xc:duration&gt;
            &lt;xc:summary&gt;
              &lt;xc:text&gt;Event #2 bis bis&lt;/xc:text&gt;
            &lt;/xc:summary&gt;
            &lt;xc:uid&gt;
              &lt;xc:text&gt;00959BC664CA650E933C892C@example.com&lt;/xc:text&gt;
            &lt;/xc:uid&gt;
            &lt;xc:recurrence-id&gt;
              &lt;xc:parameters&gt;
                &lt;xc:tzid&gt;US/Eastern&lt;xc:tzid&gt;
              &lt;xc:parameters&gt;
              &lt;xc:date-time&gt;20060106T120000&lt;/xc:date-time&gt;
            &lt;/xc:recurrence-id&gt;
            &lt;xc:rrule&gt;
              &lt;xc:recur&gt;
                &lt;xc:freq&gt;DAILY&lt;/xc:freq&gt;
                &lt;xc:count&gt;5&lt;/xc:count&gt;
              &lt;/xc:recur&gt;
            &lt;/xc:rrule&gt;
          &lt;/xc:properties&gt;
        &lt;/xc:vevent&gt;
      &lt;/xc:components&gt;
    &lt;/xc:vcalendar&gt;
  &lt;/xc:icalendar&gt;
            &lt;/C:calendar-data&gt;
          &lt;/D:prop&gt;
          &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
        &lt;/D:propstat&gt;
      &lt;/D:response&gt;
      &lt;D:response&gt;
        &lt;D:href&gt;http://cal.example.com/bernard/work/abcd3.ics&lt;/D:href&gt;
        &lt;D:propstat&gt;
          &lt;D:prop&gt;
            &lt;D:getetag&gt;"fffff-abcd3"&lt;/D:getetag&gt;
            &lt;C:calendar-data content-type="application/xml+calendar" &gt;
              &lt;xcal:icalendar
                xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
    &lt;xc:vcalendar&gt;
      &lt;xc:properties&gt;
        &lt;xc:calscale&gt;&lt;text&gt;GREGORIAN&lt;/text&gt;&lt;/xc:calscale&gt;
        &lt;xc:prodid&gt;
          &lt;xc:text&gt;-//Example Inc.//Example Calendar//EN&lt;/xc:text&gt;
        &lt;/xc:prodid&gt;
        &lt;xc:version&gt;&lt;xc:text&gt;2.0&lt;/xc:text&gt;&lt;/xc:version&gt;
      &lt;/xc:properties&gt;
      &lt;xc:components&gt;
        &lt;xc:vevent&gt;
          &lt;xc:properties&gt;
            &lt;xc:dtstart&gt;
              &lt;xc:parameters&gt;
                &lt;xc:tzid&gt;US/Eastern&lt;xc:tzid&gt;
              &lt;xc:parameters&gt;
              &lt;xc:date-time&gt;20060104T100000&lt;/xc:date-time&gt;
            &lt;/xc:dtstart&gt;
            &lt;xc:duration&gt;&lt;xc:duration&gt;PT1H&lt;/xc:duration&gt;&lt;/xc:duration&gt;
            &lt;xc:summary&gt;
              &lt;xc:text&gt;Event #3&lt;/xc:text&gt;
            &lt;/xc:summary&gt;
            &lt;xc:uid&gt;
              &lt;xc:text&gt;DC6C50A017428C5216A2F1CD@example.com&lt;/xc:text&gt;
            &lt;/xc:uid&gt;
            &lt;xc:rrule&gt;
              &lt;xc:recur&gt;
                &lt;xc:freq&gt;DAILY&lt;/xc:freq&gt;
                &lt;xc:count&gt;5&lt;/xc:count&gt;
              &lt;/xc:recur&gt;
            &lt;/xc:rrule&gt;
          &lt;/xc:properties&gt;
        &lt;/xc:vevent&gt;
      &lt;/xc:components&gt;
    &lt;/xc:vcalendar&gt;
  &lt;/xc:icalendar&gt;
        &lt;/C:calendar-data&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;</body></sourcecode>

</clause>
</clause>

<clause id="_1f9955d1-311d-93e7-68e5-1ddb084320b3" obligation="normative">
<title id="_9b1211a4-3a1b-c255-26ec-80a15c5dc054">Free-busy queries</title>
<p id="_55bc10c6-5ca6-af0c-4210-0925340049d9">Freebusy queries are used to obtain <tt>freebusy</tt> information for a calendar-collection or principals. The result contains information only for events to which the current principal has sufficient access.</p>

<p id="_2030c34f-7219-aec8-3e68-3b9f717f7e08">When targeted at a calendar collection the result is based only on the calendaring entities contained in that collection. When targeted at a principal  <tt>freebusy</tt> URL the result will be based on all information which affect the principals  <tt>freebusy</tt> status, for example availability.</p>

<p id="_9ebd2385-3a1b-88d5-f853-2a8d73b6f22f">The possible targets are:</p>

<ul id="_0cf1859e-b451-b9ee-04a6-fc3e4e84f8a4"><li><p id="_01f46ae5-4286-d121-f9e8-6cf86349d73e">A calendar collection URL</p>
</li>
<li><p id="_5d086180-5e1e-90d9-ce9a-9f3b6a563bd9">The XRD link with relation <tt>CalWS/current-principal-freebusy</tt></p>
</li>
<li><p id="_539ecb88-cc6a-299e-1002-ffeaddf4082e">The XRD link with relation <tt>CalWS/principal-freebusy</tt> with a principal given in the request.</p>
</li>
</ul>

<p id="_0baa54f1-aafd-ca6f-3237-8d35a7b602d5">The query follows the specification defined in <eref type="inline" bibitemid="fb" citeas="CalConnect CC/S 0903:2009"/> with certain limitations. As an authenticated user to the CalWS service scheduling  <tt>read-freebusy</tt> privileges must have been granted. As an unauthenticated user equivalent access must have been granted to unauthenticated access.</p>

<p id="_a18f4c97-9916-1bc9-279e-f23510dbefa2">Freebusy information is returned by default as <tt>xcalendar</tt> <tt>VFREEBUSY</tt> components, as defined by <eref type="inline" bibitemid="xcal" citeas="Internet-Draft draft-daboo-et-al-icalendar-in-xml-11"/>. Such a component is not meant to conform to the requirements of  <tt>VFREEBUSY</tt> components in <eref type="inline" bibitemid="rfc5546" citeas="IETF RFC 5546"/>. The <tt>VFREEBUSY</tt> component <tt>SHOULD</tt> conform to section “4.6.4 Free/Busy Component” of <eref type="inline" bibitemid="rfc5545" citeas="IETF RFC 5545"/>. A client <tt>SHOULD</tt> ignore the <tt>ORGANIZER</tt> field.</p>

<p id="_5994e23f-d2c9-b352-2833-e99f9dbd7004">Since a Freebusy query can only refer to a single user, a client will already know how to match the result component to a user. A server  <tt>MUST</tt> only return a single <tt>VFREEBUSY</tt> component.</p>

<clause id="_bd6793c1-2d2a-0521-608b-2ac69929a52a" obligation="normative">
<title id="_49307927-b943-f987-c4a9-88369d8d9d58"><tt>ACCEPT</tt> header</title>
<p id="_62464eff-4c63-9a9c-932f-8bb40a954792">The Accept header is used to specify the format for the returned data. In the absence of a header the data should be returned as specified in  <eref type="inline" bibitemid="xcal" citeas="Internet-Draft draft-daboo-et-al-icalendar-in-xml-11"/>, that is, as if the following had been specified</p>

<sourcecode id="_f25e0e24-5754-7ba0-59a3-3a3a197ff88a" unnumbered="true"><body>ACCEPT: application/xml+calendar</body></sourcecode>

</clause>

<clause id="_1202d87d-47eb-9695-76b1-60fa953637a1" obligation="normative">
<title id="_091bc2b2-1fa1-7bfe-fe9d-adc867980e65">URL Query Parameters</title>
<p id="_be69580d-15e9-0068-5210-519ee013756c">None of these parameters are required except for the conditions noted below. Appropriate defaults will be supplied by the server.</p>

<clause id="_9188df25-59a8-91b4-e133-23b5ffe79c43" obligation="normative">
<title id="_291cb0b9-515a-0e55-2e05-faea119a3a30"><tt>start</tt></title>
<dl id="_680899ab-5d12-a0e1-f132-847320ae9e9b"><dt>Default</dt>
<dd id="_d48a2fd1-0cf0-a67e-10c5-e3fded819e24"><p id="_edba13d6-c2e9-1829-4304-ddd8c48bde3d">The default value is left up to the server. It may be the current day, start of the current month, etc.</p>
</dd>
<dt>Description</dt>
<dd id="_d00238fb-5c6f-e8b7-0ed4-ebec7b2fe8cd"><p id="_76cbaece-6c62-96e6-d23c-d7b622e13651">Specifies the start date for the Freebusy data. The server is free to ignore this value and return data in any time range. The client must check the data for the returned time range.</p>
</dd>
<dt>Format</dt>
<dd id="_6f681624-1f3d-a467-7549-50e6d040da70"><p id="_7cf06891-472c-a59f-9da9-981b98eb5b2c">A profile of an <eref type="inline" bibitemid="rfc3339" citeas="IETF RFC 3339"/> Date/Time. Fractional time is not supported. The server <tt>MUST</tt> support the expanded version e.g.</p>
<p id="_6a1ef4c8-7b0e-5298-fde7-c378b1f34768"><tt>2007-01-02T13:00:00-08:00</tt></p>

<p id="_31ac7388-2534-59bc-1537-ab5e4bf679be">It is up to the server to interpret local date/times.</p>
</dd>
</dl>

<example id="_18594214-88b6-3778-4a21-5e199760c3e6"><p id="_6c64374b-834b-0cca-a9fe-518b68fcf933"><tt>2007-02-03T15:30:00-0800</tt><br/> <tt>2007-12-01T10:15:00Z</tt></p>
</example>

<note id="_d821d3b4-2892-f958-85d5-f18477118f5b"><p id="_87b9be76-454d-1186-081a-04b1c764ef75">Specifying only a start date/time without specifying an end-date/time or period should be interpreted as in  <eref type="inline" bibitemid="rfc5545" citeas="IETF RFC 5545"/>. The effective period should cover the remainder of that day.</p>
</note>

<p id="_c3f7321b-6f10-aa64-0e37-c4ccd3b145f0">Date-only values are disallowed as the server cannot determine the correct start of the day. Only UTC or date/time with offset values are permitted.</p>
</clause>

<clause id="_14fb4c4c-5506-66b0-020a-bac76cd40420" obligation="normative">
<title id="_93c2fb26-9709-9c9a-5e5d-e4e4879f3f7b"><tt>end</tt></title>
<dl id="_2ed76d29-adf1-cc59-cf7c-cb1b9106f994"><dt>Default</dt>
<dd id="_2e1f2338-f40b-c739-b3c7-768f8a5b73d8"><p id="_d8a57d70-7eb2-ca75-dbb7-8954f369ddf8">Same as <tt>start</tt></p>
</dd>
<dt>Description</dt>
<dd id="_a9a06001-277b-1311-0086-7c583917b31a"><p id="_8c9ce37f-32f9-bb69-d8d1-cc575957acc6">Specifies the end date for the Freebusy data. The server is free to ignore this value.</p>
</dd>
<dt>Format</dt>
<dd id="_e13a34e5-ffc4-f6cb-3c88-39b8790a17be"><p id="_4c71dab6-5cdc-23bd-dfe9-12f4ef6479cd">Same as <tt>start</tt></p>
</dd>
<dt>Example</dt>
<dd id="_c6c2a865-7007-f271-2c59-ecf14625d7b1"><p id="_73fc040e-00f6-f93c-c077-e7bb45e49516">Same as <tt>start</tt></p>
</dd>
</dl>
</clause>

<clause id="_57e6baae-6f76-9e12-9da1-71d096823088" obligation="normative">
<title id="_92d31da0-4ef6-9aa7-58c3-bd164455513c"><tt>period</tt></title>
<dl id="_76d13874-2e95-9e03-8d89-61355e120d12"><dt>Default</dt>
<dd id="_e461e5c0-7353-c775-b153-862c68f37502"><p id="_343f7a70-7c32-7140-44eb-396884fa02f1">The default value is left up to the server. The recommended value is “P42D”.</p>
</dd>
<dt>Description</dt>
<dd id="_6e1b7715-f91d-d347-35be-bd7ca938252f"><p id="_98353f3d-df82-1985-a120-2b823a755312">Specifies the amount of Freebusy data to return. A client cannot specify both a period and an end date. Period is relative to the start parameter.</p>
</dd>
<dt>Format</dt>
<dd id="_afec901d-7b68-f972-cc16-e682a1eb5e3d"><p id="_aa1728a3-3975-c103-2730-35f6f167c323">A duration as defined in <eref type="inline" bibitemid="rfc5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>4.3.6</referenceFrom></locality></localityStack></eref></p>
</dd>
</dl>

<example id="_1d9168ec-33e5-6c41-eacb-e006f72177b1"><p id="_7bb9d2d3-2000-2a43-d1d2-daccad6a336c"><tt>P42D</tt></p>
</example>
</clause>

<clause id="_3c673f95-70cb-65a3-1311-8ca92a98802f" obligation="normative">
<title id="_258da9f1-0bd0-dd66-2fa9-acaad744b061"><tt>account</tt></title>
<dl id="_b192201f-60b0-c5e2-e8d4-d8b96884965f"><dt>Default</dt>
<dd id="_aafc051e-8c1a-5aea-c2c3-d338f6bd3c6e"><p id="_44edd24b-6653-fc96-2491-fb553dac63ec">none</p>
</dd>
<dt>Description</dt>
<dd id="_067abc0d-62cf-52be-de3b-684181061ef0"><p id="_801d4f1c-0345-dbd3-c329-f4a29a5bcbf9">Specifies the principal when the request is targeted at the XRD <tt>CalWS/principal-freebusy</tt>. Specification of this parameter is an error otherwise.</p>
</dd>
<dt>Format</dt>
<dd id="_b731a81c-d86c-5035-3ad7-a3f562ee2616"><p id="_89465aed-9cfd-cf15-42a5-4b326de3a1cb">Server specific</p>
</dd>
</dl>

<example id="_100df1c4-c114-129a-03a4-79ae1a891d84"><sourcecode id="_41ae36c7-88de-fa2a-450d-1aa746595b83" unnumbered="true"><body>fred
/principals/users/jim
user1@example.com</body></sourcecode> </example>
</clause>
</clause>

<clause id="_6d6ee71a-a9bd-98c1-879a-c2c2284ab753" obligation="normative">
<title id="_c0f3fe83-4b9f-4177-a69b-77f1e5d5b56a">URL parameters — notes</title>
<p id="_29ac159f-130f-0df8-1e88-320286bb9e02">The server is free to ignore the start, end and period parameters. It is recommended that the server return at least 6 weeks of data from the current day.</p>

<p id="_d608e83a-c8f4-1ed1-a86b-33409ecf3e8e">A client <tt>MUST</tt> check the time range in the <tt>VFREEBUSY</tt> response as a server may return a different time range than the requested range.</p>
</clause>

<clause id="_9a6c9ba1-66cb-442a-9eff-1073f149c643" obligation="normative">
<title id="_305719a9-752b-2248-97bf-f7cdab9a9931">HTTP Operations</title>
<p id="_2b5c3802-b97d-7233-3ecd-c109d1cc2252">The server <tt>SHOULD</tt> return an Etag response header for a successful <tt>GET</tt> request targeting a Freebusy read URL. Clients  <tt>MAY</tt> use the Etag response header value to do subsequent “conditional” <tt>GET</tt> requests that will avoid re-sending the Freebusy data again if it has not changed.</p>
</clause>

<clause id="_4b519a44-e168-1c1c-3401-8da99f271c18" obligation="normative">
<title id="_c4c2f913-4ce1-c1ad-5ea1-aebbd995112f">Response Codes</title>
<p id="_ea5c2d0b-39aa-8077-edcf-ba38da8e7f76">Below are the typical status codes returned by a <tt>GET</tt> request targeting a Freebusy URL. Note that other HTTP status codes not listed here might also be returned by a server.</p>

<ul id="_ac8c503c-eaa7-a3d7-3351-f7c5ef41fddb"><li><p id="_a67b69bc-a371-1e3b-575f-40bb4cb817a8">200 OK</p>
</li>
<li><p id="_dd2800d9-75d8-a599-83f7-195e66de6049">302 Found</p>
</li>
<li><p id="_66fe219f-7978-0e67-22e7-d5925d2ec6e5">400 Start parameter could not be understood / End parameter could not be understood / Period parameter could not be understood</p>
</li>
<li><p id="_9b756fca-3fe0-576a-abd7-469803396625">401 Unauthorized</p>
</li>
<li><p id="_9fce6c9c-6484-99a9-2ef7-e297625b8cf6">403 Forbidden</p>
</li>
<li><p id="_121f7aee-25d8-0736-ab74-ff9cbeba81c6">404 The data for the requested principal is not currently available, but may be available later.</p>
</li>
<li><p id="_81b36245-2397-41be-96bc-4569a4d8625a">406 The requested format in the accept header is not supported.</p>
</li>
<li><p id="_ea1f6fc7-4c64-77c8-00a1-b6a1168d3201">410 The data for the requested principal is no longer available</p>
</li>
<li><p id="_b113525b-d6d6-70ed-32ce-68245ff98502">500 General server error</p>
</li>
</ul>
</clause>

<clause id="_e943a648-79d6-19df-56d5-5a617336d17e" obligation="normative">
<title id="_a39b2f79-9f0f-bcf6-23cd-ea7cc495a90f">Examples</title>
<p id="_0fdc8939-27de-8b7f-3565-c42eac6f5f63">The following are examples of URLs used to retrieve Freebusy data for a user:</p>

<example id="_7aa860c5-3b05-c3b7-4645-1686117d92a6"><sourcecode id="_9bd25790-66e7-7b66-1896-a07db0d2f68e" unnumbered="true"><body>http://www.example.com/freebusy/user1@example.com?
start=2007-09-01T00:00:00-08:00&amp;end=2007-09-31T00:00:00-08:00

http://www.example.com/freebusy/user1@example.com?
start=2007-09-01T00:00:00-08:00&amp;end=2007-09-31T00:00:00-08:00

http://www.example.com/freebusy/user1@example.com

http://www.example.com/freebusy?user=user%201@example.com&amp;
start=2008-01-01T00:00:00Z&amp;end=2008-12-31T00:00:00Z</body></sourcecode> </example>

<p id="_37217f37-aa34-bfa4-da28-79801985e2bb">Some Request/Response Examples:</p>

<example id="_a78a1186-4041-f19c-a26c-f2a56661dd4a">
<name id="_52fbd1cb-1038-b91c-e238-f80e314aab17">A URL with no query parameters</name>
<sourcecode id="_065d851a-ae4b-9664-de5a-23ca8014fec1" unnumbered="true"><body>&gt;&gt; Request &lt;&lt;
GET /freebusy/bernard/ HTTP/1.1
Host: www.example.com

&gt;&gt; Response &lt;&lt;
HTTP/1.1 200 OK
Content-Type: application/xml+calendar; charset="utf-8"
Content-Length: xxxx

&lt;xc:icalendar xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
  &lt;xc:vcalendar&gt;
    &lt;xc:properties&gt;
      &lt;xc:calscale&gt;&lt;text&gt;GREGORIAN&lt;/text&gt;&lt;/xc:calscale&gt;
      &lt;xc:prodid&gt;
        &lt;xc:text&gt;-//Example Inc.//Example Calendar//EN&lt;/xc:text&gt;
      &lt;/xc:prodid&gt;
      &lt;xc:version&gt;&lt;xc:text&gt;2.0&lt;/xc:text&gt;&lt;/xc:version&gt;
    &lt;/xc:properties&gt;
    &lt;xc:components&gt;
      &lt;xc:vfreebusy&gt;
        &lt;xc:properties&gt;
          &lt;xc:uid&gt;
            &lt;xc:text&gt;76ef34-54a3d2@example.com&lt;/xc:text&gt;
          &lt;/xc:uid&gt;
          &lt;xc:dtstart&gt;
            &lt;xc:date-time&gt;20060101T000000Z&lt;/xc:date-time&gt;
          &lt;/xc:dtstart&gt;
          &lt;xc:dtend&gt;
            &lt;xc:date-time&gt;20060108T000000Z&lt;/xc:date-time&gt;
          &lt;/xc:dtend&gt;
          &lt;xc:dtstamp&gt;
            &lt;xc:date-time&gt;20050530T123421Z&lt;/xc:date-time&gt;
          &lt;/xc:dtstamp&gt;
          &lt;xc:freebusy&gt;
            &lt;xc:parameters&gt;
              &lt;xc:fbtype&gt;BUSYTENTATIVE&lt;xc:fbtype&gt;
            &lt;xc:parameters&gt;
            &lt;xc:period&gt;20060102T100000Z/20060102T120000Z&lt;/xc:period&gt;
          &lt;/xc:freebusy&gt;
          &lt;xc:freebusy&gt;
            &lt;xc:period&gt;20060103T100000Z/20060103T120000Z&lt;/xc:period&gt;
          &lt;/xc:freebusy&gt;
          &lt;xc:freebusy&gt;
            &lt;xc:period&gt;20060104T100000Z/20060104T120000Z&lt;/xc:period&gt;
          &lt;/xc:freebusy&gt;
          &lt;xc:freebusy&gt;
            &lt;xc:parameters&gt;
              &lt;xc:fbtype&gt;BUSYUNAVAILABLE&lt;xc:fbtype&gt;
            &lt;xc:parameters&gt;
            &lt;xc:period&gt;20060105T100000Z/20060105T120000Z&lt;/xc:period&gt;
          &lt;/xc:freebusy&gt;
          &lt;xc:freebusy&gt;
            &lt;xc:period&gt;20060106T100000Z/20060106T120000Z&lt;/xc:period&gt;
          &lt;/xc:freebusy&gt;
        &lt;/xc:vfreebusy&gt;
      &lt;/xc:components&gt;
    &lt;/xc:vcalendar&gt;
&lt;xc:icalendar&gt;</body></sourcecode>

</example>

<example id="_69c76220-09c3-a6ed-4690-3d9b83bc958f">
<name id="_c02f2a85-f513-d4bb-f772-5d5b78afcdb7">A URL with start and end parameters</name>
<sourcecode id="_3e1a0671-6acd-6482-73ef-dc5ac7c27d85" unnumbered="true"><body>&gt;&gt; Request &lt;&lt;
GET /freebusy/user1@example.com?start=2007-09-01T00:00:00-08:00&amp;end=2007-09-31T00:00:00-
08:00
HTTP/1.1
Host: www.example.com

&gt;&gt; Response &lt;&lt;
HTTP/1.1 200 OK
Content-Type: application/xml+calendar; charset="utf-8"
Content-Length: xxxx

&lt;xc:icalendar xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0"&gt;
  &lt;xc:vcalendar&gt;
    &lt;xc:properties&gt;
       &lt;xc:calscale&gt;&lt;text&gt;GREGORIAN&lt;/text&gt;&lt;/xc:calscale&gt;
       &lt;xc:prodid&gt;
         &lt;xc:text&gt;-//Example Inc.//Example Calendar//EN&lt;/xc:text&gt;
       &lt;/xc:prodid&gt;
       &lt;xc:version&gt;&lt;xc:text&gt;2.0&lt;/xc:text&gt;&lt;/xc:version&gt;
     &lt;/xc:properties&gt;
     &lt;xc:components&gt;
       &lt;xc:vfreebusy&gt;
         &lt;xc:properties&gt;
           &lt;xc:uid&gt;
             &lt;xc:text&gt;76ef34-54a3d2@example.com&lt;/xc:text&gt;
           &lt;/xc:uid&gt;
           &lt;xc:dtstart&gt;
             &lt;xc:date-time&gt;20070901T000000Z&lt;/xc:date-time&gt;
           &lt;/xc:dtstart&gt;
           &lt;xc:dtend&gt;
             &lt;xc:date-time&gt;20070931T000000Z&lt;/xc:date-time&gt;
           &lt;/xc:dtend&gt;
           &lt;xc:dtstamp&gt;
             &lt;xc:date-time&gt;20050530T123421Z&lt;/xc:date-time&gt;
           &lt;/xc:dtstamp&gt;
           &lt;xc:freebusy&gt;
             &lt;xc:period&gt;20070915T230000Z/20070916T010000Z&lt;/xc:period&gt;
           &lt;/xc:freebusy&gt;
         &lt;/xc:vfreebusy&gt;
       &lt;/xc:components&gt;
     &lt;/xc:vcalendar&gt;
&lt;xc:icalendar&gt;</body></sourcecode>

</example>

<example id="_a00f5ee1-bc67-77a7-adf2-497af0f0e072">
<name id="_aa55345e-c237-1d57-8668-0a86f6ea4348">A URL for which the server does not have any data for that user</name>
<sourcecode id="_e340668b-d5f6-e23a-aa4a-f24bb4540a4d" unnumbered="true"><body>&gt;&gt; Request &lt;&lt;
GET /freebusy/user1@example.com?start=2012-12-01T00:00:00-08:00&amp;end=2012-12-31T00:00:00-
08:00
HTTP/1.1
Host: www.example.com

&gt;&gt; Response &lt;&lt;
HTTP/1.1 404 No data</body></sourcecode>

</example>
</clause>
</clause>

<clause id="_31f11f98-9ac0-b5ba-4085-ace725305755" obligation="normative">
<title id="_be1d665a-abde-6b0e-a587-e76ed7c9a3ce">Conformance</title>
<p id="_1fdc4b57-0a32-9c5e-1b23-6424700ce2c7">The last numbered section in the specification must be the Conformance section. Conformance Statements/Clauses go here.</p>
</clause>

<clause id="_1439a343-4df4-a33b-b98f-a3a5bceb7bf6" obligation="normative">
<title id="_d1caefb0-5673-d6e5-5354-98075070285b">Acknowledgments</title>
<p id="_468666bf-432c-ca51-b1de-3b1eae578df7">The following individuals have participated in the creation of this specification and are gratefully acknowledged</p>

<p id="_24cc1140-78c5-3462-fbf5-75fb8e47c813">Participants:</p>

<ul id="_677ca4e9-afb2-d212-7a53-fe8e9b0f576b"><li><p id="_22d368d8-79dc-f2a3-145b-63c5c0eba7ab">Bruce Bartell, Southern California Edison</p>
</li>
<li><p id="_c07f0908-0018-e874-9785-5f04869aa9b2">Brad Benson, Trane</p>
</li>
<li><p id="_9c6e0ae0-779a-d386-d5de-d9c369726b3b">Edward Cazalet, Individual</p>
</li>
<li><p id="_ae1b9fac-ef16-9a0c-93fe-23aab98cd0f8">Toby Considine, University of North Carolina at Chapel Hill</p>
</li>
<li><p id="_1abf64d7-8dc4-e929-4f9e-fcf7e72a9c95">William Cox, Individual</p>
</li>
<li><p id="_11f45044-af1c-60b0-4872-1392d3ad1b9b">Sharon Dinges, Trane</p>
</li>
<li><p id="_522657a0-226c-4c23-be59-675126e6f434">Mike, Douglass, Rensselaer Polytechnic Institute</p>
</li>
<li><p id="_1454727d-81c2-8490-e623-c2cd280484f5">Craig Gemmill, Tridium, Inc.</p>
</li>
<li><p id="_51755634-fa7e-d0ef-91d6-15da1578eeef">Girish Ghatikar, Lawrence Berkeley National Laboratory</p>
</li>
<li><p id="_3888cd2d-2648-44b8-5102-a62e6fec6c75">Gerald Gray, Southern California Edison</p>
</li>
<li><p id="_c9f25998-c3d3-3df1-338c-df169fa87572">David Hardin, ENERNOC</p>
</li>
<li><p id="_00000ccc-2648-1d49-433f-63df8b15a384">Gale Horst, Electric Power Research Institute (EPRI)</p>
</li>
<li><p id="_d2e071ad-ae8c-2a93-ca1d-73fe541f67b4">Gershon Janssen, Individual</p>
</li>
<li><p id="_4b8026d4-c200-5574-c046-d897a0b9e4ab">Ed Koch, Akuacom Inc.</p>
</li>
<li><p id="_11f7b09e-b831-9b4c-6a3c-16e68c894e93">Benoit Lepeuple, LonMark International*</p>
</li>
<li><p id="_8c50f522-2914-eeae-fefd-65dd74c06c51">Carl Mattocks, CheckMi*</p>
</li>
<li><p id="_4af0d028-4c81-66d7-5626-cd26908dd247">Robert Old, Siemens AG</p>
</li>
<li><p id="_194a30e9-6dd4-026d-59f9-e624f746bb9b">Alexander Papaspyrou, Technische Universitat Dortmund</p>
</li>
<li><p id="_2aec3830-43b7-5b19-d6cf-da1a015d2925">Joshua Phillips, ISO/RTO Council (IRC)</p>
</li>
<li><p id="_6178b815-91de-d1f7-d396-1d3bb743aa77">Jeremy J. Roberts, LonMark International</p>
</li>
<li><p id="_15cd53df-8709-6207-b3d7-cf7e91e51354">David Thewlis, CalConnect</p>
</li>
</ul>

<p id="_d49b9d8d-58f1-0fb7-c1b6-f8a8189d189e">The Calendaring and Scheduling Consortium (CalConnect) TC-XML committee worked closely with WS1013 Calendar Technical Committee, bridging to developing IETF standards and contributing the services definitions that make up Services in Section 4. The Technical Committee gratefully acknowledges their assistance and cooperation as well. Contributors to TC XML include:</p>

<ul id="_5c09da2a-fe7a-a457-9190-80385fe6e660"><li><p id="_d3c0f1b9-f0e6-3528-1948-d56b5129d133">Cyrus Daboo, Apple</p>
</li>
<li><p id="_957e0a75-3947-9860-1ece-1afc58913f33">Mike Douglass, Rensselaer Polytechnic Institute</p>
</li>
<li><p id="_dff78e94-4d10-cdef-bd65-39c9760f0c36">Steven Lees, Microsoft</p>
</li>
<li><p id="_13b87cf8-086e-d572-0859-97e38cd6e348">Tong Li, IBM</p>
</li>
</ul>
</clause>




</sections><annex id="_15993096-1aac-5bf5-7e71-768129261c00" obligation="informative">
<title id="_41ad1bab-1ee5-93dc-a0a8-4f18cdb051c4">An Introduction to Internet Calendaring</title>
<p id="_dc37a6d5-8a68-f313-b20c-7f408182d4ea"><em>The WS-Calendar Technical Committee thanks CalConnect for contributing this overview of iCalendar and its use.</em></p>

<clause id="_5cf34067-afe8-8239-ad04-54b4b0dd5232" obligation="informative">
<title id="_9c37bb54-552b-53bc-faea-582a3737d60f">iCalendar</title>
<clause id="_a64b51c7-d723-e5ed-3880-76bc982daa1f" obligation="informative">
<title id="_aba8c0a5-82a2-4404-8c0f-524fa641423f">History</title>
<p id="_136e90e0-d00b-ef98-5299-abfe073fe668">The iCalendar specification was first produced by the IETF in 1998 as <eref type="inline" bibitemid="rfc2445" citeas="IETF RFC 2445"/>. Since then it has become the dominant standard for calendar data interchange on the internet and between devices (desktop computers, mobile phones etc.). The specification was revised in 2009 as  <eref type="inline" bibitemid="rfc5545" citeas="IETF RFC 5545"/>.</p>

<p id="_3eff2000-c275-7c09-d96d-5c6f06ecd4b6">Alongside iCalendar is the iTIP specification (<eref type="inline" bibitemid="rfc2446" citeas="IETF RFC 2446"/> and revised as <eref type="inline" bibitemid="rfc5546" citeas="IETF RFC 5546"/>) that defines how iCalendar is used to carry out scheduling operations (for example, how an organizer can invite attendees to a meeting and receive their replies). This forms the basis for email-based scheduling using iMIP (the specification that describes how to use iTIP with email — <eref type="inline" bibitemid="rfc6047" citeas="IETF RFC 6047"/>).</p>

<p id="_06212393-8af9-a0f1-a0d2-1308a4cae83e">iCalendar itself is a text-based data format. However, an XML format is also available, providing a one-to1034 one mapping to the text format (<eref type="inline" bibitemid="draft" citeas="Internet-Draft draft-daboo-et-al-icalendar-in-xml-11"/>).</p>

<p id="_84f749a1-81a9-7b19-8f2b-cd6e817ba04e">iCalendar data files typically have a .ics file name extension. Most desktop calendar clients can import or export iCalendar data, or directly access such data over the Internet using a variety of protocols.</p>
</clause>

<clause id="_038c3575-6d27-8b00-e8dd-77b776c25bdd" obligation="informative">
<title id="_03f74c10-9150-6d3d-ada5-664267907f9d">Data model</title>
<p id="_fb76df3a-be0b-cefa-9c3b-e47323cf665a">The iCalendar data format has a well defined data model. “iCalendar objects” encompass a set of “iCalendar Components” each of which contains a set of “iCalendar properties” and possibly other sub- Components. An iCalendar property consists of a name, a set of optional parameters (specified as “key1041 value” pairs) and a value.</p>

<p id="_df3bc966-7ff5-4a11-4a8e-781bb262d518">iCalendar Components include:</p>

<ul id="_b8614689-652d-b2a7-0433-eadf6cd705cd"><li><p id="_f82181cc-2af3-49db-04d5-c7facc5e7593">“<tt>VEVENT</tt>” which represents an event</p>
</li>
<li><p id="_6cdeaf93-24f6-b4f6-4240-3105e0f947da">“<tt>VTODO</tt>” which represents a task or to-do</p>
</li>
<li><p id="_425fa7d3-058b-5e79-09d9-4ff906c495d4">“<tt>VJOURNAL</tt>” which represents a journal entry</p>
</li>
<li><p id="_c455917b-23d6-567b-9159-f2e23a32531d">“<tt>VFREEBUSY</tt>” which represents periods of free or busy time information</p>
</li>
<li><p id="_88e301b4-b3b6-0db0-f2f4-c95eaea15966">“<tt>VTIMEZONE</tt>” which represents a timezone definition (timezone offset and daylight saving rules)</p>
</li>
<li><p id="_ec339887-3e15-0e46-565a-878c51c229a5">“<tt>VALARM</tt>” is currently the only defined sub-Component and is used to set alarms or reminders on events or tasks.</p>
</li>
</ul>

<p id="_0110dcb1-e706-1b21-6fbb-7be54b61477c">Properties include:</p>

<ul id="_b6b8b440-c612-a1d9-1f3d-180bf33f1609"><li><p id="_14b7daaf-eab4-35eb-39b6-0498e209eccb">“<tt>DTSTART</tt>” which represents a start time for a Component</p>
</li>
<li><p id="_3b56c148-be66-5b90-e988-eee110c7e064">“<tt>DTEND</tt>” which represents an end time for a Component</p>
</li>
<li><p id="_01de401e-f715-a27c-b985-456d6a20dda1">“<tt>SUMMARY</tt>” which represents a title or summary for a Component</p>
</li>
<li><p id="_9436ee28-ce0d-b31f-073d-2524219a6c97">“<tt>RRULE</tt>” which can specify rules for repeating events or tasks (for example, every day, every week on Tuesdays, etc.)</p>
</li>
<li><p id="_6c8b9d89-4f10-13bb-ac8e-733ba8f15d86">“<tt>ORGANIZER</tt>” which represents the calendar user who is organizing an event or assigning a task</p>
</li>
<li><p id="_bad15bdf-0a50-118c-7967-72bfc7aed9fa">“<tt>ATTENDEE</tt>” which represents calendar users attending an event or assigned a task</p>
</li>
</ul>

<p id="_0179bdac-c50d-4281-afb4-3c07a5082682">In addition to this data model and the pre-defined properties, the specification defines how all those are used together to define the semantics of calendar objects and scheduling. The semantics are basically a set of rules stating how all the Components and properties are used together to ensure that all iCalendar products can work together to achieve good interoperability. For example, a rule requires that all events must have one and only one “<tt>DTSTART</tt>” property. The most important part of the iCalendar specification is the semantics of the calendaring model that it represents. The 1063 use of text or XML to encode those is secondary.</p>
</clause>

<clause id="_28362849-efe3-d58c-b698-93050277656e" obligation="informative">
<title id="_f2ec8eb0-0778-7a75-c32c-df269d54c459">Scheduling</title>
<p id="_bc4d0e71-dd9b-a7c2-8557-96b4348ea63b">The iTIP specification defines how iCalendar objects are exchanged in order to accomplish the key task needed to schedule events or tasks. An example of a simple workflow is as follows:</p>

<ol id="_e6fbf4de-0134-1273-6ad2-37bf7d01178d" type="arabic"><li><p id="_48c31759-6a73-f225-abc9-d1299b59732d">To schedule an event, an organizer creates the iCalendar object representing the event and adds calendar users as attendees.</p>
</li>
<li><p id="_a3773498-f9bf-1b7e-359d-5d3770bcd6bd">The organizer then sends an iTIP “<tt>REQUEST</tt>” message to all the attendees.</p>
</li>
<li><p id="_15c8889e-7993-75b3-b521-76cfae41ba38">Upon receipt of the scheduling message, each attendee can decide whether they want to attend the meeting or not.</p>
</li>
<li><p id="_cfb8a53b-a3d6-2699-9f79-ef402212a609">Each attendee can then respond back to the organizer using an iTIP “REPLY” message indicating their own attendance status.</p>
</li>
</ol>

<p id="_b9037056-4416-107d-052d-3a6555f6147d">iTIP supports other types of scheduling messages, for example, to cancel meetings, add new instances to a repeating meeting, etc.</p>
</clause>

<clause id="_b43f56ca-24bf-4a92-0924-835c10aadf50" obligation="informative">
<title id="_6c9370e4-c47a-ce74-3f00-581db7a38178">Extensibility</title>
<p id="_60c70a36-c4df-844a-cac1-bb4047373022">iCalendar was designed to be extensible, allowing for new Components, properties and parameters to be defined as needed. A registry exists to maintain the list of standard extensions with references to their definitions to ensure anyone can use them and work well with others.</p>
</clause>
</clause>

<clause id="_6d2cd6e2-2729-f6ed-5d2a-59e91e23f92a" obligation="informative">
<title id="_af533b8c-a1a9-8616-df01-6cb9cb5c7646">Calendar data access and exchange protocols</title>
<clause id="_fce696c0-cced-237b-bddd-047d26b08560" obligation="informative">
<title id="_6b823fe8-8199-746d-21f7-4d2aa44add5c">Internet Calendar Subscriptions</title>
<p id="_1965cb67-8f54-ac02-e4e9-6c405f287ec0">An Internet calendar subscription is simply an iCalendar data file made available on a web server. Users can use this data in two ways:</p>

<ul id="_6cea096b-e4a3-e5dd-a306-62ba48c1179a"><li><p id="_485b8a91-fca4-21e3-7b05-7fb8166e69ac">The data can be downloaded from the web server and then imported directly into an iCalendar aware client. This solution works well for calendar data that is not likely to change over time (for example the list of national holidays for the next year).</p>
</li>
<li><p id="_6722aab8-c036-4ecf-a3df-25f746ecb16f">Calendar clients that support “direct” subscriptions can use the URL to the calendar data on the web server to download the calendar data themselves. Additionally, the clients can check the web server on a regular basis for updates to the calendar data, and then update their own cached copy of it. This allows calendar data that changes over time to be kept synchronized.</p>
</li>
</ul>
</clause>

<clause id="_20b9ea92-a5a7-a237-9b7a-61377ce18d86" obligation="informative">
<title id="_ffa14a48-cf47-a9ff-e3fc-c0656ab26c24">CalDAV</title>
<p id="_1a546112-fbc5-d403-8657-523035aaaae2">CalDAV is a calendar access protocol and is defined in <eref type="inline" bibitemid="rfc4791" citeas="IETF RFC 4791"/>. The protocol is based on WebDAV which is an extension to HTTP that provides enhanced capabilities for document management on web servers.</p>

<p id="_e34a466a-8817-a06f-c273-0eebc7932f60">CalDAV is used in a variety of different environments, ranging from very large internet service providers, to large and small corporations or institutions, and to small businesses and individuals.</p>

<p id="_4e380256-753f-295f-d349-36ff229c2a59">CalDAV clients include desktop applications, mobile devices and browser-based solutions. It can also be used by “applets”, for example, a web page panel that displays a user’s upcoming events.</p>

<p id="_6e9f26f9-f685-42eb-f964-b6d1554fa27b">One of the key aspects of CalDAV is its data model. Simply put, it defines a “calendar home” for each calendar user, within which any number of “calendars” can be created. Each “calendar” can contain any number of iCalendar objects representing individual events, tasks or journal entries. This data model ensures that clients and servers can interoperate well.</p>

<p id="_45e4adb9-3ae6-5347-6f8c-c3758c6cf935">In addition to providing simple operations to read, write and delete calendar data, CalDAV provides a querying mechanism to allow clients to fetch calendar data matching specific criteria. This is commonly used by clients to do “time-range” queries, i.e., find the set of 1106 events that occur within a given start/end time period.</p>

<p id="_f355b524-57cb-e235-d5ae-0b451ff18b61">CalDAV also supports access control allowing for features such as delegated calendars and calendar sharing.</p>

<p id="_2d536f94-c681-eb13-4bfc-8a1234c92983">CalDAV also specifies how scheduling operations can be done using the protocol. Whilst it uses the semantics of the iTIP protocol, it simplifies the process by allowing simple calendar data write operations to trigger the sending of scheduling messages, and it has the server automatically process the receipt of scheduling messages. Scheduling can be done with other users on the CalDAV server or with calendar users on other systems (via some form of “gateway”).</p>
</clause>

<clause id="_29cd6095-b4d4-6cf4-ff55-d028cc5d0536" obligation="informative">
<title id="_b08227ca-3029-67f4-f69d-5ba52bd4fd5a">ActiveSync/SyncML</title>
<p id="_1af8bfd7-071b-8f04-9bb6-bfd11f2ac014">ActiveSync and SyncML are technologies that allow multiple devices to synchronize data with a server, with calendar data being one of the classes of data supported. These have typically been used for low1118 end and high-end mobile devices.</p>
</clause>

<clause id="_672d918c-5776-4c78-5a78-545a962d1c62" obligation="informative">
<title id="_0f3c81c5-2a20-39c9-59ae-75bce778c0e2">CalWS</title>
<p id="_965d3e5c-cf67-de87-4970-da21744573e6">CalWS refers to a set of web services calendar access APIs developed under a cooperative agreement between The Calendaring and Scheduling Consortium (CalConnect) and OASIS, and being published as a work product of the WS-Calendar Technical Committee. CalWS defines an API to access and manipulate calendar data stored on a server. It follows a similar data model to CalDAV and has been designed to co-exist with a CalDAV service offering the same data.</p>

<p id="_2c816383-8fca-8ecc-97b2-6dc8222a8473">This specification is part of the CalWS set.</p>
</clause>

<clause id="_9d4986ee-3c42-df60-cdb8-b033cfa7c7c2" obligation="informative">
<title id="_18c103bf-ea3f-7407-ae10-3afd87442065">iSchedule</title>
<p id="_8746ebd7-acf9-b4cb-80f2-38858d6a2b35">iSchedule is a protocol to allow scheduling between users on different calendaring systems and across different internet domains. It transports iTIP scheduling messages using HTTP between servers. Servers use DNS and various security mechanisms to determine the authenticity of messages received.</p>

<p id="_99542033-e746-fb97-605d-7e1f41599a50">It has been specifically designed to be independent of any calendar system in use at the endpoints, so that it is compatible with many different systems. This allows organizations with different calendar systems to exchange scheduling messages with each other, and also allows a single organization with multiple calendar systems (for example due to mergers, or different departmental requirements) to exchange scheduling messages between users of each system.</p>
</clause>
</clause>
</annex><bibliography><references id="_8670f769-87da-2d80-9c12-b8da022f240d" normative="true" obligation="informative">
<title id="_270c5ee6-077e-f285-ff95-287984a30140">Normative references</title><p id="_49996d2b-65c1-916b-9bbf-42b933aa0025">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
<bibitem id="_12641e30-1620-761b-d372-20447acfa629" type="standard" schema-version="v1.5.6" anchor="rfc2119">
  <fetched>2026-05-13</fetched>
  
<title type="main">Key words for use in RFCs to Indicate Requirement Levels</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2119</uri>
  <docidentifier type="IETF" primary="true">RFC 2119</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2119</docidentifier>
  <docnumber>RFC2119</docnumber>
  <date type="published">
    <on>1997-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Bradner</surname>          <completename language="en" script="Latn">S. Bradner</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_92d80742-2184-c402-5724-376a568f58ca">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</p>

  </abstract>
  <status>
    <stage>BEST CURRENT PRACTICE</stage>
  </status>
  <series>
    
<title>BCP</title>

    <number>14</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>2119</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>Standards</vocab>
  </keyword>
  <keyword>
    <vocab>Track</vocab>
  </keyword>
  <keyword>
    <vocab>Documents</vocab>
  </keyword>
</bibitem>
<bibitem id="_5ebf4618-0c43-19a4-4660-eff7ed8f44d9" type="standard" schema-version="v1.5.6" anchor="rfc4791">
  <fetched>2026-05-13</fetched>
  
<title type="main">Calendaring Extensions to WebDAV (CalDAV)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc4791</uri>
  <docidentifier type="IETF" primary="true">RFC 4791</docidentifier>
  <docidentifier type="DOI">10.17487/RFC4791</docidentifier>
  <docnumber>RFC4791</docnumber>
  <date type="published">
    <on>2007-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Desruisseaux</surname>          <completename language="en" script="Latn">B. Desruisseaux</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Dusseault</surname>          <completename language="en" script="Latn">L. Dusseault</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_9b6b4cea-1b86-9529-d193-1dbda889844e">This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing calendaring and scheduling information based on the iCalendar format.  This document defines the “calendar-access” feature of CalDAV. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>4791</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>calsched</vocab>
  </keyword>
  <keyword>
    <vocab>calsch</vocab>
  </keyword>
  <keyword>
    <vocab>calcav</vocab>
  </keyword>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
  <keyword>
    <vocab>webdav</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>http</vocab>
  </keyword>
</bibitem>
<bibitem anchor="wscal" id="_a24d0ae4-1892-db75-668d-87edd3395b3d"><formattedref format="application/x-isodoc+xml"><em>WS-Calendar Version 1.0</em>. 19 January 2011. OASIS Committee Specification, <link target="http://docs.oasis-open.org/ws-calendar/ws-calendar-spec/v1.0/cs01/ws-calendar24spec-v1.0-cs01.pdf"/>.</formattedref><docidentifier>WS-Calendar</docidentifier><language>en</language><script>Latn</script></bibitem>
<bibitem anchor="xrd" id="_298dee46-4adb-f6f9-9856-6c093f1e1836"><formattedref format="application/x-isodoc+xml">E. Hammer, W. Norris, <em>Extensible Resource Descriptor (XRD) Version 1.0</em>, <link target="http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html"/></formattedref><docidentifier>XRD-1.0</docidentifier><docnumber>1.0</docnumber><language>en</language><script>Latn</script></bibitem>
<bibitem id="_a83a0b2b-6550-11dd-271b-ec049ac51955" type="standard" schema-version="v1.5.6" anchor="rfc4918">
  <fetched>2026-05-13</fetched>
  
<title type="main">HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc4918</uri>
  <docidentifier type="IETF" primary="true">RFC 4918</docidentifier>
  <docidentifier type="DOI">10.17487/RFC4918</docidentifier>
  <docnumber>RFC4918</docnumber>
  <date type="published">
    <on>2007-06</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Dusseault</surname>          <completename language="en" script="Latn">L. Dusseault</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>WWW Distributed Authoring and Versioning</name>

        <identifier>webdav</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_26682776-f053-c4f0-d091-e315262bd373">Web Distributed Authoring and Versioning (WebDAV) consists of a set of methods, headers, and content-types ancillary to HTTP/1.1 for the management of resource properties, creation and management of resource collections, URL namespace manipulation, and resource locking (collision avoidance).</p>

    <p id="_201b0ed8-448a-ed2a-34b0-7aecec111278">RFC 2518 was published in February 1999, and this specification obsoletes RFC 2518 with minor revisions mostly due to interoperability experience. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>4918</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>WEBDAV</vocab>
  </keyword>
  <keyword>
    <vocab>hypertext</vocab>
  </keyword>
  <keyword>
    <vocab>transfer</vocab>
  </keyword>
  <keyword>
    <vocab>protocol</vocab>
  </keyword>
  <keyword>
    <vocab>web</vocab>
  </keyword>
  <keyword>
    <vocab>content</vocab>
  </keyword>
</bibitem>
<bibitem id="_0ec73de7-6b40-fb44-e992-94398d68819e" type="standard" schema-version="v1.5.6" anchor="rfc3339">
  <fetched>2026-05-13</fetched>
  
<title type="main">Date and Time on the Internet: Timestamps</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc3339</uri>
  <docidentifier type="IETF" primary="true">RFC 3339</docidentifier>
  <docidentifier type="DOI">10.17487/RFC3339</docidentifier>
  <docnumber>RFC3339</docnumber>
  <date type="published">
    <on>2002-07</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">G.</formatted-initials>          <surname language="en" script="Latn">Klyne</surname>          <completename language="en" script="Latn">G. Klyne</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Newman</surname>          <completename language="en" script="Latn">C. Newman</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Instant Messaging and Presence Protocol</name>

        <identifier>impp</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_8707eaf8-e6bf-44c3-d401-70287b6f0a52">This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>3339</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>Timestamps</vocab>
  </keyword>
  <keyword>
    <vocab>gregorian calendar</vocab>
  </keyword>
  <keyword>
    <vocab>iso</vocab>
  </keyword>
  <keyword>
    <vocab>International Organization for Standardization</vocab>
  </keyword>
</bibitem>
<bibitem id="_0034c815-d161-114f-5838-1e73545a5836" type="standard" schema-version="v1.5.6" anchor="rfc2616">
  <fetched>2026-05-13</fetched>
  
<title type="main">Hypertext Transfer Protocol — HTTP/1.1</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2616</uri>
  <docidentifier type="IETF" primary="true">RFC 2616</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2616</docidentifier>
  <docnumber>RFC2616</docnumber>
  <date type="published">
    <on>1999-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Fielding</surname>          <completename language="en" script="Latn">R. Fielding</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Gettys</surname>          <completename language="en" script="Latn">J. Gettys</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Mogul</surname>          <completename language="en" script="Latn">J. Mogul</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">H.</formatted-initials>          <surname language="en" script="Latn">Frystyk</surname>          <completename language="en" script="Latn">H. Frystyk</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Masinter</surname>          <completename language="en" script="Latn">L. Masinter</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Leach</surname>          <completename language="en" script="Latn">P. Leach</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Berners-Lee</surname>          <completename language="en" script="Latn">T. Berners-Lee</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>HyperText Transfer Protocol</name>

        <identifier>http</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_038647db-93d2-c781-567d-34d2a25a8e2d">HTTP has been in use by the World-Wide Web global information initiative since 1990.  This specification defines the protocol referred to as “HTTP/1.1”, and is an update to RFC 2068. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>DRAFT STANDARD</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC7230</formattedref>
      <docidentifier type="IETF" primary="true">RFC7230</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC7231</formattedref>
      <docidentifier type="IETF" primary="true">RFC7231</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC7232</formattedref>
      <docidentifier type="IETF" primary="true">RFC7232</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC7233</formattedref>
      <docidentifier type="IETF" primary="true">RFC7233</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC7234</formattedref>
      <docidentifier type="IETF" primary="true">RFC7234</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC7235</formattedref>
      <docidentifier type="IETF" primary="true">RFC7235</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>2616</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>HTTP</vocab>
  </keyword>
  <keyword>
    <vocab>Hypertext Transfer Protocol</vocab>
  </keyword>
  <keyword>
    <vocab>World Wide Web</vocab>
  </keyword>
  <keyword>
    <vocab>WWW</vocab>
  </keyword>
  <keyword>
    <vocab>hypermedia</vocab>
  </keyword>
</bibitem>
<bibitem id="_6214f8d8-3c18-d47a-0422-bc70d77550d1" type="standard" schema-version="v1.5.6" anchor="xcal">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">xCal: The XML Format for iCalendar</title>

  <uri type="src">https://datatracker.ietf.org/doc/html/draft-daboo-et-al-icalendar-in-xml-11</uri>
  <docidentifier type="Internet-Draft">draft-daboo-et-al-icalendar-in-xml</docidentifier>
  <docidentifier type="Internet-Draft" primary="true">draft-daboo-et-al-icalendar-in-xml-11</docidentifier>
  <docnumber>I-D.daboo-et-al-icalendar-in-xml</docnumber>
  <date type="published">
    <on>2011-06-14</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Mike</forename>                    <formatted-initials language="en">M.</formatted-initials>          <surname language="en">Douglass</surname>          <completename language="en">Mike Douglass</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">RPI</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Cyrus</forename>                    <formatted-initials language="en">C.</formatted-initials>          <surname language="en">Daboo</surname>          <completename language="en">Cyrus Daboo</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Apple, Inc.</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Steven</forename>                    <formatted-initials language="en">S.</formatted-initials>          <surname language="en">Lees</surname>          <completename language="en">Steven Lees</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Microsoft</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <version>
    <draft>11</draft>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This specification defines “xCal”, an XML format for iCalendar data. [STANDARDS-TRACK]
	 </abstract>
  <series type="main">
    
<title language="en" script="Latn">Internet-Draft</title>

    <number>draft-daboo-et-al-icalendar-in-xml-11</number>
  </series>
</bibitem>
<bibitem id="_80ad72a9-6df9-5f96-09df-cbf6135fc16c" type="standard" schema-version="v1.5.6" anchor="webl">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">Web Linking</title>

  <uri type="src">https://datatracker.ietf.org/doc/html/draft-nottingham-http-link-header-10</uri>
  <docidentifier type="Internet-Draft">draft-nottingham-http-link-header</docidentifier>
  <docidentifier type="Internet-Draft" primary="true">draft-nottingham-http-link-header-10</docidentifier>
  <docnumber>I-D.nottingham-http-link-header</docnumber>
  <date type="published">
    <on>2010-05-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Mark</forename>                    <formatted-initials language="en">M.</formatted-initials>          <surname language="en">Nottingham</surname>          <completename language="en">Mark Nottingham</completename>       </name>

    </person>
  </contributor>
  <version>
    <draft>10</draft>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies relation types for Web links, and defines a registry for them.  It also defines the use of such links in HTTP headers with the Link header field. [STANDARDS-TRACK]
	 </abstract>
  <series type="main">
    
<title language="en" script="Latn">Internet-Draft</title>

    <number>draft-nottingham-http-link-header-10</number>
  </series>
</bibitem>
<bibitem id="_ecda7749-74af-b294-c859-d2c21cc92f51" type="standard" schema-version="v1.5.6" anchor="fb">
  <fetched>2026-05-13</fetched>
  
<title language="en">Freebusy Read URL</title>

  <docidentifier type="CalConnect" primary="true">CC/S 0903:2009</docidentifier>
  <docnumber>0903</docnumber>
  <date type="published">
    <on>2009-04-15</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>CalConnect</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <completename>Eric York</completename>       </name>

      <affiliation>
        <organization>
          
<name>Apple Inc.</name>

          <address>
            <street>1 Infinite Loop</street>
            <city>Cupertino</city>
            <country>USA</country>
            <postcode>95014</postcode>
          </address>
        </organization>
      </affiliation>
      <email>eyork@apple.com</email>
      <uri>http://www.apple.com/</uri>
    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>CalConnect</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>CalConnect</name>

      <subdivision type="technical-committee">
        
<name>FREEBUSY</name>

      </subdivision>
    </organization>
  </contributor>
  <edition number="1"/>
  <version>
    <revision-date>2009-04-15</revision-date>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract format="text/plain">
    <p id="_4ea75241-8727-8e25-1593-206d50942678">This document defines a standardized form of Freebusy read URL to improve interoperability between client and server implementations, while extending the functionality and utility through the use of optional parameters.</p>

  </abstract>
  <status>
    <stage>published</stage>
  </status>
  <copyright>
    <from>2009</from>
    <owner>
      <organization>
        
<name>CalConnect</name>

      </organization>
    </owner>
  </copyright>
</bibitem>
</references><references id="_3770027c-4f80-6f0e-a0af-49de1b932753" normative="false" obligation="informative">
<title id="_50ceb1e1-516f-2673-d73d-4f0c58b4d023">Bibliography</title><bibitem anchor="rest" id="_7f551efb-8a13-ba84-b9be-7a039079a508">
  <formattedref format="application/x-isodoc+xml">T Fielding, Architectural Styles and the Design of Network-based Software Architectures, <link target="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm"/>.</formattedref>
  <docidentifier>REST</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem id="_f907a4c3-ec43-b306-4e74-c7033a51dfc1" type="standard" schema-version="v1.5.6" anchor="rfc2445">
  <fetched>2026-05-13</fetched>
  
<title type="main">Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2445</uri>
  <docidentifier type="IETF" primary="true">RFC 2445</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2445</docidentifier>
  <docnumber>RFC2445</docnumber>
  <date type="published">
    <on>1998-11</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">F.</formatted-initials>          <surname language="en" script="Latn">Dawson</surname>          <completename language="en" script="Latn">F. Dawson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Stenerson</surname>          <completename language="en" script="Latn">D. Stenerson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling</name>

        <identifier>calsch</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_7bcd6516-7101-dd56-9163-1c1c301a386e">This memo has been defined to provide the definition of a common format for openly exchanging calendaring and scheduling information across the Internet. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC5545</formattedref>
      <docidentifier type="IETF" primary="true">RFC5545</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>2445</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>ICALENDAR</vocab>
  </keyword>
  <keyword>
    <vocab>interoperable</vocab>
  </keyword>
  <keyword>
    <vocab>mime</vocab>
  </keyword>
  <keyword>
    <vocab>multipurpose internet mail extensions</vocab>
  </keyword>
</bibitem><bibitem id="_02effb63-3656-1cd6-7a1f-dbf4b0986b07" type="standard" schema-version="v1.5.6" anchor="rfc2446">
  <fetched>2026-05-13</fetched>
  
<title type="main">iCalendar Transport-Independent Interoperability Protocol (iTIP) Scheduling Events, BusyTime, To-dos and Journal Entries</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2446</uri>
  <docidentifier type="IETF" primary="true">RFC 2446</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2446</docidentifier>
  <docnumber>RFC2446</docnumber>
  <date type="published">
    <on>1998-11</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Silverberg</surname>          <completename language="en" script="Latn">S. Silverberg</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Mansour</surname>          <completename language="en" script="Latn">S. Mansour</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">F.</formatted-initials>          <surname language="en" script="Latn">Dawson</surname>          <completename language="en" script="Latn">F. Dawson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Hopson</surname>          <completename language="en" script="Latn">R. Hopson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling</name>

        <identifier>calsch</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_43960989-fafd-c2a5-bb13-abeb47eaae3a">This document specifies how calendaring systems use iCalendar objects to interoperate with other calendar systems.  It does so in a general way so as to allow multiple methods of communication between systems. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC5546</formattedref>
      <docidentifier type="IETF" primary="true">RFC5546</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>2446</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>ITIP</vocab>
  </keyword>
  <keyword>
    <vocab>iCalendar Transport-Independent Interoperability Protocol</vocab>
  </keyword>
  <keyword>
    <vocab>internet</vocab>
  </keyword>
  <keyword>
    <vocab>systems</vocab>
  </keyword>
</bibitem><bibitem id="_05ff689c-4b2b-768f-c089-9224eda19827" type="standard" schema-version="v1.5.6" anchor="rfc6047">
  <fetched>2026-05-13</fetched>
  
<title type="main">iCalendar Message-Based Interoperability Protocol (iMIP)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6047</uri>
  <docidentifier type="IETF" primary="true">RFC 6047</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6047</docidentifier>
  <docnumber>RFC6047</docnumber>
  <date type="published">
    <on>2010-12</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Melnikov</surname>          <completename language="en" script="Latn">A. Melnikov</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling Standards Simplification</name>

        <identifier>calsify</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_f8c818f1-4738-8936-5083-dcd4462807b7">This document, “iCalendar Message-Based Interoperability Protocol (iMIP)”, specifies a binding from the iCalendar Transport-independent Interoperability Protocol (iTIP) to Internet email-based transports.  Calendaring entries defined by the iCalendar Object Model (iCalendar) are wrapped using constructs from RFC 5322 and MIME (RFC 2045, RFC 2046, RFC 2047, and RFC 2049), and then transported over SMTP. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>6047</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>IMIP]</vocab>
  </keyword>
  <keyword>
    <vocab>electronic mail</vocab>
  </keyword>
  <keyword>
    <vocab>transport</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>iCalendar Transport-independent Interoperability Protocol</vocab>
  </keyword>
  <keyword>
    <vocab>iCalendar Object Model</vocab>
  </keyword>
</bibitem><bibitem id="_d7d70b40-07c6-de16-312b-4cbba461f8d2" type="standard" schema-version="v1.5.6" anchor="rfc5545">
  <fetched>2026-05-13</fetched>
  
<title type="main">Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5545</uri>
  <docidentifier type="IETF" primary="true">RFC 5545</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5545</docidentifier>
  <docnumber>RFC5545</docnumber>
  <date type="published">
    <on>2009-09</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Desruisseaux</surname>          <completename language="en" script="Latn">B. Desruisseaux</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling Standards Simplification</name>

        <identifier>calsify</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_578aeae5-5cf3-42b2-62f2-5fb2aa883d1b">This document defines the iCalendar data format for representing and exchanging calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, independent of any particular calendar service or protocol. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>5545</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>calsify</vocab>
  </keyword>
  <keyword>
    <vocab>calsched</vocab>
  </keyword>
  <keyword>
    <vocab>calsch</vocab>
  </keyword>
  <keyword>
    <vocab>caldav</vocab>
  </keyword>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>meeting</vocab>
  </keyword>
  <keyword>
    <vocab>event</vocab>
  </keyword>
  <keyword>
    <vocab>task</vocab>
  </keyword>
  <keyword>
    <vocab>to-do</vocab>
  </keyword>
  <keyword>
    <vocab>journal</vocab>
  </keyword>
  <keyword>
    <vocab>appointment</vocab>
  </keyword>
  <keyword>
    <vocab>agenda</vocab>
  </keyword>
  <keyword>
    <vocab>schedule</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>imip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>ischedule</vocab>
  </keyword>
  <keyword>
    <vocab>xCalendar</vocab>
  </keyword>
</bibitem><bibitem id="_598b25d8-a5e0-8b1f-11ba-ceb09f2d53ce" type="standard" schema-version="v1.5.6" anchor="rfc5546">
  <fetched>2026-05-13</fetched>
  
<title type="main">iCalendar Transport-Independent Interoperability Protocol (iTIP)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5546</uri>
  <docidentifier type="IETF" primary="true">RFC 5546</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5546</docidentifier>
  <docnumber>RFC5546</docnumber>
  <date type="published">
    <on>2009-12</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling Standards Simplification</name>

        <identifier>calsify</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_2f712f22-7cc7-fe2e-462c-85adb7865788">This document specifies a protocol that uses the iCalendar object specification to provide scheduling interoperability between different calendaring systems. This is done without reference to a specific transport protocol so as to allow multiple methods of communication between systems. Subsequent documents will define profiles of this protocol that use specific, interoperable methods of communication between systems.</p>

    <p id="_a1cdcb8a-4a9f-ec36-c3a0-3a4939e35959">The iCalendar Transport-Independent Interoperability Protocol (iTIP) complements the iCalendar object specification by adding semantics for group scheduling methods commonly available in current calendaring systems. These scheduling methods permit two or more calendaring systems to perform transactions such as publishing, scheduling, rescheduling, responding to scheduling requests, negotiating changes, or canceling. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5545</formattedref>
      <docidentifier type="IETF" primary="true">RFC5545</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>5546</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
</bibitem><bibitem id="_5a25ca89-57a4-bdef-b92a-9686a6a8a463" type="standard" schema-version="v1.5.6" anchor="draft">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">xCal: The XML Format for iCalendar</title>

  <uri type="src">https://datatracker.ietf.org/doc/html/draft-daboo-et-al-icalendar-in-xml-11</uri>
  <docidentifier type="Internet-Draft">draft-daboo-et-al-icalendar-in-xml</docidentifier>
  <docidentifier type="Internet-Draft" primary="true">draft-daboo-et-al-icalendar-in-xml-11</docidentifier>
  <docnumber>I-D.daboo-et-al-icalendar-in-xml</docnumber>
  <date type="published">
    <on>2011-06-14</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Mike</forename>                    <formatted-initials language="en">M.</formatted-initials>          <surname language="en">Douglass</surname>          <completename language="en">Mike Douglass</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">RPI</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Cyrus</forename>                    <formatted-initials language="en">C.</formatted-initials>          <surname language="en">Daboo</surname>          <completename language="en">Cyrus Daboo</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Apple, Inc.</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Steven</forename>                    <formatted-initials language="en">S.</formatted-initials>          <surname language="en">Lees</surname>          <completename language="en">Steven Lees</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Microsoft</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <version>
    <draft>11</draft>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This specification defines “xCal”, an XML format for iCalendar data. [STANDARDS-TRACK]
	 </abstract>
  <series type="main">
    
<title language="en" script="Latn">Internet-Draft</title>

    <number>draft-daboo-et-al-icalendar-in-xml-11</number>
  </series>
</bibitem>







</references></bibliography>
</metanorma>
