<?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">Calendaring and scheduling — CalDAV Auditing Status and Feedback</title>
<uri>http://www.apple.com/</uri><docidentifier primary="true" type="CalConnect">CC/CD 51016:2018</docidentifier><docnumber>51016</docnumber><date type="published"><on>2018-02-21</on></date><contributor><role type="author"/><organization>
<name>CalConnect</name>
</organization></contributor><contributor><role type="author"/><person>
<name><completename>Cyrus Daboo</completename></name>
<email>cyrus@daboo.name</email></person></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>CalConnect</name>
<subdivision type="Technical committee">
<name>CALENDAR</name>
</subdivision></organization></contributor><contributor><role type="publisher"/><organization>
<name>CalConnect</name>
</organization></contributor><edition>1</edition><version><revision-date>2018-02-21</revision-date></version><language>en</language><script>Latn</script><abstract><p>This document defines an extension to CalDAV that allows clients and servers that audit data on the server, to provide feedback based on the results of such audits. This can be used to signal clients about junk events, or other inappropriate content. It can also be used by clients to provide feedback about junk events, or other inappropriate content, that the server can act on in a manner that prevents the originator of the data from knowing it was discarded.</p>
</abstract><status><stage>committee-draft</stage></status><copyright><from>2018</from><owner><organization>
<name>CalConnect</name>
</organization></owner></copyright><ext><doctype>standard</doctype><flavor>cc</flavor></ext></bibdata><metanorma-extension><semantic-metadata><stage-published>false</stage-published></semantic-metadata>
<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="_7f96b962-6942-8afe-bc72-d12bab856fd0" obligation="normative"><p id="_0b69cd5b-1292-b1e0-ed36-9f2e0a8da28a">© 2018 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="_762f925b-f436-cc1e-a731-7b4eeb67751e"><title id="_37c298bf-5619-a5c6-817b-d777b5ead0b1">Abstract</title><p id="_a19b79f9-ad3a-9b19-f112-239b7ecb3148">This document defines an extension to CalDAV that allows clients and servers that audit data on the server, to provide feedback based on the results of such audits. This can be used to signal clients about junk events, or other inappropriate content. It can also be used by clients to provide feedback about junk events, or other inappropriate content, that the server can act on in a manner that prevents the originator of the data from knowing it was discarded.</p>
</abstract><introduction id="_6d37ecdc-f8e7-2737-d1d6-350d31c03309" obligation="informative">
<title id="_2b2e98d1-114a-3da4-8556-01ae0a724280">Introduction</title>
<p id="_f66fe672-250b-2c99-08fd-c501591d10c6">Internet calendaring and scheduling standards are defined by iCalendar  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/> and iTIP <eref type="inline" bibitemid="RFC5546" citeas="IETF RFC 5546"/>. The CalDAV Access <eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"/> standard defines a way to access calendar data stored on a server, and the CalDAV Scheduling  <eref type="inline" bibitemid="RFC6638" citeas="IETF RFC 6638"/> draft defines how scheduling occurs between users of a CalDAV server.</p>

<p id="_939eb355-eaca-aed5-9bc5-bc715252566e">CalDAV calendar users can receive event invitations or sharing invitations from other users on the CalDAV server, and in the case of event invitations, they may also be received from users outside the system (e.g., via an email based gateway service). Unfortunately, as has been the case with email for quite some time now, this provides an avenue for abuse. In particular, there has recently been an increase in so called calendar “spam” (unsolicited bulk event invitations — in future referred to as “junk” invitations) that automatically appear on a user’s calendar. Whilst users can delete such invitations, the current default behavior of CalDAV servers is to send a scheduling iTIP reply message back to the organizer of the invite indicating that the user (who appears as an attendee in the invite) has declined the invitation. This is not desirable as it signals to the originator that a speculative attendee calendar user address they might have used is in fact valid. It is much more preferable for the invite to be silently discarded without a reply being sent. CalDAV does support such an option via use of the “Schedule-Reply” HTTP header (see  <eref type="inline" bibitemid="RFC6638" citeas="IETF RFC 6638"><localityStack><locality type="section"><referenceFrom>8.1</referenceFrom></locality></localityStack></eref>), however, it would be useful to provide an explicit indication from the user to the server that a particular invitation is considered inappropriate so that the server can use that information to potentially filter future invitations that are similar. This type of feedback has been used successfully in email systems, typically exposed to users as a “report as junk” option in their email clients.</p>

<p id="_2415c8b0-132a-5527-7466-1e8805f0ff16">Also, as with email, a server can scan invitations as they are being delivered and provide an indication of “junk” status to allow clients to filter invitations or provide warnings to the user. Such status is usually conveyed in email messages via the addition of email message headers during delivery, however, iCalendar invitations typically do not include delivery meta-data.</p>

<p id="_6b06253c-39ef-ed00-dbed-3486b0a5ef6d">This specification defines the following extensions to CalDAV to help provide better junk invitation status and reporting:</p>

<ul id="_6767886c-83d9-9816-69d3-46ae73a94a38"><li><p id="_0470c7b2-8881-c428-47d4-1ef968e2a8c0">A new <tt>CS:audit-status</tt> WebDAV property is defined for use on any resource in a CalDAV server. The value of that property is a comma-separated list of “key=value” pairs that can be used to convey invitation auditing status from the server to a client.</p>
</li>
<li><p id="_e351d28b-898d-e08b-cbd8-94e55f2d73ea">A new <tt>POST</tt> request action can be targeted at resources to allow a client to report a problem about the resource and trigger the server to take appropriate steps (e.g., discard the resource, record information about the resource so that it can be permanently suppressed).</p>
</li>
</ul>

<p id="_dcbcfbaf-3df0-7aca-450c-fb0235082a1e">This specification does not cover how servers or clients analyse invitations, but rather it only covers the reporting of such analysis. What is considered inappropriate is likely dependent on local policies and regulations, which cannot be generally codified. It is expected that email scanning tools and techniques can be adapted for use with calendar data on both clients and servers.</p>
</introduction></preface><sections>

<clause id="_7f7edaf5-9efc-38f2-919f-b2cd0feaa203" obligation="normative">
<title id="_e01b0d2a-257a-7f15-1364-2693c6d68958">Conventions Used in This Document</title>
<p id="_6a74a091-50bd-8688-3060-6669131cae09">The key words “<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>

<p id="_a6c486cd-6e87-3e63-07d3-27f23d5600fa">When XML element types in the namespaces “<tt>DAV:</tt>” and “<tt>urn:ietf:params:xml:ns:caldav</tt>” are referenced in this document outside of the context of an XML fragment, the string “<tt>DAV:</tt>” and “<tt>CALDAV:</tt>” will be prefixed to the element type names respectively.</p>

<p id="_a6b22195-60ed-1fc7-629c-9373753a9f07">The namespace “<link target="http://calendarserver.org/ns/"/>” is used for XML elements defined in this specification. When XML element types in this namespace are referenced in this document outside of the context of an XML fragment, the string “<tt>CS:</tt>” will be prefixed to the element type names respectively.</p>
</clause>

<clause id="_fbfc9b35-b159-4e44-21d6-911d5358e9d5" obligation="normative">
<title id="_2cd41349-c79f-bac3-fa24-f830b3c5daa5">Server Advertised Capability</title>
<p id="_82918c79-0dd1-ef1f-69dd-c9e3e2f3ee98">A server that supports this specification <tt>MUST</tt> include “<tt>calendar-audit</tt>” as a field in the <tt>DAV</tt> response header field from an <tt>OPTIONS</tt> request on a calendar home collection (see <eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"><localityStack><locality type="section"><referenceFrom>6.2.1</referenceFrom></locality></localityStack></eref>). Clients  <tt>MUST</tt> check for the presence of that field in the <tt>DAV</tt> response header field before supporting the extensions in this specification.</p>
</clause>

<clause id="_2ecf476e-3f2a-9501-04bc-d03cf0e19174" obligation="normative">
<title id="_0943678c-1d68-2464-8661-7ad44b68e999">Audit WebDAV Property</title>
<p id="_4a99318d-8c81-9f1c-3f7d-41e105385cc2">The <tt>CS:audit-status</tt> WebDAV property provides any server side audit results, for the resource the property is present on, to the client. The value of this property is a string containing one or more comma- separated “key=value” pairs that can be used to conveying specific details about the audit results. A set of initial keys defined by this specification are listed below. Additional keys may be added in the future. Servers  <tt>SHOULD</tt> only include audit results that are known to be useful to clients to avoid having this property grow too large.</p>

<p id="_b47bb3b4-e4a7-b956-4030-11b9ae68a89c">Clients that support this extension <tt>SHOULD</tt> request the <tt>CS:audit-status</tt> property in any <tt>PROPFIND</tt> or <tt>REPORT</tt> requests that return properties for resources on the CalDAV server. In particular, calendar object resources will likely all be audited, and so  <tt>SHOULD</tt> be checked by clients.</p>

<p id="_241a4d95-0ea8-0588-d72f-bf39726ccbf4">Clients <tt>MAY</tt> do their own auditing of resources retrieved from the server. Clients are likely to take into consideration locally available contextual information when doing client-side auditing, information that is typically not available to servers. As a result, when the  <tt>CS:audit-status</tt> property is present, clients <tt>SHOULD</tt> use it in conjunction with, rather than as a replacement of, any client-side auditing to determine the overall suitability of the resource.</p>

<clause id="_a9c5ff0b-fbda-a198-6282-97f116d78e00" obligation="normative">
<title id="_59ac58a0-f7dc-3b88-ade7-a9fd040d2f62"><tt>CS:audit-status</tt></title>
<dl id="_49836445-9ec1-448a-870e-58102a06df96"><dt>Name</dt>
<dd id="_24a32be2-c6e2-deef-a0af-a7d7fea5286f"><p id="_829a5b0c-a3ea-d4bd-8daf-1302852da7aa"><tt>audit-status</tt></p>
</dd>
<dt>Namespace</dt>
<dd id="_a685f067-0c97-fcd2-c924-f65e18cac387"><p id="_7aca2352-f32a-c39c-b16e-2c4fc78add0a"><link target="http://calendarserver.org/ns/"/></p>
</dd>
<dt>Purpose</dt>
<dd id="_043edb19-b26d-a981-ba3f-33a4fcb64073"><p id="_2c8d0481-a4f8-e7c5-7053-ca9ab3c102e8">Indicates server auditing status for the resource on which this property is defined.</p>
</dd>
<dt>Conformance</dt>
<dd id="_bd4fb2c7-6551-469c-8f1d-12e27ebac09b"><p id="_acde8cfa-a91e-1219-6450-233aa0f1e321">This property MAY be present on any resource within a CalDAV calendar home collection. If present, it  <tt>SHOULD NOT</tt> be returned by a  <tt>PROPFIND</tt> <tt>DAV:allprop</tt> request (as defined in <eref type="inline" bibitemid="RFC4918" citeas="IETF RFC 4918"><localityStack><locality type="section"><referenceFrom>14.2</referenceFrom></locality></localityStack></eref>). This is a protected property (as defined in  <eref type="inline" bibitemid="RFC4918" citeas="IETF RFC 4918"><localityStack><locality type="section"><referenceFrom>15</referenceFrom></locality></localityStack></eref>). This property <tt>MUST</tt> be preserved when the resource is copied or moved.</p>
</dd>
<dt>Description</dt>
<dd id="_d6e35062-e34b-a1ae-d4ab-67315220a711"><p id="_81cec1c0-b28e-7d99-7c1c-f8308d4b1be8">The <tt>CS:audit-status</tt> property provides details of any server auditing done for the resource on which it is defined. In the absence of this property, clients  <tt>MUST</tt> assume that no auditing has taken place. The supported key/value pairs defined in this specification are listed in the next section.</p>
</dd>
<dt>Definition</dt>
<dd id="_5f25b8da-6dd8-280d-d801-13c8c47ebff3"><sourcecode id="_8236c9b4-bb30-8a91-af87-73f2abb529ed" unnumbered="true"><body>&lt;!ELEMENT audit-status CDATA&gt;
CDATA is a string using the "audit-status" format defined below

audit-status = audit-state *("," audit-state)
audit-state = audit-key "=" audit-value
audit-key = token
audit-value = token / quoted-string

token = ALPHA *(ALPHA / DIGIT / "-")
quoted-string = DQUOTE *QSAFE-CHAR DQUOTE

QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII
; Any character except CONTROL and DQUOTE

NON-US-ASCII = UTF8-2 / UTF8-3 / UTF8-4
; UTF8-2, UTF8-3, and UTF8-4 are defined in [RFC3629]

CONTROL = %x00-08 / %x0A-1F / %x7F
; All the controls except HTAB</body></sourcecode> </dd>
<dt>Example</dt>
<dd id="_2e4fcc7e-e068-0e64-58e6-dc8ca89aa16f"><p id="_a5e5bfdd-4b3c-c325-3933-a36849307512">Note that additional line breaks have been added for readability.</p>

<sourcecode id="_e3c574f4-47bb-ecd6-bc6a-de1450ff8c68" unnumbered="true"><body>&lt;CS:audit-status
 xmlns:CS="http://calendarserver.org/ns/"&gt;
 status=GOOD,audit-id=51CAA5F8-5C48-45E1-B0E7-3534D7254060
&lt;/CS:audit-status&gt;</body></sourcecode>

</dd>
</dl>
</clause>

<clause id="_534930cd-dde1-bf30-da20-5a2d2a54dd90" obligation="normative">
<title id="_ff7e78a4-7dd7-422f-b37e-42f29dd50568">Audit Status Items</title>
<p id="_164c692a-0211-3850-ea6e-a14a73e333ff">The following <tt>CS:audit-status</tt> key/value pair items are defined by this specification. The “status”  <tt>MUST</tt> be present, other keys are <tt>OPTIONAL</tt>. Clients <tt>SHOULD</tt> ignore any keys that they do not recognize.</p>

<table id="_ae317e53-2df7-b2c1-291b-8c8142d02960">
<name id="_e3434963-4bfa-084f-6ff1-28b63b1bd3ff"><tt>CS:audit-status</tt> key/value pair items</name>
<thead><tr id="_29b58cce-ae2c-d728-4106-539aa0fad4e6"><th id="_7d824336-ece7-584f-2703-a4b07d65d907" valign="top" align="left">Key</th>
<th id="_55013c96-2e25-fd2c-8b97-89891a033ed9" valign="top" align="left">Value</th>
<th id="_5507b7ca-3980-90ea-b562-0e83f8b56e87" valign="top" align="left">Description</th>
</tr></thead>
<tbody><tr id="_22854637-d05a-c1fc-3b20-a9873c0ee0d0"><td id="_e04d61c6-bced-d706-fbe6-1a35dc87eea7" valign="top" align="left">status</td>
<td id="_96994142-12ea-6e46-bf17-931a5282acd1" valign="top" align="left"><tt>GOOD</tt></td>
<td id="_9f64afc0-f1ec-e214-8a44-e8207817c385" valign="top" align="left">Audit result indicates no problem with this resource</td>
</tr><tr id="_1e6c0b8c-139c-024c-72f6-2f62607712ab"><td id="_fa522a3b-f330-7ca7-b6b4-86ec1dc1f7ef" valign="top" align="left">status</td>
<td id="_cf8f2ce1-f08d-905d-f69c-2f37ac8acd4f" valign="top" align="left"><tt>WARNING</tt></td>
<td id="_c66f113b-3892-5f39-030b-232bc470dcde" valign="top" align="left">Audit result indicates a possible problem with this resource</td>
</tr><tr id="_68db1086-add9-9720-ea88-4ad0fd0b83d0"><td id="_4a12cb42-3c94-3bee-8c76-d0e3191a0381" valign="top" align="left">status</td>
<td id="_bfdf4593-e51c-8d8a-d933-c51df52425bc" valign="top" align="left"><tt>BAD</tt></td>
<td id="_5d9c009a-57bc-2caa-f627-6d64a0e55042" valign="top" align="left">Audit result indicates a strong possibility of a problem with this resource</td>
</tr><tr id="_ee0f196e-cb7a-64e7-307b-26daa4d5b663"><td id="_74cdf925-71ee-751d-f794-592b055ee612" valign="top" align="left">score</td>
<td id="_e374ab81-bb5a-f67d-8754-9bc5cb35242a" valign="top" align="left">{integer: 0-100}</td>
<td id="_52a811b2-1e45-e82d-2780-71af2f0c6ed9" valign="top" align="left">An integer value in the range 0-100. 0 means the resource is definitely free of problematic content. 100 means the resource definitely contains problematic content. Values in between relate to varying degrees of concern for the resource content.</td>
</tr><tr id="_60ff2063-139d-7562-856b-e24fb2b7a900"><td id="_2de5eb3b-f9c9-7553-91c9-99c19cedacf4" valign="top" align="left">reason</td>
<td id="_3ec0fe78-2d67-0961-8037-32e78ee60396" valign="top" align="left">{string}</td>
<td id="_49077daa-5c60-703c-c9a0-d84c4eeb8feb" valign="top" align="left">A textual description of the result of the server audit that can be presented to the user.</td>
</tr><tr id="_ceaaba4c-ff8e-cd66-e54a-86f8343b45de"><td id="_78e22914-c3f4-854f-6ffd-cf637ccd7a24" valign="top" align="left">audit-id</td>
<td id="_3ed47921-0adb-2ff6-a93b-981b0073deb9" valign="top" align="left">{string}</td>
<td id="_3bd1c729-b2c3-506d-08f9-964726ba2b72" valign="top" align="left">An opaque identifier used to correlate the reported audit status with the auditing system.</td>
</tr></tbody>
</table>
</clause>
</clause>

<clause id="_5c007b74-2aee-4acc-b230-8ca8581e9f71" obligation="normative">
<title id="_f72ebe91-1fbe-15ef-a4fb-3a2035c393a0">Client Audit Reporting</title>
<p id="_be8c39b7-d33a-460e-b6fa-6041330da9c6">When a client detects a CalDAV resource that it has determined to be inappropriate for some reason, or as the result of the calendar user explicitly indicating that a resource is inappropriate, it can signal that state to the server by issuing a  <tt>POST</tt> request with the request- URI set to the resource URI, and with an “<tt>action=audit-failure</tt>” query parameter in the request-URI.</p>

<p id="_05e2bad9-cf66-63d6-7f9f-833ff1a98ee4">Upon receiving such a request the server <tt>MUST</tt> take the following actions:</p>

<ol id="_928f6d31-4ac0-e176-31b1-99a80bff4d7a" type="arabic"><li><p id="_9d50f4fd-a69b-03bd-5151-4eb025816da6">If the target resource is a calendar object resource, the server <tt>MUST</tt> delete the resource without sending any scheduling reply messages. The server  <tt>MUST</tt> use the iCalendar UID property value in the target resource to:</p>
<ol id="_2af6563d-236e-78a5-705a-4ce6295b4ad4" type="alphabet"><li><p id="_0d07f47c-a30f-86ab-a2d3-ac6c4f38b0cb">delete any other resources in calendar collections owned by the calendar user, or the calendar user’s scheduling inbox collection, that have the same iCalendar UID property</p>
</li>
<li><p id="_ac4995d8-0d78-3a06-54ee-13ae47495400">prevent any future scheduling messages with the same iCalendar UID being delivered to that calendar user</p>
</li>
</ol>
</li>
<li><p id="_088478c3-4db5-e13b-09d3-7319993b9303">If the target resource is a sharing invitation in the calendar user’s notification collection, the server  <tt>MUST</tt> delete the notification resource without sending any sharing reply to the sharer. The server  <tt>MUST</tt> also prevent any future sharing invitations for the same calendar collection from being delivered to the calendar user.</p>
</li>
<li><p id="_4aa68b19-5843-abbb-fbb0-90e301bf4f33">The behavior for other types of resource is currently undefined. Servers  <tt>MUST</tt> reject such requests with an appropriate HTTP 4xx status code.</p>
</li>
</ol>

<p id="_6bf046ab-5355-2ace-6059-cb1c32d5425a">Servers <tt>MAY</tt> perform their own analysis of the resource being reported and act on it accordingly, but this specification does not define how that is done or what the consequences are.</p>

<p id="_10fcd419-1e8b-735a-5add-43972319b7aa">The audit report <tt>POST</tt> request supports the following request-URI query parameters:</p>

<table id="_3336ddd2-66f1-e50e-0346-4b0ad4087dc4">
<name id="_09d5a436-860d-1438-f2ef-410d2a633142">Request-URI query parameters</name>
<thead><tr id="_2a7b82a3-0619-8a93-6055-7ad3e6373d08"><th id="_154e5890-038f-1a6c-7848-d422672e4439" valign="top" align="left">Name</th>
<th id="_c50127ea-c998-fdf9-885a-210cea9eaa2a" valign="top" align="left">Description</th>
</tr></thead>
<tbody><tr id="_9eab714d-1f34-6016-c908-d7da33f530fb"><td id="_35811814-4e06-6340-a088-bdf6f36655b7" valign="top" align="left">action</td>
<td id="_a877a07f-a0e6-7db9-76f6-dfceba3e84e5" valign="top" align="left">this is <tt>REQUIRED</tt> and <tt>MUST</tt> have a value of “<tt>audit-failure</tt>”</td>
</tr><tr id="_0dc64e27-d9a8-1dc8-ef2a-bd59f94ec7c9"><td id="_dd6b3e06-8141-e39b-0def-a6ad6be8cb68" valign="top" align="left">reason</td>
<td id="_3c0f1c9c-1890-b74a-e4b3-fa9c40585b75" valign="top" align="left">this is <tt>OPTIONAL</tt> and contains a short string indicating the nature of the failure</td>
</tr></tbody>
</table>

<p id="_e58d1cd5-9bfb-01d1-c94b-a0ca6ca9036e">The client <tt>MAY</tt> include other query parameters as needed. The server <tt>SHOULD</tt> ignore all query parameters that it cannot process.</p>

<p id="_c3925a91-8913-6434-e781-5deb88da89fd">On successful completion of the request, the server returns an appropriate HTTP 2xx status code. Upon receiving a successful response, clients  <tt>SHOULD</tt> immediately re-synchronize their state with the server to ensure any resources that were removed as a result of the  <tt>POST</tt> request are also removed from any cache the client might have.</p>

<p id="_6c707478-ec4b-3ee1-991b-40f6567b7d9d">If the request fails for any reason, the actions described above <tt>MUST NOT</tt> occur, and in particular, no resources are to be deleted.</p>

<p id="_4a3304a3-c29d-8792-15e1-d835a0bb7cf5">This specification discards an entire resource — thus there is no provision to report inappropriate content in one instance of a recurring event since all instances are in the same calendar object resource.</p>

<clause id="_7d720719-6a0a-636f-caea-7c6e1619fcf8" obligation="normative">
<title id="_80d2bb9f-d692-be2f-85b7-90c210d08128">Example</title>
<p id="_6826c264-f6f2-d7b9-3526-bd54a6bac192">The client issues a <tt>POST</tt> request to indicate an audit failure on a particular resource:</p>

<sourcecode id="_61efa550-2307-abd8-78c1-4d363024c947" unnumbered="true"><body>&gt;&gt; Request &lt;&lt;

POST /event.ics?action=audit-failure&amp;reason=junk HTTP/1.1
Host: cal.example.com
Content-Length: 0

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

HTTP/1.1 200 OK
Date: Fri, 10 Jan 2017 14:02:20 GMT
Content-Type: text/plain
Content-Length: xxxx</body></sourcecode>


<p id="_ce3df2fb-a72a-c9a9-5de7-65a101cb20c1">Report received and acted upon.</p>
</clause>
</clause>

<clause id="_ffce2b03-979a-c91e-886d-f9fd449eb563" obligation="normative">
<title id="_ad1762fe-d87d-eae6-8052-8b0d60e81005">Security Considerations</title>
<p id="_44c171cd-a57b-d7aa-67fc-0bb7f52961a1">It is important that no replies whatsoever be sent back to the originator of the invitation being discarded. In addition, the invite originator  <tt>MUST NOT</tt> be given any other indication that the invite was discarded.</p>

<p id="_f1122787-0efd-9a15-b5e2-e89a4cfc59c7">The server <tt>MUST</tt> protect any information it gets from client audit failure reports to prevent attackers from learning how to work around client auditing procedures.</p>
</clause>

<clause id="_59edaa61-b832-7a55-9849-97f59393aa67" obligation="normative">
<title id="_20e0662b-769e-dfc7-6ef3-e367d6b0d83f">Privacy Considerations</title>
<p id="_76692e37-b970-ae68-5310-59bbad187dde">The server <tt>MUST</tt> protect any information it gets from client audit failure reports to prevent calendar users from being “profiled” based on what items they consider to be inappropriate.</p>
</clause>

<clause id="_96ccb88e-88c2-9e97-b503-5474068d36c0" obligation="normative">
<title id="_baecdc3f-d4df-6f26-505c-1f7f366fe3db">IANA Considerations</title>
<p id="_c4f33e73-2a5c-2c1e-5998-7e076bb84b64">None.</p>
</clause>



<clause id="_dcf8be11-77e5-8c93-794b-c05aec810a84" obligation="normative">
<title id="_b0a4c26e-4c91-0217-beec-3de9edc4af70">Acknowledgments</title>
<p id="_8edf22d2-7867-0ff1-0d69-7891cc44edd2">This specification is the result of discussions between the Apple calendar server and client teams.</p>
</clause>


</sections><annex id="_82d94e1c-1f42-27e3-3f05-6a98525a6819" obligation="normative">
<title id="_39199961-98db-0b71-6ebd-de6dce15321b">metanorma-extension</title>
<clause id="_1f9e9195-5432-bc6f-5620-b5cd63aa7b98" obligation="normative">
<title id="_c06a5fdb-4f07-88e1-5080-a3796308c4cd">document history</title>
<sourcecode id="_4b9b41e5-d2ed-08e8-8cac-ae4bb399e9d0" lang="yaml"><body>- date:
  - type: updated
    value: 2016-12-09
  amend:
    - description: |
        Clarify that clients should never totally rely on the server audit-status result, but instead should always do their own auditing and use the server status as input to that.

        Fix xmlns value used in examples.

        Remove reference to client reporting on the inbox scheduling resource.

        Indicate that servers can implement their own procedures for analyzing invites reported by the client - but those are out of scope of this spec.</body></sourcecode>

</clause>
</annex><bibliography><references id="_1b66bc30-9d86-487f-c1fb-130891558099" normative="true" obligation="informative">
<title id="_461cd77a-5cfe-f57e-70ab-04e5c4142c2b">Normative references</title><p id="_02b1c060-f2f9-4bc4-035d-e49887f749e3">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="_0d9c78ba-037c-9336-a87f-c9e2deb0f7cd" 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="_3bdac10a-6b1c-ec09-c1d6-02c601f1e523">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="_de589169-2b32-bc32-f82e-33f0d1f05002" 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="_182989f2-668b-8bc6-0199-22eb5d74a3c3">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 id="_17162ce6-22cb-2e43-470b-93ddf975e695" 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="_c7b3fdc8-784f-b2a4-36c6-14999c27c912">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="_c44238cc-06cf-f9e2-5e61-af61308451c9">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="_27a8badc-c6d6-439a-9ef4-9b3866952b47" 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="_e436cd19-5f4d-3144-d2f5-2ee586583fa7">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="_9e4d2e76-54ad-32d8-0f2c-19470e1afc51" 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="_df29a48f-5da8-3781-cace-f3151cf9e360">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="_e51cac57-2480-b23b-eefd-672b85b9adf9">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="_09720659-afd9-09da-d4c5-25b0680a782e" type="standard" schema-version="v1.5.6" anchor="RFC6638">
  <fetched>2026-05-13</fetched>
  
<title type="main">Scheduling Extensions to CalDAV</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6638</uri>
  <docidentifier type="IETF" primary="true">RFC 6638</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6638</docidentifier>
  <docnumber>RFC6638</docnumber>
  <date type="published">
    <on>2012-06</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="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="_83c30948-d789-0006-624a-b8b66e06b978">This document defines extensions to the Calendaring Extensions to WebDAV (CalDAV) “calendar-access” feature to specify a standard way of performing scheduling operations with iCalendar-based calendar components.  This document defines the “calendar-auto-schedule” feature of CalDAV. [STANDARDS-TRACK]</p>

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

  </relation>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5546</formattedref>
      <docidentifier type="IETF" primary="true">RFC5546</docidentifier>
    </bibitem>

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

    <number>6638</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>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>webcal</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>ischedule</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>imip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>http</vocab>
  </keyword>
</bibitem>
</references></bibliography>
</metanorma>
