| rfc9671.original.xml | rfc9671.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc toc="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" | |||
| <?rfc symrefs="yes"?> | ipr="trust200902" docName="draft-ietf-extra-processimip-09" number="9671" obsole | |||
| <?rfc sortrefs="yes"?> | tes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" symRefs= | |||
| <?rfc compact="yes"?> | "true" sortRefs="true" version="3"> | |||
| <?rfc strict="yes"?> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | ||||
| category="std" consensus="yes" ipr="trust200902" | ||||
| docName="draft-ietf-extra-processimip-09" | ||||
| obsoletes="" updates="" submissionType="IETF" xml:lang="en" | ||||
| tocInclude="true" symRefs="true" sortRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.12.2 --> | ||||
| <front> | <front> | |||
| <title abbrev="Sieve Process iMIP">Sieve Email Filtering: | <title abbrev="Sieve Extension for Processing Calendar Attachments">Sieve Em | |||
| Extension for Processing Calendar Attachments</title> | ail Filtering: Extension for Processing Calendar Attachments</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-extra-processimip-09"/> | ||||
| <seriesInfo name="RFC" value="9671"/> | ||||
| <author initials="K." surname="Murchison" fullname="Kenneth Murchison"> | <author initials="K." surname="Murchison" fullname="Kenneth Murchison"> | |||
| <organization abbrev="Fastmail">Fastmail US LLC</organization> | <organization abbrev="Fastmail">Fastmail US LLC</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1429 Walnut Street - Suite 1201</street> | <street>1429 Walnut Street, Suite 1201</street> | |||
| <city>Philadelphia</city> | <city>Philadelphia</city> | |||
| <region>PA</region> | <region>PA</region> | |||
| <code>19102</code> | <code>19102</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>murch@fastmailteam.com</email> | <email>murch@fastmailteam.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="R." surname="Signes" fullname="Ricardo Signes"> | <author initials="R." surname="Signes" fullname="Ricardo Signes"> | |||
| <organization abbrev="Fastmail">Fastmail US LLC</organization> | <organization abbrev="Fastmail">Fastmail US LLC</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1429 Walnut Street - Suite 1201</street> | <street>1429 Walnut Street, Suite 1201</street> | |||
| <city>Philadelphia</city> | <city>Philadelphia</city> | |||
| <region>PA</region> | <region>PA</region> | |||
| <code>19102</code> | <code>19102</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>rjbs@fastmailteam.com</email> | <email>rjbs@fastmailteam.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="M." surname="Horsfall" fullname="Matthew Horsfall"> | <author initials="M." surname="Horsfall" fullname="Matthew Horsfall"> | |||
| <organization abbrev="Fastmail">Fastmail US LLC</organization> | <organization abbrev="Fastmail">Fastmail US LLC</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1429 Walnut Street - Suite 1201</street> | <street>1429 Walnut Street, Suite 1201</street> | |||
| <city>Philadelphia</city> | <city>Philadelphia</city> | |||
| <region>PA</region> | <region>PA</region> | |||
| <code>19102</code> | <code>19102</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>alh@fastmailteam.com</email> | <email>alh@fastmailteam.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date/> | <date month="October" year="2024"/> | |||
| <area>ART</area> | <area>ART</area> | |||
| <!-- <workgroup>EXTRA</workgroup>--> | <workgroup>extra</workgroup> | |||
| <keyword>Sieve</keyword> | <keyword>Sieve</keyword> | |||
| <abstract> | <abstract> | |||
| <t>This document describes the "processcalendar" extension to the | <t>This document describes the "processcalendar" extension to the | |||
| Sieve email filtering language. | Sieve email filtering language. | |||
| The "processcalendar" extension gives Sieve the ability to process | The "processcalendar" extension gives Sieve the ability to process | |||
| machine-readable calendar data that is encapsulated in an | machine-readable calendar data that is encapsulated in an | |||
| email message using Multipurpose Internet Mail Extensions (MIME).</t> | email message using Multipurpose Internet Mail Extensions (MIME).</t> | |||
| </abstract> | </abstract> | |||
| <!-- | ||||
| <note title="Open Issues"> | ||||
| <ul> | ||||
| </ul> | ||||
| </note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>Users frequently receive invites, replies, and cancellations | <t>Users frequently receive invites, replies, and cancellations | |||
| for events, tasks, etc. via Internet mail messages. | for events, tasks, etc. via Internet mail messages. | |||
| It is sometimes desirable to have such messages automatically | It is sometimes desirable to have such messages automatically | |||
| parsed and the enclosed calendar data | parsed and the enclosed calendar data | |||
| added to, updated on, or deleted from the user's calendars.</t> | added to, updated on, or deleted from the user's calendars.</t> | |||
| <t>Typically such messages are based on the | <t>Typically, such messages are based on the | |||
| <xref target="RFC6047" format="default">iCalendar Message-Based | iCalendar Message-Based | |||
| Interoperability Protocol (iMIP)</xref>. | Interoperability Protocol (iMIP) <xref target="RFC6047" format="default">< | |||
| /xref>. | ||||
| However, sometimes the enclosed | However, sometimes the enclosed | |||
| <xref target="RFC5545">iCalendar</xref> data does not include an | iCalendar <xref target="RFC5545"></xref> data does not include an | |||
| iTIP method property | iCalendar Transport-Independent Interoperability Protocol (iTIP) method pr | |||
| operty | ||||
| (see <xref target="RFC5546" section="1.4" sectionFormat="comma"/>), | (see <xref target="RFC5546" section="1.4" sectionFormat="comma"/>), | |||
| or the enclosed data may be in some other machine-readable format | or the enclosed data may be in some other machine-readable format | |||
| <!-- (E.g. <xref target="I-D.ietf-calext-jscalendarbis">--> | (e.g., | |||
| (E.g. <xref target="RFC8984"> | JSCalendar <xref target="RFC8984"></xref>). | |||
| JSCalendar</xref>). | ||||
| </t> | </t> | |||
| <t>This document defines an extension to the | <t>This document defines an extension to the | |||
| <xref target="RFC5228" format="default">Sieve language</xref> | Sieve language <xref target="RFC5228" format="default"></xref> | |||
| that enables scripts to process machine-readable calendar data | that enables scripts to process machine-readable calendar data | |||
| that is encapsulated in an email message using | that is encapsulated in an email message using | |||
| <xref target="RFC2045">MIME</xref>. | MIME <xref target="RFC2045"></xref>. | |||
| Specifically, this extension provides the ability to alter | Specifically, this extension provides the ability to alter | |||
| items on a user's calendars referenced in the encapsulated | items on a user's calendars that are referenced in the encapsulated | |||
| calendar data.</t> | calendar data.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>Conventions Used in This Document</name> | <name>Conventions Used in This Document</name> | |||
| <t>Conventions for notations are as in | <t>Conventions for notations are as in | |||
| <xref target="RFC5228" section="1.1" format="default"/>, | <xref target="RFC5228" section="1.1" format="default"/>, | |||
| including use of the "Usage:" label for the definition of action | including use of the "Usage:" label for the definition of action | |||
| and tagged arguments syntax.</t> | and tagged arguments syntax.</t> | |||
| <t>This document uses terminology and concepts from | <t>This document uses terminology and concepts from | |||
| <xref target="RFC5545">iCalendar</xref> and | iCalendar <xref target="RFC5545"></xref> and | |||
| <xref target="RFC5546">iTIP</xref> to describe the processing of | iTIP <xref target="RFC5546"></xref> to describe the processing of | |||
| calendar data, but this extension can be used with any | calendar data, but this extension can be used with any | |||
| machine-readable calendar data format that can express similar | machine-readable calendar data format that can express similar | |||
| concepts.</t> | concepts.</t> | |||
| <t> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
| IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | </section> | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | ||||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | ||||
| described in BCP 14 | ||||
| <xref target="RFC2119" format="default"/> | ||||
| <xref target="RFC8174" format="default"/> | ||||
| when, and only when, they appear in all capitals, as shown | ||||
| here.</t> | ||||
| </section> | ||||
| <section anchor="capability" numbered="true" toc="default"> | <section anchor="capability" numbered="true" toc="default"> | |||
| <name>Capability Identifier</name> | <name>Capability Identifier</name> | |||
| <t>Sieve interpreters that implement this extension MUST have an | <t>Sieve interpreters that implement this extension <bcp14>MUST</bcp14> ha ve an | |||
| identifier of "processcalendar" for use with the capability | identifier of "processcalendar" for use with the capability | |||
| mechanism.</t> | mechanism.</t> | |||
| </section> | </section> | |||
| <section anchor="processcalendar" numbered="true" toc="default"> | <section anchor="processcalendar" numbered="true" toc="default"> | |||
| <name>Process Calendar Action</name> | <name>Process Calendar Action</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode name="" type="sieve"><![CDATA[ | |||
| Usage: processcalendar [ :allowpublic ] | Usage: processcalendar [ :allowpublic ] | |||
| [ :addresses <string-list> ] | [ :addresses <string-list> ] | |||
| [ :updatesonly / :calendarid <string> ] | [ :updatesonly / :calendarid <string> ] | |||
| [ :deletecancelled ] | [ :deletecancelled ] | |||
| [ :organizers <ext-list-name: string> ] | [ :organizers <ext-list-name: string> ] | |||
| [ :outcome <variablename: string> ] | [ :outcome <variablename: string> ] | |||
| [ :reason <variablename: string> ] | [ :reason <variablename: string> ] | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>The "processcalendar" action is used to parse encapsulated | <t>The "processcalendar" action is used to parse encapsulated calendar | |||
| calendar data and perform the appropriate action based on the | data and perform the appropriate action based on the content. If the | |||
| content. | calendar data is malformed in any way, it <bcp14>MUST</bcp14> be ignored | |||
| If the calendar data is malformed in any way, it MUST be ignored | and no action is taken. Otherwise, calendar objects may be created, | |||
| and no action is taken. | updated, or deleted from a given calendar. | |||
| Otherwise, based on the iTIP method | </t> | |||
| (see <xref target="RFC5546" section="1.4" />) | ||||
| of the message, calendar objects are created, updated, or | ||||
| deleted from a given calendar.</t> | ||||
| <t>This action can be used with or without the | <t>This action can be used with or without the | |||
| <xref target="RFC6134">"extlists"</xref> extension. | "extlists" extension <xref target="RFC6134"></xref>. | |||
| When the "extlists" extension is enabled in a script using | When the "extlists" extension is enabled in a script using | |||
| <require "extlists">, the script can use the | <require "extlists">, the script can use the | |||
| <xref target="organizers">:organizers</xref> argument to the | :organizers argument (<xref target="organizers"></xref>) in the | |||
| "processcalendar" action as described below. | "processcalendar" action as described below. | |||
| When the "extlists" extension is not enabled, the :organizers | When the "extlists" extension is not enabled, the :organizers | |||
| argument MUST NOT be used and MUST cause an error | argument <bcp14>MUST NOT</bcp14> be used and <bcp14>MUST</bcp14> cause an error | |||
| according to <xref target="RFC5228" />.</t> | according to <xref target="RFC5228" />.</t> | |||
| <t>This action can be used with or without the | <t>This action can be used with or without the | |||
| <xref target="RFC5229">"variables"</xref> extension. | "variables" extension <xref target="RFC5229"></xref>. | |||
| When the "variables" extension is enabled in a script using | When the "variables" extension is enabled in a script using | |||
| <require "variables">, the script can use the | <require "variables">, the script can use the | |||
| <xref target="outcome">:outcome</xref> and | :outcome (<xref target="outcome"></xref>) and | |||
| <xref target="reason">:reason</xref> arguments to the | :reason (<xref target="reason"></xref>) arguments in the | |||
| "processcalendar" action as described below. | "processcalendar" action as described below. | |||
| When the "variables" extension is not enabled, the :outcome | When the "variables" extension is not enabled, the :outcome | |||
| and :reason arguments MUST NOT be used and MUST cause an error | and :reason arguments <bcp14>MUST NOT</bcp14> be used and <bcp14>MUST</bcp 14> cause an error | |||
| according to <xref target="RFC5228" />.</t> | according to <xref target="RFC5228" />.</t> | |||
| <t>If a mail messages contains calendar data in multiple | <t>If a mail message contains calendar data in multiple | |||
| <xref target="RFC2045">MIME</xref> parts, this action MUST | MIME <xref target="RFC2045"></xref> parts, this action <bcp14>MUST</bcp14> | |||
| verify that the calendar data in each part are semantically | verify that the calendar data in each part are semantically | |||
| equivalent to one another. If the data is found to be | equivalent to one another. If the data is found to be | |||
| semantically different, the action MUST NOT process the message. | semantically different, the action <bcp14>MUST NOT</bcp14> process the mes | |||
| Otherwise, the action MUST only process one representation of | sage. | |||
| Otherwise, the action <bcp14>MUST</bcp14> only process one representation | ||||
| of | ||||
| the data.</t> | the data.</t> | |||
| <t>This action MUST NOT make any changes to the participant | <t>This action <bcp14>MUST NOT</bcp14> make any changes to the participant | |||
| status of the recipient when processing the calendar data. | status of the recipient when processing the calendar data. | |||
| The mechanism for a recipient to change their participant status | The mechanism for a recipient to change their participant status | |||
| to an event is out of scope for this document.</t> | to an event is out of scope for this document.</t> | |||
| <t>This action SHOULD remove alarms from calendar data | <t>This action <bcp14>SHOULD</bcp14> remove alarms from calendar data | |||
| before applying it to a calendar. | before applying it to a calendar. | |||
| Failure to do so could result in unwelcome notifications being | Failure to do so could result in unwelcome notifications being | |||
| triggered for the recipient.</t> | triggered for the recipient.</t> | |||
| <section anchor="allowpublic" numbered="true" toc="default"> | <section anchor="allowpublic" numbered="true" toc="default"> | |||
| <name>Allow Public Argument</name> | <name>Allow Public Argument</name> | |||
| <!-- | ||||
| <t>The optional :allowpublic argument is used to tell the | ||||
| implementation that it can process calendar data that | ||||
| is not an iTIP message (it does not contain METHOD and/or | ||||
| ORGANIZER properties) or the METHOD is PUBLISH.</t> | ||||
| <t>The optional :allowpublic argument is used to tell the | <t>The optional :allowpublic argument is used to tell the | |||
| implementation that it can process calendar data that | implementation that it can process calendar data that | |||
| does not contain any ATTENDEE properties, such as | does not contain any ATTENDEE properties, such as | |||
| iTIP messages where the METHOD is PUBLISH, or non-iTIP | iTIP messages where the METHOD is PUBLISH or non-iTIP | |||
| messages where the calendar data does not contain METHOD and/or | messages where the calendar data does not contain METHOD and/or | |||
| ORGANIZER properties.</t> | ORGANIZER properties.</t> | |||
| <t>If used in conjunction with the <xref target="organizers"> | <t>If used in conjunction with the | |||
| :organizers</xref> argument, the implementation MUST NOT | :organizers argument (<xref target="organizers"></xref>), the implementa | |||
| tion <bcp14>MUST NOT</bcp14> | ||||
| process non-iTIP messages.</t> | process non-iTIP messages.</t> | |||
| <!-- | ||||
| <t>The optional :allowpublic argument is used to tell the | <t>If :allowpublic is omitted, the implementation <bcp14>MUST NOT</bcp14 | |||
| implementation that it can process calendar data that | > | |||
| does not contain any ATTENDEE properties. | ||||
| If used in conjunction with the <xref target="organizers"> | ||||
| :organizers</xref> argument, the implementation MUST NOT | ||||
| process calendar data unless is it is a well-formed iTIP | ||||
| message, including those in which the METHOD is PUBLISH. | ||||
| Otherwise, non-iTIP calendar data may be processed.</t> | ||||
| <t>If :allowpublic is omitted, the implementation MUST NOT | ||||
| process calendar data unless is it is a well-formed iTIP | process calendar data unless is it is a well-formed iTIP | |||
| message and one of the recipient user's email addresses | message and one of the recipient user's email addresses | |||
| matches the Calendar User Address | matches the Calendar User Address | |||
| (see <xref target="RFC5545" section="3.3.3" format="default" />) | (see <xref target="RFC5545" section="3.3.3" format="default" />) | |||
| of the intended target of the message, as determined by the | of the intended target of the message, as determined by the | |||
| iTIP method (see <xref target="RFC5546" section="1.4" />) | iTIP method (see <xref target="RFC5546" section="1.4" />) | |||
| of the message:</t> | of the message:</t> | |||
| <ul empty="true" spacing="normal"> | <ul> | |||
| <li>"REPLY": Value of the "Organizer" property | <li>"REPLY": Value of the ORGANIZER property | |||
| (see <xref target="RFC5545" section="3.8.4.1" />)</li> | (see <xref target="RFC5545" section="3.8.4.3"/>)</li> | |||
| <li>"REQUEST", "CANCEL", "ADD": | <li>"REQUEST", "CANCEL", "ADD": | |||
| Value of one of the "Attendee" properties | Value of one of the ATTENDEE properties | |||
| (see <xref target="RFC5545" section="3.8.4.3" />)</li> | (see <xref target="RFC5545" section="3.8.4.1"/>)</li> | |||
| </ul> | </ul> | |||
| <t>The recipient user's email address matches the Calendar User | <t>The recipient user's email address matches the Calendar User | |||
| Address of the target if the Calendar User Address is in the | Address of the target if the Calendar User Address is in the | |||
| form of a mailto URI and the email address matches the | form of a mailto URI and the email address matches the | |||
| "addr-spec" of the URI.</t> | "addr-spec" of the URI.</t> | |||
| <t>An email address is considered to belong to the recipient if | <t>An email address is considered to belong to the recipient if | |||
| it is one of:</t> | it is one of the following:</t> | |||
| <ol> | <ul> | |||
| <li>an email address known by the implementation to be | <li>an email address known by the implementation to be | |||
| associated with the recipient,</li> | associated with the recipient,</li> | |||
| <li>the final envelope recipient address if it's available to | <li>the final envelope recipient address if it's available to | |||
| the implementation, or</li> | the implementation, or</li> | |||
| <li>an address specified by the script writer via the | <li>an address specified by the script writer via the | |||
| <xref target="addresses">:addresses</xref> argument.</li> | :addresses argument (<xref target="addresses"></xref>).</li> | |||
| </ol> | </ul> | |||
| </section> | </section> | |||
| <section anchor="addresses" numbered="true" toc="default"> | <section anchor="addresses" numbered="true" toc="default"> | |||
| <name>Addresses Argument</name> | <name>Addresses Argument</name> | |||
| <t>The optional :addresses argument is used to specify | <t>The optional :addresses argument is used to specify | |||
| email addresses that belong to the recipient in addition to | email addresses that belong to the recipient in addition to | |||
| the addresses known to the implementation.</t> | the addresses known to the implementation.</t> | |||
| </section> | </section> | |||
| <section anchor="updatesonly" numbered="true" toc="default"> | <section anchor="updatesonly" numbered="true" toc="default"> | |||
| <name>Updates Only Argument</name> | <name>Updates Only Argument</name> | |||
| <t>The optional :updatesonly argument is used to limit the | <t>The optional :updatesonly argument is used to limit the | |||
| messages processed to those targeting existing calendar | messages processed to those targeting existing calendar | |||
| objects only. | objects only. | |||
| If the message contains a new calendar object (its | If the message contains a new calendar object (its | |||
| unique identifier does | unique identifier does | |||
| not exist on any of the user's calendars), the implementation | not exist on any of the user's calendars), the implementation | |||
| MUST NOT add the object to a calendar.</t> | <bcp14>MUST NOT</bcp14> add the object to a calendar.</t> | |||
| <t>If :updatesonly is omitted, new calendar objects may be | <t>If :updatesonly is omitted, new calendar objects may be | |||
| added to one of the user's calendars.</t> | added to one of the user's calendars.</t> | |||
| <t>The :updatesonly and <xref target="calendarid">:calendarid</xref> | <t>The :updatesonly and :calendarid (<xref target="calendarid"></xref>) | |||
| arguments are incompatible with each other. It is an error if | arguments are incompatible with each other. It is an error if | |||
| both arguments are used in the same "processcalendar" action.</t> | both arguments are used in the same "processcalendar" action.</t> | |||
| </section> | </section> | |||
| <section anchor="calendarid" numbered="true" toc="default"> | <section anchor="calendarid" numbered="true" toc="default"> | |||
| <name>Calendar ID Argument</name> | <name>Calendar ID Argument</name> | |||
| <t>The optional :calendarid argument specifies the identifier | <t>The optional :calendarid argument specifies the identifier | |||
| of the calendar onto which new calendar objects should be placed.</t> | of the calendar onto which new calendar objects should be placed.</t> | |||
| <t>If :calendarid is omitted, new calendar objects will be | <t>If :calendarid is omitted, new calendar objects will be | |||
| placed on the user's "default" calendar as determined by the | placed on the user's "default" calendar as determined by the | |||
| implementation.</t> | implementation.</t> | |||
| <t>The <xref target="updatesonly">:updatesonly</xref> and :calendarid | <t>The :updatesonly (<xref target="updatesonly"></xref>) and :calendarid | |||
| arguments are incompatible with each other. It is an error if | arguments are incompatible with each other. It is an error if | |||
| both arguments are used in the same "processcalendar" action.</t> | both arguments are used in the same "processcalendar" action.</t> | |||
| </section> | </section> | |||
| <section anchor="deletecancelled" numbered="true" toc="default"> | <section anchor="deletecancelled" numbered="true" toc="default"> | |||
| <name>Delete Cancelled Argument</name> | <name>Delete Cancelled Argument</name> | |||
| <t>The optional :deletecancelled argument is used to tell the | <t>The optional :deletecancelled argument is used to tell the | |||
| implementation that if it receives a cancellation message, | implementation that if it receives a cancellation message, | |||
| it SHOULD remove the associated calendar object from the | it <bcp14>SHOULD</bcp14> remove the associated calendar object from the | |||
| calendar.</t> | calendar.</t> | |||
| <t>If :deletecancelled is omitted, the status of the | <t>If :deletecancelled is omitted, the status of the | |||
| associated calendar object will be set to cancelled and will | associated calendar object will be set to cancelled and will | |||
| remain on the calendar.</t> | remain on the calendar.</t> | |||
| </section> | </section> | |||
| <section anchor="organizers" numbered="true" toc="default"> | <section anchor="organizers" numbered="true" toc="default"> | |||
| <name>Organizers Argument</name> | <name>Organizers Argument</name> | |||
| <t>The optional :organizers argument is used to specify | <t>The optional :organizers argument is used to specify | |||
| an external list of email addresses from which the | an external list of email addresses from which the | |||
| recipient is willing to accept public events, invites, | recipient is willing to accept public events, invites, | |||
| updates, and cancellations. | updates, and cancellations. | |||
| Implementations MUST NOT process calendar data unless is it is | Implementations <bcp14>MUST NOT</bcp14> process calendar data unless is it is | |||
| a well-formed iTIP message and one of the addresses in the | a well-formed iTIP message and one of the addresses in the | |||
| external list matches the Calendar User Address of the | external list matches the Calendar User Address of the | |||
| "Organizer" property. | ORGANIZER property. | |||
| An email address in the external list matches the Calendar User | An email address in the external list matches the Calendar User | |||
| Address of the "Organizer" property if it is in the form of a | Address of the ORGANIZER property if it is in the form of a | |||
| mailto URI and the email address matches the "addr-spec" of | mailto URI and the email address matches the "addr-spec" of | |||
| the URI.</t> | the URI.</t> | |||
| <t>If :organizers is omitted, no validation of the "Organizer" | <t>If :organizers is omitted, no validation of the ORGANIZER | |||
| property is performed.</t> | property is performed.</t> | |||
| </section> | </section> | |||
| <section anchor="outcome" numbered="true" toc="default"> | <section anchor="outcome" numbered="true" toc="default"> | |||
| <name>Outcome Argument</name> | <name>Outcome Argument</name> | |||
| <t>The optional :outcome argument specifies the name of a | <t>The optional :outcome argument specifies the name of a | |||
| variable into which one of the following strings specifying | variable into which one of the following strings specifying | |||
| the outcome of the action will be stored:</t> | the outcome of the action will be stored:</t> | |||
| <ul> | <dl newline="false" spacing="normal"> | |||
| <li>"no_action": No action was performed | <dt>"no_action":</dt><dd>No action was performed | |||
| (E.g., the message didn't contain calendar data, or | (e.g., the message didn't contain calendar data, or | |||
| the set of provided options prevented the message from being | the set of provided options prevented the message from being | |||
| processed).</li> | processed).</dd> | |||
| <li>"added": A new calendar object was added to a calendar</li> | <dt>"added":</dt><dd>A new calendar object was added to a calendar.</d | |||
| <li>"updated": A calendar resource was updated, cancelled, or | d> | |||
| removed from the calendar.</li> | <dt>"updated":</dt><dd>A calendar object was updated, cancelled, or | |||
| <li>"error": The message would have been processed but | removed from the calendar.</dd> | |||
| encountered an error in doing so.</li> | <dt>"error":</dt><dd>The message would have been processed but | |||
| </ul> | encountered an error in doing so.</dd> | |||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="reason" numbered="true" toc="default"> | <section anchor="reason" numbered="true" toc="default"> | |||
| <name>Reason Argument</name> | <name>Reason Argument</name> | |||
| <t>The optional :reason argument specifies the name of a | <t>The optional :reason argument specifies the name of a | |||
| variable into which a string describing the reason for the | variable into which a string describing the reason for the | |||
| outcome will be stored. | outcome will be stored. | |||
| If no reason for the outcome is available, implementations | If no reason for the outcome is available, implementations | |||
| MUST set the variable to the empty string.</t> | <bcp14>MUST</bcp14> set the variable to the empty string.</t> | |||
| <t>For example, an outcome of "no_action" may have a reason of | <t>For example, an outcome of "no_action" may have a reason of | |||
| "only processing updates" or an outcome of "error" may have a | "only processing updates", or an outcome of "error" may have a | |||
| reason of "missing unique identifier".</t> | reason of "missing unique identifier".</t> | |||
| </section> | </section> | |||
| <section anchor="interaction" numbered="true" toc="default"> | <section anchor="interaction" numbered="true" toc="default"> | |||
| <name>Interaction with Other Sieve Actions</name> | <name>Interaction with Other Sieve Actions</name> | |||
| <t>The "processcalendar" action does not cancel Sieve's | <t>The "processcalendar" action does not cancel Sieve's | |||
| implicit keep action.</t> | implicit keep action.</t> | |||
| <t>The "processcalendar" action can only be executed once per | <t>The "processcalendar" action can only be executed once per | |||
| script. | script. | |||
| A script MUST fail with an appropriate error if it attempts to | A script <bcp14>MUST</bcp14> fail with an appropriate error if it attemp ts to | |||
| execute two or more "processcalendar" actions.</t> | execute two or more "processcalendar" actions.</t> | |||
| <t>The "processcalendar" action is incompatible with the Sieve | <t>The "processcalendar" action is incompatible with the Sieve "reject" | |||
| <xref target="RFC5429" format="default"> | and "ereject" actions <xref | |||
| reject and ereject</xref> actions.</t> | target="RFC5429" format="default"></xref>. | |||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="examples" numbered="true" toc="default"> | <section anchor="examples" numbered="true" toc="default"> | |||
| <name>Examples</name> | <name>Examples</name> | |||
| <t>The following example specifies email addresses belonging | <t>The following example specifies email addresses belonging | |||
| to the user and the identifier of the calendar onto | to the user and the identifier of the calendar onto | |||
| which to place new calendar objects:</t> | which to place new calendar objects:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode name="" type="sieve"><![CDATA[ | |||
| require [ "processcalendar" ]; | require [ "processcalendar" ]; | |||
| processcalendar :addresses [ "me@example.com", "alsome@example.com" ] | processcalendar :addresses [ "me@example.com", "alsome@example.com" ] | |||
| :calendarid "1ea6d86b-6c7f-48a2-bed3-2a4c40ec281a"; | :calendarid "1ea6d86b-6c7f-48a2-bed3-2a4c40ec281a"; | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>The following example tells the interpreter to process | <t>The following example tells the interpreter to process | |||
| flight itineraries from a particular airline:</t> | flight itineraries from a particular airline:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode name="" type="sieve"><![CDATA[ | |||
| require [ "processcalendar" ]; | require [ "processcalendar" ]; | |||
| if allof (address ["from", "sender"] "airline@example.com", | if allof (address ["from", "sender"] "airline@example.com", | |||
| header :contains "subject" "itinerary") { | header :contains "subject" "itinerary") { | |||
| processcalendar :allowpublic; | processcalendar :allowpublic; | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| <t>The following example adds headers to the message if | <t>The following example adds headers to the message if | |||
| calendar data isn't processed :</t> | calendar data isn't processed :</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <sourcecode name="" type="sieve"><![CDATA[ | |||
| require [ "processcalendar", "variables", "editheader" ]; | require [ "processcalendar", "variables", "editheader" ]; | |||
| set "processcal_outcome" "no_action"; | set "processcal_outcome" "no_action"; | |||
| set "processcal_reason" ""; | set "processcal_reason" ""; | |||
| processcalendar :outcome "processcal_outcome" | processcalendar :outcome "processcal_outcome" | |||
| :reason "processcal_reason"; | :reason "processcal_reason"; | |||
| if not string :is "${processcal_outcome}" ["added", "updated"] { | if not string :is "${processcal_outcome}" ["added", "updated"] { | |||
| addheader "X-ProcessCal-Outcome" "${processcal_outcome}"; | addheader "X-ProcessCal-Outcome" "${processcal_outcome}"; | |||
| addheader "X-ProcessCal-Reason" "${processcal_reason}"; | addheader "X-ProcessCal-Reason" "${processcal_reason}"; | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </section> | </section> | |||
| </section> <!-- processcalendar --> | </section> | |||
| <section anchor="security" numbered="true" toc="default"> | <section anchor="security" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>This document describes a method for altering an electronic | <t>This document describes a method for altering an electronic | |||
| calendar without user interaction. As such, unless proper | calendar without user interaction. As such, unless proper | |||
| precautions are undertaken, it can be used as a vector for | precautions are undertaken, it can be used as a vector for | |||
| calendar abuse.</t> | calendar abuse.</t> | |||
| <t>It is critical that implementations correctly implement the | <t>It is critical that implementations correctly implement the | |||
| behavior and restrictions described throughout this document. | behavior and restrictions described throughout this document. | |||
| Security issues associated with processing unsolicited | Security issues associated with processing unsolicited | |||
| calendar data, and methods for mitigating them are discussed in | calendar data and methods for mitigating them are discussed in | |||
| <xref target="CALSPAM" format="default"/>. Specifically:</t> | <xref target="CALSPAM" format="default"/>. Specifically:</t> | |||
| <ul> | <ul> | |||
| <li>Processcalendar MUST NOT process any calendar data | <li>The "processcalendar" extension <bcp14>MUST NOT</bcp14> process any calendar data | |||
| enclosed in a message flagged as spam and/or malicious. | enclosed in a message flagged as spam and/or malicious. | |||
| The <xref target="RFC5235">spamtest and virustest</xref> | The "spamtest" and "virustest" extensions <xref target="RFC5235"></xref> | |||
| extensions (or the <xref target="RFC5228">header</xref> test | (or the header test <xref target="RFC5228"></xref> | |||
| if messages are scanned outside of the Sieve | if messages are scanned outside of the Sieve | |||
| interpreter) can be used to make processcalendar conditional | interpreter) can be used to make "processcalendar" conditional | |||
| on "safe" content.</li> | on "safe" content.</li> | |||
| <li>Processcalendar SHOULD NOT process calendar data | <li>The "processcalendar" extension <bcp14>SHOULD NOT</bcp14> process ca lendar data | |||
| received from a potentially malicious sender. | received from a potentially malicious sender. | |||
| The <xref target="RFC5228">address and envelope</xref> tests | The address and envelope tests <xref target="RFC5228"></xref> | |||
| (optionally along with the <xref target="RFC6134">extlists</xref> | (optionally along with the "extlists" extension <xref target="RFC6134">< | |||
| extension) can be used to create a "deny list" and make | /xref>) can be used to create a "deny list" and make | |||
| processcalendar conditional on the sender not being a member | "processcalendar" conditional on the sender not being a member | |||
| of that list.</li> | of that list.</li> | |||
| <li>Similarly, processcalendar SHOULD only process calendar | <li>Similarly, the "processcalendar" extension <bcp14>SHOULD</bcp14> onl y process calendar | |||
| data received from a known sender. | data received from a known sender. | |||
| The <xref target="RFC5228">address and envelope</xref> tests | The address and envelope tests <xref target="RFC5228"></xref> | |||
| (optionally along with the <xref target="RFC6134">extlists</xref> | (optionally along with the "extlists" extension <xref target="RFC6134">< | |||
| extension) can be used to create an "allow list" and make | /xref>) can be used to create an "allow list" and make | |||
| processcalendar conditional on the sender being a member of | "processcalendar" conditional on the sender being a member of | |||
| that list.</li> | that list.</li> | |||
| <li>Processcalendar SHOULD NOT process calendar data received | <li>The "processcalendar" extension <bcp14>SHOULD NOT</bcp14> process ca lendar data received | |||
| from an untrustworthy sender. Trustworthiness may depend on | from an untrustworthy sender. Trustworthiness may depend on | |||
| whether the message has a valid signature (see | whether the message has a valid signature (see | |||
| <xref target="RFC8551"/>) and/or on whether one or more of | <xref target="RFC8551"/>) and/or on whether one or more of the following | |||
| <xref target="RFC7208">Sender Policy Framework (SPF)</xref>, | passes or fails on the message: | |||
| <xref target="RFC6376">DomainKeys Identified Mail (DKIM) | Sender Policy Framework (SPF) <xref target="RFC7208"></xref>, | |||
| Signatures</xref>, | DomainKeys Identified Mail (DKIM) | |||
| <xref target="RFC7489">Domain-based Message Authentication, | Signatures <xref target="RFC6376"></xref>, and | |||
| Reporting, and Conformance (DMARC)</xref> passes or fails on | Domain-based Message Authentication, | |||
| the message. | Reporting, and Conformance (DMARC) <xref target="RFC7489"></xref>. | |||
| The mechanism by which a Sieve interpreter accesses the results of | The mechanism by which a Sieve interpreter accesses the results of | |||
| such checks is outside the scope of this document, but if the | such checks is outside the scope of this document, but if the | |||
| results are available in the message's header fields, | results are available in the message's header fields, | |||
| the <xref target="RFC5228">header</xref> test can be used to make | the header test <xref target="RFC5228"></xref> can be used to make | |||
| processcalendar conditional on the sender being trustworthy.</li> | "processcalendar" conditional on the sender being trustworthy.</li> | |||
| </ul> | </ul> | |||
| <t>Additionally, if the calendar data has embedded (a.k.a. inline) | <t>Additionally, if the calendar data has embedded (a.k.a. inline) | |||
| attachments, implementations SHOULD:</t> | attachments, implementations <bcp14>SHOULD</bcp14>:</t> | |||
| <ul> | <ul> | |||
| <li>Decode the embedded attachment, if necessary.</li> | <li>Decode the embedded attachment, if necessary.</li> | |||
| <li>Scan the (decoded) attachment for malicious content.</li> | <li>Scan the (decoded) attachment for malicious content.</li> | |||
| </ul> | </ul> | |||
| <t>If an attachment is found to be malicious, processcalendar | <t>If an attachment is found to be malicious, "processcalendar" | |||
| MUST NOT process the calendar data.</t> | <bcp14>MUST NOT</bcp14> process the calendar data.</t> | |||
| </section> | </section> | |||
| <section anchor="privacy" numbered="true" toc="default"> | <section anchor="privacy" numbered="true" toc="default"> | |||
| <name>Privacy Considerations</name> | <name>Privacy Considerations</name> | |||
| <t>It is believed that this extension doesn't introduce any | <t>It is believed that this extension doesn't introduce any | |||
| privacy considerations beyond those in | privacy considerations beyond those in | |||
| <xref target="RFC5228" format="default"/>.</t> | <xref target="RFC5228" format="default"/>.</t> | |||
| </section> | </section> | |||
| skipping to change at line 513 ¶ | skipping to change at line 480 ¶ | |||
| <section anchor="privacy" numbered="true" toc="default"> | <section anchor="privacy" numbered="true" toc="default"> | |||
| <name>Privacy Considerations</name> | <name>Privacy Considerations</name> | |||
| <t>It is believed that this extension doesn't introduce any | <t>It is believed that this extension doesn't introduce any | |||
| privacy considerations beyond those in | privacy considerations beyond those in | |||
| <xref target="RFC5228" format="default"/>.</t> | <xref target="RFC5228" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>Registration of Sieve Extension</name> | <name>Registration of Sieve Extension</name> | |||
| <t>This document defines the following new Sieve extension | <t>This document defines the following new Sieve extension, which IANA h | |||
| to be added to the registry defined in | as added to the <eref target="https://www.iana.org/assignments/sieve-extensions" | |||
| Section 6.2 of <xref target="RFC5228" format="default"/> and located her | >"Sieve | |||
| e: | Extensions" registry</eref>. The registry is defined in <xref target="RF | |||
| <eref target="https://www.iana.org/assignments/sieve-extensions/sieve-ex | C5228" format="default" sectionFormat="of" section="6.2"/>. | |||
| tensions.xhtml#sieve-extensions"/> | ||||
| </t> | ||||
| <t>IANA are requested to add a capability to the Sieve | ||||
| Extensions registry: | ||||
| </t> | </t> | |||
| <ul empty="true" spacing="normal"> | ||||
| <li>To: iana@iana.org</li> | <dl newline="false" spacing="normal"> | |||
| <li>Subject: Registration of new Sieve extension</li> | <dt>Capability name:</dt><dd>processcalendar</dd> | |||
| <li>Capability name: processcalendar</li> | <dt>Description:</dt><dd>Adds the "processcalendar" action command to | |||
| <li>Description: Adds the "processcalendar" action command to | add and update items on a user's calendars.</dd> | |||
| add and update items on a user's calendars.</li> | <dt>RFC number:</dt><dd>RFC 9671</dd> | |||
| <li>RFC number: RFC XXXX</li> | <dt>Contact address:</dt><dd>Sieve discussion list | |||
| <li>Contact address: The Sieve discussion list | <sieve@ietf.org></dd> | |||
| <sieve@ietf.org></li> | </dl> | |||
| </ul> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | <section numbered="true" toc="default"> | |||
| <name>Registration of Sieve Action</name> | <name>Registration of Sieve Action</name> | |||
| <t>This document defines the following new Sieve action | ||||
| to be added to the registry defined in | <t>This document defines the following new Sieve action, which IANA has | |||
| Section 2.1 of <xref target="RFC9122" format="default"/> and located her | added to the <eref | |||
| e: | target="https://www.iana.org/assignments/sieve-extensions">"Sieve Action | |||
| <eref target="https://www.iana.org/assignments/sieve-extensions/sieve-ex | s" registry | |||
| tensions.xhtml#sieve-actions"/> | </eref>. The | |||
| </t> | registry is defined in <xref target="RFC9122" format="default" | |||
| <t>IANA are requested to add a capability to the Sieve | sectionFormat="of" section="2.1"/>. | |||
| Actions registry: | ||||
| </t> | </t> | |||
| <ul empty="true" spacing="normal"> | ||||
| <li>To: iana@iana.org</li> | ||||
| <li>Subject: Registration of new Sieve action</li> | ||||
| <li>Name: processcalendar</li> | ||||
| <li>Description: Add and update items on a user's calendars</li> | ||||
| <li>References: RFC XXXX <xref target="RFC5229"/> | ||||
| <xref target="RFC6134"/></li> | ||||
| <li>Capabilities: "processcalendar", "variables", "extlists"</li> | ||||
| <li>Action Interactions: This action is incompatible with | ||||
| "reject" and "ereject" actions</li> | ||||
| <li>Cancels Implicit Keep? No</li> | ||||
| <li>Can Use with IMAP Events? No</li> | ||||
| </ul> | ||||
| </section> | ||||
| </section> <!-- IANA --> | ||||
| <section numbered="true" toc="default"> | <dl newline="false" spacing="normal"> | |||
| <name>Acknowledgments</name> | <dt>Name:</dt><dd>processcalendar</dd> | |||
| <t>The authors would like to thank the following individuals for | <dt>Description:</dt><dd>Add and update items on a user's calendars</d | |||
| contributing their ideas and support for writing this | d> | |||
| specification: Ned Freed and Alexey Melnikov.</t> | <dt>References:</dt><dd>RFC 9671 <xref target="RFC5229"/> | |||
| <xref target="RFC6134"/></dd> | ||||
| <dt>Capabilities:</dt><dd>"processcalendar", "variables", "extlists"</ | ||||
| dd> | ||||
| <dt>Action Interactions:</dt><dd>This action is incompatible with the | ||||
| "reject" and "ereject" actions.</dd> | ||||
| <dt>Cancels Implicit Keep?</dt><dd>No</dd> | ||||
| <dt>Can Use with IMAP Events?</dt><dd>No</dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5228.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5229.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
| .8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6047.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6134.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.9122.xml"/> | ||||
| <reference anchor="CALSPAM" | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| target="https://standards.calconnect.org/csd/cc-18003.html"> | 119.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 228.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 229.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.81 | ||||
| 74.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 047.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 134.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 122.xml"/> | ||||
| <reference anchor="CALSPAM" target="https://standards.calconnect.org/csd | ||||
| /cc-18003.html"> | ||||
| <front> | <front> | |||
| <title>Calendar operator practices - Guidelines to protect | <title>Calendar operator practices - Guidelines to protect against | |||
| against calendar abuse</title> | calendar abuse</title> | |||
| <author> | <author> | |||
| <organization>The Calendaring and Scheduling Consortium</organizat ion> | <organization>The Calendaring and Scheduling Consortium</organizat ion> | |||
| </author> | </author> | |||
| <date year="2019"/> | <date year="2019"/> | |||
| </front> | </front> | |||
| <seriesInfo name="CC/R" value="18003"/> | <seriesInfo name="CC/R" value="18003:2019"/> | |||
| </reference> | </reference> | |||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| FC.2045.xml"/> | 045.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| FC.5545.xml"/> | 545.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| FC.5235.xml"/> | 235.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| FC.5546.xml"/> | 546.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| FC.5429.xml"/> | 429.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.89 | |||
| .8984.xml"/> | 84.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.85 | |||
| .8551.xml"/> | 51.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.63 | |||
| .6376.xml"/> | 76.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.74 | |||
| .7489.xml"/> | 89.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.72 | |||
| .7208.xml"/> | 08.xml"/> | |||
| <!-- <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf- | ||||
| calext-jscalendarbis.xml"/>--> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <section | <section numbered="false" toc="default"> | |||
| title="Change History (To be removed by RFC Editor before publication)"> | <name>Acknowledgments</name> | |||
| <t>Changes since draft-ietf-sieve-processimip-08:</t> | <t>The authors would like to thank the following individuals for | |||
| <ol> | contributing their ideas and support for writing this | |||
| <li>Added a consequence of not removing alarms before applying | specification: <contact fullname="Ned Freed"/> and <contact fullname="Alex | |||
| data to a calendar.</li> | ey Melnikov"/>.</t> | |||
| <li>Changed iCalendar-specific "UID" to generic "unique | ||||
| identifier".</li> | ||||
| <li>Use a normative SHOULD for :deletecancelled argument.</li> | ||||
| <li>Removed Implementation Status section.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-07:</t> | ||||
| <ol> | ||||
| <li>Fixed Sieve Action registration to include all associated | ||||
| capabilites and their references.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-06:</t> | ||||
| <ol> | ||||
| <li>Fixed example that was still using :errstr rather than | ||||
| :reason.</li> | ||||
| <li>Explicitly stated that the :updateonly and :calendarid | ||||
| options are incompatible with each each.</li> | ||||
| <li>Explicitly stated that if :allowpublic is used with :organizers | ||||
| that non-iTIP messages MUST NOT be processed.</li> | ||||
| <li>Updated security considerations to use "deny list" and | ||||
| "allow list", and to add a bullet discussing use of S/MIME, | ||||
| SPF, DKIM, and DMARC.</li> | ||||
| <li>Updated the status of the Cyrus implementation.</li> | ||||
| <li>Miscellaneous editorial changes.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-05:</t> | ||||
| <ol> | ||||
| <li>Renamed :errstr to :reason and added examples.</li> | ||||
| <li>Miscellaneous editorial changes.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-04:</t> | ||||
| <ol> | ||||
| <li>Miscellaneous editorial changes.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-03:</t> | ||||
| <ol> | ||||
| <li>Added text about multiple MIME parts containing calendar data.</li> | ||||
| <li>Added text about embedded attachments to Security | ||||
| Considerations.</li> | ||||
| <li>Added :organizers option if "extlists" is supported.</li> | ||||
| <li>Miscellaneous editorial changes.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-02:</t> | ||||
| <ol> | ||||
| <li>Renamed :nonitip to :allowpublic to cover both non-iTIP | ||||
| and METHOD:PUBLIC messages.</li> | ||||
| <li>Renamed :deletecanceled to :deletecancelled to match | ||||
| RFC5545 language.</li> | ||||
| <li>Specified that this action MUST NOT alter a recipient's | ||||
| participation status.</li> | ||||
| <li>:errstr MUST be set to the empty string if no reason for | ||||
| the outcome is available.</li> | ||||
| <li>Added the "Interaction with Other Sieve Actions" subsection.</li> | ||||
| <li>Add Security Considerations.</li> | ||||
| <li>Added action registration.</li> | ||||
| <li>Added three issues for discussion.</li> | ||||
| <li>Miscellaneous editorial changes.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-01:</t> | ||||
| <ol> | ||||
| <li>Changed the name of the action from processimip to | ||||
| processcalendar.</li> | ||||
| <li>The action is now independent of iMIP and is calendar data | ||||
| format agnostic.</li> | ||||
| <li>Added examples.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-ietf-sieve-processimip-00:</t> | ||||
| <ol> | ||||
| <li>No changes.</li> | ||||
| </ol> | ||||
| <t>Changes since draft-murchison-sieve-processimip-00:</t> | ||||
| <ol> | ||||
| <li>Document name change only.</li> | ||||
| </ol> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 92 change blocks. | ||||
| 339 lines changed or deleted | 235 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||