rfc9074xml2.original.xml | rfc9074.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' | ||||
[ | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" updates="5545" ipr="trust200902" | |||
<!ENTITY rfc2119 PUBLIC '' | docName="draft-ietf-calext-valarm-extensions-07" number="9074" obsoletes="" sub | |||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'> | missionType="IETF" category="std" consensus="true" xml:lang="en" tocInclude="tru | |||
<!ENTITY rfc3261 PUBLIC '' | e" symRefs="true" sortRefs="true" | |||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3261.xml'> | tocDepth="2" version="3"> | |||
<!ENTITY rfc3860 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3860.xml'> | ||||
<!ENTITY rfc3966 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3966.xml'> | ||||
<!ENTITY rfc4791 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4791.xml'> | ||||
<!ENTITY rfc5545 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5545.xml'> | ||||
<!ENTITY rfc5546 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5546.xml'> | ||||
<!ENTITY rfc5724 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5724.xml'> | ||||
<!ENTITY rfc5870 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5870.xml'> | ||||
<!ENTITY rfc7986 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7986.xml'> | ||||
<!ENTITY rfc8174 PUBLIC '' | ||||
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml'> | ||||
<!ENTITY idEventPub PUBLIC '' | ||||
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-calext-eventpub-e | ||||
xtensions.xml'> | ||||
]> | ||||
<?rfc toc="yes"?> | ||||
<?rfc comments="yes"?> | ||||
<?rfc inline="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc tocdepth="2"?> | ||||
<?rfc strict="yes"?> | ||||
<rfc category="std" updates='5545' | ||||
ipr='trust200902' docName='draft-ietf-calext-valarm-extensions-07'> | ||||
<front> | <front> | |||
<title abbrev="VALARM Extensions">VALARM Extensions for iCalendar</title> | <title abbrev="VALARM Extensions">"VALARM" Extensions for iCalenda | |||
r</title> | ||||
<seriesInfo name="RFC" value="9074"/> | ||||
<author initials="C." surname="Daboo" fullname="Cyrus Daboo"> | <author initials="C." surname="Daboo" fullname="Cyrus Daboo"> | |||
<organization abbrev="Apple">Apple Inc.</organization> | <organization abbrev="Apple">Apple Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>1 Infinite Loop</street> | <street>1 Infinite Loop</street> | |||
<city>Cupertino</city> | <city>Cupertino</city> | |||
<region>CA</region> | <region>CA</region> | |||
<code>95014</code> | <code>95014</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>cyrus@daboo.name</email> | <email>cyrus@daboo.name</email> | |||
<uri>http://www.apple.com/</uri> | <uri>http://www.apple.com/</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<author role="editor" initials="K." surname="Murchison" | <author role="editor" initials="K." surname="Murchison" fullname="Kenneth Mu | |||
fullname="Kenneth Murchison"> | rchison"> | |||
<organization abbrev="Fastmail">Fastmail US LLC</organization> | <organization abbrev="Fastmail">Fastmail US LLC</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>1429 Walnut St, Suite 1201</street> | <street>1429 Walnut St</street> | |||
<city>Philadephia</city> | <extaddr>Suite 1201</extaddr> | |||
<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> | |||
<uri>http://www.fastmail.com/</uri> | <uri>http://www.fastmail.com/</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<date /> | <date year="2021" month="August" /> | |||
<area>Applications</area> | <area>Applications</area> | |||
<keyword>alarms</keyword> | <keyword>alarms</keyword> | |||
<keyword>calendaring</keyword> | <keyword>calendaring</keyword> | |||
<keyword>iCalendar</keyword> | <keyword>iCalendar</keyword> | |||
<keyword>CalDAV</keyword> | <keyword>CalDAV</keyword> | |||
<abstract> | <abstract> | |||
<t>This document defines a set of extensions to the iCalendar | <t>This document defines a set of extensions to the iCalendar | |||
VALARM component to enhance use of alarms and improve | "VALARM" component to enhance the use of alarms and improve | |||
interoperability between clients and servers.</t> | interoperability between clients and servers.</t> | |||
<t>This document updates RFC 5545.</t> | ||||
<t>This document updates RFC5545.</t> | ||||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section title='Introduction'> | <section numbered="true" toc="default"> | |||
<t>The <xref target="RFC5545">iCalendar</xref> specification | <name>Introduction</name> | |||
<t>The <xref target="RFC5545" format="default">iCalendar specification</xr | ||||
ef> | ||||
defines a set of components used to describe calendar data. One | defines a set of components used to describe calendar data. One | |||
of those is the "VALARM" component which appears as a | of those is the "VALARM" component, which appears as a | |||
sub-component of "VEVENT" and "VTODO" components. The "VALARM" | subcomponent of the "VEVENT" and "VTODO" components. The "VALARM" | |||
component is used to specify a reminder for an event or | component is used to specify a reminder for an event or | |||
task. Different alarm actions are possible, as are different | task. Different alarm actions are possible, as are different | |||
ways to specify how the alarm is triggered.</t> | ways to specify how the alarm is triggered.</t> | |||
<t>As iCalendar has become more widely used and as client-server | <t>As iCalendar has become more widely used and as client-server | |||
protocols such as <xref target="RFC4791">CalDAV</xref> have | protocols, such as <xref target="RFC4791" format="default">Calendaring Ext | |||
ensions to WebDAV | ||||
(CalDAV)</xref>, have | ||||
become more prevalent, several issues with "VALARM" components | become more prevalent, several issues with "VALARM" components | |||
have arisen. Most of these relate to the need to extend the | have arisen. Most of these relate to the need to extend the | |||
existing "VALARM" component with new properties and behaviors to | existing "VALARM" component with new properties and behaviors to | |||
allow clients and servers to accomplish specific tasks in an | allow clients and servers to accomplish specific tasks in an | |||
interoperable manner. For example, clients typically need a way | interoperable manner. For example, clients typically need a way | |||
to specify that an alarm has been dismissed by a calendar user, | to specify that an alarm has been dismissed by a calendar user | |||
or has been "snoozed" by a set amount of time. To date, this has | or has been "snoozed" by a set amount of time. To date, this has | |||
been done through the use of custom "X-" properties specific to | been done through the use of custom "X-" properties specific to | |||
each client implementation, leading to poor | each client implementation, leading to poor | |||
interoperability.</t> | interoperability.</t> | |||
<t>This specification defines a set of extensions to "VALARM" | <t>This specification defines a set of extensions to "VALARM" | |||
components to cover common requirements for alarms not currently | components to cover common requirements for alarms not currently | |||
addressed in iCalendar. Each extension is defined in a separate | addressed in iCalendar. Each extension is defined in a separate | |||
section below. For the most part, each extension can be | section below. For the most part, each extension can be | |||
supported independently of the others, though in some cases one | supported independently of the others; though, in some cases, one | |||
extension will require another. In addition, this specification | extension will require another. In addition, this specification | |||
describes mechanisms by which clients can interoperably | describes mechanisms by which clients can interoperably | |||
implement common features such as "snoozing".</t> | implement common features, such as "snoozing".</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Conventions Used in This Document</name> | ||||
<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> | ||||
<section title='Conventions Used in This Document'> | <t>The notation used in this memo to (re-)define iCalendar elements is th | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | e ABNF notation of <xref target="RFC5234"/> as used by <xref target="RFC5545"/>. | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | Any syntax elements shown below that are not explicitly defined in this speci | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | fication come from iCalendar <xref target="RFC5545"/>.</t> | |||
described in BCP 14 | ||||
<xref target='RFC2119' /> <xref target='RFC8174' /> | ||||
when, and only when, they appear in all capitals, as shown here.</t> | ||||
<t>When XML element types in the namespaces "DAV:" and | <t>When XML element types in the namespaces "DAV:" and | |||
"urn:ietf:params:xml:ns:caldav" are referenced in this document | "urn:ietf:params:xml:ns:caldav" are referenced in this document | |||
outside of the context of an XML fragment, the string "DAV:" and | outside of the context of an XML fragment, the string "DAV:" and | |||
"CALDAV:" will be prefixed to the element type names | "CALDAV:" will be prefixed to the element type names, | |||
respectively.</t> | respectively.</t> | |||
</section> | </section> | |||
<section anchor="syntax" numbered="true" toc="default"> | ||||
<section title="Extensible syntax for VALARM" anchor="syntax"> | <name>Extensible Syntax for VALARM</name> | |||
<t>Section 3.6.6 of <xref target="RFC5545" /> defines the syntax | <t><xref target="RFC5545" sectionFormat="of" section="3.6.6"/> defines the | |||
syntax | ||||
for "VALARM" components and properties within them. However, as | for "VALARM" components and properties within them. However, as | |||
written, it is hard to extend this by adding, e.g., a new | written, it is hard to extend this, e.g., by adding a new | |||
property common to all types of alarm. Since many of the | property common to all types of alarms. Since many of the | |||
extensions defined in this document need to extend the base | extensions defined in this document need to extend the base | |||
syntax, an alternative form for the base syntax is defined here, | syntax, an alternative form for the base syntax is defined here, | |||
with the goal of simplifying specification of the extensions | with the goal of simplifying specification of the extensions | |||
while augmenting the existing functionality defined in | while augmenting the existing functionality defined in | |||
<xref target="RFC5545"/> to allow for nested sub-components | <xref target="RFC5545" format="default"/> to allow for nested subcomponent s | |||
(as required by | (as required by | |||
<xref target="proximity">proximity alarm triggers</xref>).</t> | <xref target="proximity" format="default">proximity alarm triggers</xref>) | |||
.</t> | ||||
<t>A "VALARM" calendar component is redefined by the following notation: | ||||
</t> | ||||
<t>A "VALARM" calendar component is re-defined by the following notation: | <sourcecode type="abnf"><![CDATA[ | |||
<figure> | ||||
<artwork name="abnf"><![CDATA[ | ||||
alarmcext = "BEGIN" ":" "VALARM" CRLF | alarmcext = "BEGIN" ":" "VALARM" CRLF | |||
*alarmprop *alarm-subcomp | *alarmprop *alarm-subcomp | |||
"END" ":" "VALARM" CRLF | "END" ":" "VALARM" CRLF | |||
alarmprop = ( | alarmprop = ( | |||
; the following are REQUIRED, | ; the following are REQUIRED | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
action / trigger / | action / trigger / | |||
; one set of action properties MUST be | ; one set of action properties MUST be | |||
; present and MUST match the action specified | ; present and MUST match the action specified | |||
; in the ACTION property | ; in the ACTION property | |||
actionprops / | actionprops / | |||
; the following are OPTIONAL, | ; the following are OPTIONAL | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
x-prop / iana-prop | x-prop / iana-prop | |||
) | ) | |||
actionprops = *audiopropext / *disppropext / *emailpropext | actionprops = *audiopropext / *disppropext / *emailpropext | |||
audiopropext = ( | audiopropext = ( | |||
; 'duration' and 'repeat' are both OPTIONAL, | ; 'duration' and 'repeat' are both OPTIONAL | |||
; and MUST NOT occur more than once each, | ; and MUST NOT occur more than once each, | |||
; but if one occurs, so MUST the other | ; but if one occurs, so MUST the other | |||
duration / repeat / | duration / repeat / | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
attach | attach | |||
) | ) | |||
disppropext = ( | disppropext = ( | |||
; the following are REQUIRED, | ; the following are REQUIRED | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
description / | description / | |||
; 'duration' and 'repeat' are both OPTIONAL, | ; 'duration' and 'repeat' are both OPTIONAL | |||
; and MUST NOT occur more than once each, | ; and MUST NOT occur more than once each, | |||
; but if one occurs, so MUST the other | ; but if one occurs, so MUST the other | |||
duration / repeat | duration / repeat | |||
) | ) | |||
emailpropext = ( | emailpropext = ( | |||
; the following are all REQUIRED, | ; the following are all REQUIRED | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
description / summary / | description / summary / | |||
; the following is REQUIRED, | ; the following is REQUIRED | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
attendee / | attendee / | |||
; 'duration' and 'repeat' are both OPTIONAL, | ; 'duration' and 'repeat' are both OPTIONAL | |||
; and MUST NOT occur more than once each, | ; and MUST NOT occur more than once each, | |||
; but if one occurs, so MUST the other | ; but if one occurs, so MUST the other | |||
duration / repeat | duration / repeat | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
attach | attach | |||
) | ) | |||
alarm-subcomp = ( | alarm-subcomp = ( | |||
; the following are OPTIONAL, | ; the following are OPTIONAL | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
x-comp / iana-comp | x-comp / iana-comp | |||
) | ) | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
</section> | </section> | |||
<section anchor="uid" numbered="true" toc="default"> | ||||
<section title="Alarm Unique Identifier" anchor="uid"> | <name>Alarm Unique Identifier</name> | |||
<t>This extension adds a "UID" | <t>This extension adds a "UID" | |||
property to "VALARM" components to allow a unique identifier to | property to "VALARM" components to allow a unique identifier to | |||
be specified. The value of this property can then be used to refer | be specified. The value of this property can then be used to refer | |||
uniquely to the "VALARM" component.</t> | uniquely to the "VALARM" component.</t> | |||
<t>The "UID" property defined here follows the definition in | <t>The "UID" property defined here follows the definition in | |||
Section 3.8.4.7 of <xref target="RFC5545" /> with the security | <xref target="RFC5545" sectionFormat="of" section="3.8.4.7"/> with the sec | |||
and privacy updates in Section 5.3 of <xref target="RFC7986" />. | urity | |||
In particular it MUST be a globally unique identifier that does | and privacy updates in <xref target="RFC7986" sectionFormat="of" section=" | |||
5.3"/>. | ||||
In particular, it <bcp14>MUST</bcp14> be a globally unique identifier that | ||||
does | ||||
not contain any security- or privacy-sensitive information.</t> | not contain any security- or privacy-sensitive information.</t> | |||
<t>The "VALARM" component defined in <xref target="syntax" format="default | ||||
<t>The "VALARM" component defined in <xref target="syntax" /> is | "/> is | |||
extended here as: | extended here as: | |||
<figure> | </t> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
alarmprop =/ ( | alarmprop =/ ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
uid | uid | |||
) | ) | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
</section> | </section> | |||
<section anchor="RELATED" numbered="true" toc="default"> | ||||
<section title="Alarm Related To" anchor="RELATED"> | <name>Alarm Related To</name> | |||
<t>It is often convenient to relate one or more "VALARM" | <t>It is often convenient to relate one or more "VALARM" | |||
components to other "VALARM" components (e.g., see <xref | components to other "VALARM" components (e.g., see <xref target="snooze" f | |||
target="snooze"/>). This can be accomplished if the "VALARM" | ormat="default"/>). This can be accomplished if the "VALARM" | |||
components each have their own "UID" property (as per <xref | components each have their own "UID" property (as per <xref target="uid" f | |||
target="uid" />).</t> | ormat="default"/>).</t> | |||
<t>This specification updates the usage of the "RELATED-TO" | <t>This specification updates the usage of the "RELATED-TO" | |||
property defined in Section 3.8.4.5 of <xref target="RFC5545" /> | property defined in <xref target="RFC5545" sectionFormat="of" section="3.8 .4.5"/> | |||
to enable its use with "VALARM" components. Specific types of | to enable its use with "VALARM" components. Specific types of | |||
relationships between "VALARM" components can be identified by | relationships between "VALARM" components can be identified by | |||
registering new values for the "RELTYPE" property parameter | registering new values for the "RELTYPE" property parameter | |||
defined in Section 3.2.15 of <xref target="RFC5545" />.</t> | defined in <xref target="RFC5545" sectionFormat="of" section="3.2.15"/>.</ | |||
t> | ||||
<t>The "VALARM" component defined in <xref target="syntax" /> is | <t>The "VALARM" component defined in <xref target="syntax" format="default | |||
"/> is | ||||
extended here as: | extended here as: | |||
<figure> | </t> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
alarmprop =/ ( | alarmprop =/ ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
related | related | |||
) | ) | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Alarm Acknowledgement"> | <name>Alarm Acknowledgement</name> | |||
<t>There is currently no way for a "VALARM" component to | <t>There is currently no way for a "VALARM" component to | |||
indicate whether it has been triggered and acknowledged. With | indicate whether it has been triggered and acknowledged. With | |||
the advent of a standard client/server protocol for calendaring | the advent of a standard client/server protocol for calendaring | |||
and scheduling data (<xref target="RFC4791" />) it is quite | and scheduling data (<xref target="RFC4791" format="default"/>), it is qui te | |||
possible for an event with an alarm to exist on multiple clients | possible for an event with an alarm to exist on multiple clients | |||
in addition to the server. If each of those is responsible for | in addition to the server. If each of those is responsible for | |||
performing the action when an alarm triggers, then multiple | performing the action when an alarm triggers, then multiple | |||
"alerts" are generated by different devices. In such a | "alerts" are generated by different devices. In such a | |||
situation, a calendar user would like to be able to "dismiss" | situation, a calendar user would like to be able to "dismiss" | |||
the alarm on one device and have it automatically dismissed on | the alarm on one device and have it automatically dismissed on | |||
the others too.</t> | the others, too.</t> | |||
<t>Also, with recurring events that have alarms, it is important | <t>Also, with recurring events that have alarms, it is important | |||
to know when the last alarm in the recurring set was | to know when the last alarm in the recurring set was | |||
acknowledged, so that the client can determine whether past | acknowledged so that the client can determine whether past | |||
alarms have been missed.</t> | alarms have been missed.</t> | |||
<t>To address these needs, this specification adds an | <t>To address these needs, this specification adds an | |||
"ACKNOWLEDGED" property to "VALARM" components to indicate when | "ACKNOWLEDGED" property to "VALARM" components to indicate when | |||
the alarm was last acknowledged (or sent, if acknowledgement is | the alarm was last acknowledged (or sent, if acknowledgement is | |||
not possible). | not possible). | |||
This is defined by the | This is defined by the | |||
syntax below. | syntax below. | |||
<figure> | </t> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
alarmprop =/ ( | alarmprop =/ ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
acknowledged | acknowledged | |||
) | ) | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | <section anchor="ACKNOWLEDGED" numbered="true" toc="default"> | |||
<section title="Acknowledged Property" anchor="ACKNOWLEDGED"> | <name>Acknowledged Property</name> | |||
<t> | <dl newline="false" spacing="normal"> | |||
<list style="hanging"> | <dt>Property Name:</dt> | |||
<t hangText="Property Name:">ACKNOWLEDGED</t> | <dd>ACKNOWLEDGED</dd> | |||
<t hangText="Purpose:">This property specifies the UTC | <dt>Purpose:</dt> | |||
<dd>This property specifies the UTC | ||||
date and time at which the corresponding alarm was last | date and time at which the corresponding alarm was last | |||
sent or acknowledged.</t> | sent or acknowledged.</dd> | |||
<t hangText="Value Type:">DATE-TIME</t> | <dt>Value Type:</dt> | |||
<t hangText="Property Parameters:">IANA and non-standard | <dd>DATE-TIME</dd> | |||
property parameters can be specified on this property.</t> | <dt>Property Parameters:</dt> | |||
<t hangText="Conformance:">This property can be specified | <dd>IANA and nonstandard | |||
within "VALARM" calendar components.</t> | property parameters can be specified on this property.</dd> | |||
<t hangText="Description:">This property is used to | <dt>Conformance:</dt> | |||
<dd>This property can be specified | ||||
within "VALARM" calendar components.</dd> | ||||
<dt>Description:</dt> | ||||
<dd><t>This property is used to | ||||
specify when an alarm was last sent or acknowledged. This | specify when an alarm was last sent or acknowledged. This | |||
allows clients to determine when a pending alarm has been | allows clients to determine when a pending alarm has been | |||
acknowledged by a calendar user so that any alerts can be | acknowledged by a calendar user so that any alerts can be | |||
dismissed across multiple devices. It also allows clients | dismissed across multiple devices. It also allows clients | |||
to track repeating alarms or alarms on recurring events or | to track repeating alarms or alarms on recurring events or | |||
to-dos to ensure that the right number of missed alarms | to-dos to ensure that the right number of missed alarms | |||
can be tracked.</t> | can be tracked.</t> | |||
<t>Clients SHOULD set this property to the current | <t>Clients <bcp14>SHOULD</bcp14> set this property to the current | |||
date-time value in UTC when a calendar user acknowledges a | date-time value in UTC when a calendar user acknowledges a | |||
pending alarm. | pending alarm. | |||
Certain kinds of alarms, such as email-based alerts, might | Certain kinds of alarms, such as email-based alerts, might | |||
not provide feedback as to when the calendar user sees them. | not provide feedback as to when the calendar user sees them. | |||
For those kinds of alarms, the | For those kinds of alarms, the | |||
client SHOULD set this property when the alarm is | client <bcp14>SHOULD</bcp14> set this property when the alarm is | |||
triggered and the action successfully carried out. | triggered and the action is successfully carried out. | |||
<vspace blankLines="1" />When an alarm is triggered on a | </t> | |||
<t>When an alarm is triggered on a | ||||
client, clients can check to see if an "ACKNOWLEDGED" | client, clients can check to see if an "ACKNOWLEDGED" | |||
property is present. If it is, and the value of that | property is present. If it is, and the value of that | |||
property is greater than or equal to the computed trigger | property is greater than or equal to the computed trigger | |||
time for the alarm, then the client SHOULD NOT trigger the | time for the alarm, then the client <bcp14>SHOULD NOT</bcp14> trigge r the | |||
alarm. Similarly, if an alarm has been triggered and an | alarm. Similarly, if an alarm has been triggered and an | |||
"alert" presented to a calendar user, clients can monitor | "alert" has been presented to a calendar user, clients can monitor | |||
the iCalendar data to determine whether an "ACKNOWLEDGED" property | the iCalendar data to determine whether an "ACKNOWLEDGED" property | |||
is added or changed in the alarm component. If the value | is added or changed in the alarm component. If the value | |||
of any "ACKNOWLEDGED" property in the alarm changes and is greater | of any "ACKNOWLEDGED" property in the alarm changes and is greater | |||
than or equal to the trigger time of the alarm, then | than or equal to the trigger time of the alarm, then | |||
clients SHOULD dismiss or cancel any "alert" presented to | clients <bcp14>SHOULD</bcp14> dismiss or cancel any "alert" presente d to | |||
the calendar user.</t> | the calendar user.</t> | |||
<t hangText="Format Definition:">This property is defined | </dd> | |||
<dt>Format Definition:</dt> | ||||
<dd> | ||||
<t>This property is defined | ||||
by the following notation: | by the following notation: | |||
<figure> | </t> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
acknowledged = "ACKNOWLEDGED" *acknowledgedparam ":" datetime CRLF | acknowledged = "ACKNOWLEDGED" *acknowledgedparam ":" datetime CRLF | |||
acknowledgedparam = ( | acknowledgedparam = ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
(";" other-param) | (";" other-param) | |||
) | ) | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | </dd> | |||
<t hangText="Example:">The following is an example of this property: | <dt>Example:</dt> | |||
<figure> | <dd> | |||
<artwork><![CDATA[ | <t>The following is an example of this property: | |||
</t> | ||||
<sourcecode type=""><![CDATA[ | ||||
ACKNOWLEDGED:20090604T084500Z | ACKNOWLEDGED:20090604T084500Z | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | </dd> | |||
</list> | </dl> | |||
</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section title="Snoozing Alarms" anchor="snooze"> | <section anchor="snooze" numbered="true" toc="default"> | |||
<name>Snoozing Alarms</name> | ||||
<t>Users often want to "snooze" an alarm, and this specification | <t>Users often want to "snooze" an alarm, and this specification | |||
defines a standard approach to accomplish that.</t> | defines a standard approach to accomplish that.</t> | |||
<t>To "snooze" an alarm that has been triggered, clients <bcp14>MUST</bcp1 | ||||
<t>To "snooze" an alarm that has been triggered, clients MUST do | 4> do | |||
the following: | the following: | |||
<list style='numbers'> | </t> | |||
<t>Set the "ACKNOWLEDGED" property | <ol spacing="normal" type="1"> | |||
(see <xref target="ACKNOWLEDGED"/>) on the triggered alarm. | <li> | |||
<vspace blankLines="1"/> | <t>Set the "ACKNOWLEDGED" property | |||
</t> | (see <xref target="ACKNOWLEDGED" format="default"/>) on the triggered al | |||
arm. | ||||
<t>Create a new "VALARM" component (the "snooze" alarm) within | </t> | |||
</li> | ||||
<li> | ||||
<t>Create a new "VALARM" component (the "snooze" alarm) within | ||||
the parent component of the triggered alarm | the parent component of the triggered alarm | |||
(i.e., as a "sibling" component of the triggered alarm). | (i.e., as a "sibling" component of the triggered alarm). | |||
</t> | ||||
<list style='letters'> | <ol spacing="normal" type="a"> | |||
<t>The new "snooze" alarm MUST be set to trigger | <li>The new "snooze" alarm <bcp14>MUST</bcp14> be set to trigger | |||
at the user's chosen "snooze" interval after the original alarm | at the user's chosen "snooze" interval after the original alarm is | |||
triggered. Clients SHOULD use an absolute "TRIGGER" property | triggered. Clients <bcp14>SHOULD</bcp14> use an absolute "TRIGGER" pro | |||
with a "DATE-TIME" value specified in UTC.</t> | perty | |||
with a "DATE-TIME" value specified in UTC.</li> | ||||
<t>The new "snooze" alarm MUST have a "RELATED-TO" property | <li>The new "snooze" alarm <bcp14>MUST</bcp14> have a "RELATED-TO" p | |||
(see <xref target="RELATED"/>) | roperty | |||
(see <xref target="RELATED" format="default"/>) | ||||
with a value set to the "UID" property value of the original | with a value set to the "UID" property value of the original | |||
"VALARM" component that was triggered. | "VALARM" component that was triggered. | |||
If the triggered "VALARM" component does not | If the triggered "VALARM" component does not | |||
already have a "UID" property, the client MUST add one. The | already have a "UID" property, the client <bcp14>MUST</bcp14> add one. | |||
"RELATED-TO" property added to the new "snooze" alarm MUST | The | |||
"RELATED-TO" property added to the new "snooze" alarm <bcp14>MUST</bcp | ||||
14> | ||||
include a "RELTYPE" property parameter with a value set to | include a "RELTYPE" property parameter with a value set to | |||
"SNOOZE" (see <xref target='SNOOZE-PARAM'/>).</t> | "SNOOZE" (see <xref target="SNOOZE-PARAM" format="default"/>).</li> | |||
</list> | </ol> | |||
</t> | </li> | |||
<li> | ||||
<t>When the "snooze" alarm is triggered, the client MUST do the | <t>When the "snooze" alarm is triggered, the client <bcp14>MUST</bcp14 | |||
> do the | ||||
following: | following: | |||
<list style='letters'> | ||||
<t>Update the "ACKNOWLEDGED" property on the original related | ||||
alarm.</t> | ||||
<t>If the "snooze" alarm is itself "snoozed", the client MUST | ||||
remove the "snooze" alarm component, and return to step 2. | ||||
<vspace blankLines="1"/> | ||||
Otherwise, if the "snooze" alarm is dismissed, the client | ||||
MUST do one of the following: | ||||
<list style="symbols"> | ||||
<t>Set the "ACKNOWLEDGED" property on the "snooze" alarm.</t> | ||||
<t>Remove the "snooze" alarm component.</t> | ||||
</list> | ||||
</t> | </t> | |||
</list> | <ol spacing="normal" type="a"> | |||
</t> | <li>Update the "ACKNOWLEDGED" property on the original related | |||
alarm.</li> | ||||
</list> | <li> | |||
</t> | <t>If the "snooze" alarm is itself "snoozed", the client <bcp14>MU | |||
<!-- | ST</bcp14> | |||
<t>To "snooze" an alarm, clients create a new "VALARM" component | remove the "snooze" alarm component and return to step 2. | |||
within the parent component of the "VALARM" that was triggered | </t> | |||
and is being "snoozed" (i.e., as a "sibling" component of the | <t> | |||
"VALARM" being snoozed). The new "VALARM" MUST be set to trigger | Otherwise, if the "snooze" alarm is dismissed, the client | |||
at the user's chosen "snooze" interval after the original alarm | <bcp14>MUST</bcp14> do one of the following: | |||
triggered. Clients SHOULD use an absolute "TRIGGER" property | </t> | |||
with a "DATE-TIME" value specified in UTC.</t> | <ul spacing="normal"> | |||
<li>Set the "ACKNOWLEDGED" property on the "snooze" alarm.</li> | ||||
<t>Clients MUST add a | <li>Remove the "snooze" alarm component.</li> | |||
"RELATED-TO" property to the new "VALARM" component with a value | </ul> | |||
set to the "UID" property value of the "VALARM" component being | </li> | |||
snoozed. If the "VALARM" component being snoozed does not | </ol> | |||
already have a "UID" property, the client MUST add one. The | </li> | |||
"RELATED-TO" property added to the new "VALARM" component MUST | </ol> | |||
include a "RELTYPE" property parameter with a value set to | ||||
"SNOOZE".</t> | ||||
<t>When the "snooze" alarm is triggered and dismissed the client | ||||
MUST do one of the following with the corresponding "VALARM" component: | ||||
<list style="symbols"> | ||||
<t>Set the "ACKNOWLEDGED" property | ||||
(see <xref target="ACKNOWLEDGED"/>)</t> | ||||
<t>Remove the component</t> | ||||
</list> | ||||
Alternatively, if the "snooze" alarm | ||||
is itself "snoozed", the client MUST remove the original | ||||
"snooze" alarm and create a new one, with the appropriate | ||||
trigger time and relationship set.</t> | ||||
<t>Note that regardless of the final disposition of the "snooze" | <t>Note that regardless of the final disposition of the "snooze" | |||
alarm when triggered, the original "VALARM" component is left | alarm when triggered, the original "VALARM" component is left | |||
unchanged other than updating its "ACKNOWLEDGED" property.</t> | unchanged other than updating its "ACKNOWLEDGED" property.</t> | |||
<section anchor="SNOOZE-PARAM" numbered="true" toc="default"> | ||||
<section title="Relationship Type Property Parameter" anchor="SNOOZE-PARAM | <name>Relationship Type Property Parameter</name> | |||
"> | ||||
<t> | <t> | |||
This specification adds the "SNOOZE" relationship type for | This specification adds the "SNOOZE" relationship type for | |||
use with the "RELTYPE" property defined in Section 3.2.15 | use with the "RELTYPE" property defined in | |||
of <xref target="RFC5545" />. This is used when relating a | <xref target="RFC5545" sectionFormat="of" section="3.2.15"/>. This i | |||
s used when relating a | ||||
"snoozed" "VALARM" component to the original alarm that | "snoozed" "VALARM" component to the original alarm that | |||
the "snooze" was generated for. | the "snooze" was generated for. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Example"> | <name>Example</name> | |||
<t>The following example shows the snoozing, re-snoozing, and | <t>The following example shows the "snoozing", "re-snoozing", and | |||
dismissal of an alarm. Note that the encompassing | dismissal of an alarm. Note that the encompassing | |||
VCALENDAR component has been omitted for brevity and that the | "VCALENDAR" component has been omitted for brevity and that the | |||
line-breaks surrounding the VALARM components are for clarity | line breaks surrounding the "VALARM" components are for clarity | |||
only and would not be present in the actual iCalendar data.</t> | only and would not be present in the actual iCalendar data.</t> | |||
<t>Assume that we have the following event with an alarm set | <t>Assume that we have the following event with an alarm set | |||
to trigger 15 minutes before the meeting: | to trigger 15 minutes before the meeting: | |||
<figure> | </t> | |||
<artwork><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
BEGIN:VEVENT | BEGIN:VEVENT | |||
CREATED:20210302T151004Z | CREATED:20210302T151004Z | |||
UID:AC67C078-CED3-4BF5-9726-832C3749F627 | UID:AC67C078-CED3-4BF5-9726-832C3749F627 | |||
DTSTAMP:20210302T151004Z | DTSTAMP:20210302T151004Z | |||
DTSTART;TZID=America/New_York:20210302T103000 | DTSTART;TZID=America/New_York:20210302T103000 | |||
DTEND;TZID=America/New_York:20210302T113000 | DTEND;TZID=America/New_York:20210302T113000 | |||
SUMMARY:Meeting | SUMMARY:Meeting | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
TRIGGER:-PT15M | TRIGGER:-PT15M | |||
DESCRIPTION:Event reminder | DESCRIPTION:Event reminder | |||
ACTION:DISPLAY | ACTION:DISPLAY | |||
END:VALARM | END:VALARM | |||
END:VEVENT | END:VEVENT | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | <t>When the alarm is triggered, the user decides to "snooze" it | |||
</t> | ||||
<t>When the alarm is triggered, the user decides to snooze it | ||||
for 5 minutes. The client acknowledges the original alarm and | for 5 minutes. The client acknowledges the original alarm and | |||
creates a new "snooze" alarm as a sibling of, and relates it | creates a new "snooze" alarm as a sibling of, and relates it | |||
to, the original alarm (note that both VALARMs reside within the | to, the original alarm (note that both occurrences of "VALARM" reside wi thin the | |||
same "parent" VEVENT): | same "parent" VEVENT): | |||
<figure> | </t> | |||
<artwork><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
BEGIN:VEVENT | BEGIN:VEVENT | |||
CREATED:20210302T151004Z | CREATED:20210302T151004Z | |||
UID:AC67C078-CED3-4BF5-9726-832C3749F627 | UID:AC67C078-CED3-4BF5-9726-832C3749F627 | |||
DTSTAMP:20210302T151516Z | DTSTAMP:20210302T151516Z | |||
DTSTART;TZID=America/New_York:20210302T103000 | DTSTART;TZID=America/New_York:20210302T103000 | |||
DTEND;TZID=America/New_York:20210302T113000 | DTEND;TZID=America/New_York:20210302T113000 | |||
SUMMARY:Meeting | SUMMARY:Meeting | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
skipping to change at line 570 ¶ | skipping to change at line 505 ¶ | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:DE7B5C34-83FF-47FE-BE9E-FF41AE6DD097 | UID:DE7B5C34-83FF-47FE-BE9E-FF41AE6DD097 | |||
TRIGGER;VALUE=DATE-TIME:20210302T152000Z | TRIGGER;VALUE=DATE-TIME:20210302T152000Z | |||
RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
DESCRIPTION:Event reminder | DESCRIPTION:Event reminder | |||
ACTION:DISPLAY | ACTION:DISPLAY | |||
END:VALARM | END:VALARM | |||
END:VEVENT | END:VEVENT | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | ||||
</t> | ||||
<t>When the "snooze" alarm is triggered, the user decides to | <t>When the "snooze" alarm is triggered, the user decides to | |||
snooze it again for an additional 5 minutes. The client | "snooze" it again for an additional 5 minutes. The client | |||
once again acknowledges the original alarm, removes the triggered | once again acknowledges the original alarm, removes the triggered | |||
"snooze" alarm, and creates another new "snooze" alarm as a | "snooze" alarm, and creates another new "snooze" alarm as a | |||
sibling of, and relates it to, the original alarm (note the | sibling of, and relates it to, the original alarm (note the | |||
different UID for the new snooze alarm): | different UID for the new "snooze" alarm): | |||
<figure> | </t> | |||
<artwork><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
BEGIN:VEVENT | BEGIN:VEVENT | |||
CREATED:20210302T151004Z | CREATED:20210302T151004Z | |||
UID:AC67C078-CED3-4BF5-9726-832C3749F627 | UID:AC67C078-CED3-4BF5-9726-832C3749F627 | |||
DTSTAMP:20210302T152026Z | DTSTAMP:20210302T152026Z | |||
DTSTART;TZID=America/New_York:20210302T103000 | DTSTART;TZID=America/New_York:20210302T103000 | |||
DTEND;TZID=America/New_York:20210302T113000 | DTEND;TZID=America/New_York:20210302T113000 | |||
SUMMARY:Meeting | SUMMARY:Meeting | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
skipping to change at line 607 ¶ | skipping to change at line 539 ¶ | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:87D690A7-B5E8-4EB4-8500-491F50AFE394 | UID:87D690A7-B5E8-4EB4-8500-491F50AFE394 | |||
TRIGGER;VALUE=DATE-TIME:20210302T152500Z | TRIGGER;VALUE=DATE-TIME:20210302T152500Z | |||
RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
DESCRIPTION:Event reminder | DESCRIPTION:Event reminder | |||
ACTION:DISPLAY | ACTION:DISPLAY | |||
END:VALARM | END:VALARM | |||
END:VEVENT | END:VEVENT | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | ||||
</t> | ||||
<t>When the second "snooze" alarm is triggered, the user | <t>When the second "snooze" alarm is triggered, the user | |||
decides to dismiss it. The client acknowledges both the | decides to dismiss it. The client acknowledges both the | |||
original alarm and the second "snooze" alarm: | original alarm and the second "snooze" alarm: | |||
<figure> | </t> | |||
<artwork><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
BEGIN:VEVENT | BEGIN:VEVENT | |||
CREATED:20210302T151004Z | CREATED:20210302T151004Z | |||
UID:AC67C078-CED3-4BF5-9726-832C3749F627 | UID:AC67C078-CED3-4BF5-9726-832C3749F627 | |||
DTSTAMP:20210302T152508Z | DTSTAMP:20210302T152508Z | |||
DTSTART;TZID=America/New_York:20210302T103000 | DTSTART;TZID=America/New_York:20210302T103000 | |||
DTEND;TZID=America/New_York:20210302T113000 | DTEND;TZID=America/New_York:20210302T113000 | |||
SUMMARY:Meeting | SUMMARY:Meeting | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
skipping to change at line 642 ¶ | skipping to change at line 571 ¶ | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:87D690A7-B5E8-4EB4-8500-491F50AFE394 | UID:87D690A7-B5E8-4EB4-8500-491F50AFE394 | |||
TRIGGER;VALUE=DATE-TIME:20210302T152500Z | TRIGGER;VALUE=DATE-TIME:20210302T152500Z | |||
RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 | |||
DESCRIPTION:Event reminder | DESCRIPTION:Event reminder | |||
ACTION:DISPLAY | ACTION:DISPLAY | |||
ACKNOWLEDGED:20210302T152507Z | ACKNOWLEDGED:20210302T152507Z | |||
END:VALARM | END:VALARM | |||
END:VEVENT | END:VEVENT | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | ||||
</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="proximity" numbered="true" toc="default"> | ||||
<section title="Alarm Proximity Trigger" anchor="proximity"> | <name>Alarm Proximity Trigger</name> | |||
<t>VALARMs are currently triggered when a specific date-time is | <t>Currently, a "VALARM" is triggered when a specific date-time value is | |||
reached. It is also desirable to be able to trigger alarms based | reached. It is also desirable to be able to trigger alarms based | |||
on location, e.g. when arriving at or departing from a | on location, e.g., when arriving at or departing from a | |||
particular location.</t> | particular location.</t> | |||
<t>This specification adds the following elements to "VALARM" | <t>This specification adds the following elements to "VALARM" | |||
components to indicate when an alarm can be triggered based on | components to indicate when an alarm can be triggered based on | |||
location. | location. | |||
<list> | </t> | |||
<t>"PROXIMITY" property - indicates that a location based trigger is to | <dl newline="false" spacing="normal"> | |||
be used and which action is used for the trigger</t> | <dt>"PROXIMITY" property:</dt> | |||
<t><xref target="I-D.ietf-calext-eventpub-extensions"> | <dd>indicates that a location-based trigger is to | |||
"VLOCATION" component(s)</xref> - used to indicate the actual | be used and which action is used for the trigger</dd> | |||
<dt><xref target="RFC9073" format="default"> | ||||
"VLOCATION" component(s)</xref>:</dt> | ||||
<dd>used to indicate the actual | ||||
location(s) to trigger off of, specified with a URL property containing a | location(s) to trigger off of, specified with a URL property containing a | |||
<xref target="RFC5870">geo: URI</xref> which allows for two or three | <xref target="RFC5870" format="default">'geo' URI</xref>, which allows f | |||
coordinate values with an optional uncertainty</t> | or two or three | |||
</list> | coordinate values with an optional uncertainty</dd> | |||
<figure> | </dl> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
alarmprop =/ ( | alarmprop =/ ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; but MUST NOT occur more than once | ; but MUST NOT occur more than once | |||
proximity / | proximity / | |||
) | ) | |||
alarm-subcomp =/ ( | alarm-subcomp =/ ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; and MAY occur more than once, but only | ; and MAY occur more than once but only | |||
; when a PROXIMITY property is also present | ; when a PROXIMITY property is also present | |||
locationc | locationc | |||
) | ) | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
<t> | <t> | |||
Typically, when a "PROXIMITY" property is used there is no | Typically, when a "PROXIMITY" property is used, there is no | |||
need to specify a time-based trigger using the "TRIGGER" | need to specify a time-based trigger using the "TRIGGER" | |||
property. However, since "TRIGGER" is defined as a required | property. However, since "TRIGGER" is defined as a required | |||
property for a "VALARM" component, for backwards compatibility | property for a "VALARM" component, for backwards compatibility, | |||
it has to be present, but ignored. To indicate a "TRIGGER" | it has to be present but ignored. To indicate a "TRIGGER" | |||
that is to be ignored, clients SHOULD use a value a long time | that is to be ignored, clients <bcp14>SHOULD</bcp14> use a value a long | |||
time | ||||
in the past. A value of "19760401T005545Z" has been commonly | in the past. A value of "19760401T005545Z" has been commonly | |||
used for this purpose. | used for this purpose. | |||
</t> | </t> | |||
<section title="Proximity Property" anchor="PROXIMITY"> | <section anchor="PROXIMITY" numbered="true" toc="default"> | |||
<t> | <name>Proximity Property</name> | |||
<list style="hanging"> | <dl newline="false" spacing="normal"> | |||
<t hangText="Property Name:">PROXIMITY</t> | <dt>Property Name:</dt> | |||
<t hangText="Purpose:">This property indicates that a | <dd>PROXIMITY</dd> | |||
location based trigger is applied to an alarm.</t> | <dt>Purpose:</dt> | |||
<t hangText="Value Type:">TEXT</t> | <dd>This property indicates that a | |||
<t hangText="Property Parameters:">IANA and non-standard | location-based trigger is applied to an alarm.</dd> | |||
property parameters can be specified on this property.</t> | <dt>Value Type:</dt> | |||
<t hangText="Conformance:">This property can be specified | <dd>TEXT</dd> | |||
within "VALARM" calendar components.</t> | <dt>Property Parameters:</dt> | |||
<t hangText="Description:">This property is used to | <dd>IANA and nonstandard | |||
property parameters can be specified on this property.</dd> | ||||
<dt>Conformance:</dt> | ||||
<dd>This property can be specified | ||||
within "VALARM" calendar components.</dd> | ||||
<dt>Description:</dt> | ||||
<dd><t>This property is used to | ||||
indicate that an alarm has a location-based trigger. | indicate that an alarm has a location-based trigger. | |||
Its value identifies the action that will trigger the alarm.</t> | Its value identifies the action that will trigger the alarm.</t> | |||
<t>When the property value is set to "ARRIVE", the alarm | ||||
<t>When the property value is set to "ARRIVE", the alarm | ||||
is triggered when the calendar user agent arrives in the | is triggered when the calendar user agent arrives in the | |||
vicinity of one or more locations. When set to | vicinity of one or more locations. When set to | |||
"DEPART", the alarm is triggered when the calendar user | "DEPART", the alarm is triggered when the calendar user | |||
agent departs from the vicinity of one or more locations. | agent departs from the vicinity of one or more locations. | |||
Each location which MUST be specified with a "VLOCATION" | Each location <bcp14>MUST</bcp14> be specified with a "VLOCATION" | |||
component. | component. | |||
Note that the meaning of "vicinity" in this | Note that the meaning of "vicinity" in this | |||
context is implementation defined.</t> | context is implementation defined.</t> | |||
<t>When the property value is set to "CONNECT", the alarm | ||||
<t>When the property value is set to "CONNECT", the alarm | is triggered when the calendar user agent connects to an | |||
is triggered when the calendar user agent connects to a | automobile to which it has been paired via | |||
automobile to which is has been paired via | <xref target="BTcore" format="default">Bluetooth</xref>. | |||
<xref target="BTcore">Bluetooth(R)</xref>. | ||||
When set to "DISCONNECT", the alarm is | When set to "DISCONNECT", the alarm is | |||
triggered when the calendar user agent disconnects from a | triggered when the calendar user agent disconnects from an | |||
automobile to which it has been paired via Bluetooth(R). | automobile to which it has been paired via Bluetooth. | |||
Note that neither current implementations of proximty | Note that neither current implementations of proximity | |||
alarms nor this document have a mechanism to target a | alarms nor this document have a mechanism to target a | |||
particular automobile. | particular automobile. | |||
Such a mechanism may be specified in a future extension.</t> | Such a mechanism may be specified in a future extension.</t></dd> | |||
<dt>Format Definition:</dt> | ||||
<t hangText="Format Definition:">This property is defined | <dd> | |||
<t>This property is defined | ||||
by the following notation: | by the following notation: | |||
<figure> | </t> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
proximity = "PROXIMITY" *proximityparam ":" proximityvalue CRLF | proximity = "PROXIMITY" *proximityparam ":" proximityvalue CRLF | |||
proximityparam = ( | proximityparam = ( | |||
; the following is OPTIONAL, | ; the following is OPTIONAL | |||
; and MAY occur more than once | ; and MAY occur more than once | |||
(";" other-param) | (";" other-param) | |||
) | ) | |||
proximityvalue = "ARRIVE" / "DEPART" / | proximityvalue = "ARRIVE" / "DEPART" / | |||
"CONNECT" / "DISCONNECT" / iana-token / x-name | "CONNECT" / "DISCONNECT" / iana-token / x-name | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | </dd> | |||
</list> | </dl> | |||
</t> | ||||
</section> | </section> | |||
<section title="Example"> | <section numbered="true" toc="default"> | |||
<t>The following example shows a VALARM component with a | <name>Example</name> | |||
<t>The following example shows a "VALARM" component with a | ||||
proximity trigger set to trigger when the device running the | proximity trigger set to trigger when the device running the | |||
calendar user agent leaves the vicinity defined by the | calendar user agent leaves the vicinity defined by the | |||
URL property in the VLOCATION component. Note use of the "u=" parameter | URL property in the "VLOCATION" component. Note use of the "u=" paramete | |||
with the "geo" URI to define the uncertainty of the location | r | |||
with the 'geo' URI to define the uncertainty of the location | ||||
determination. | determination. | |||
<figure> | </t> | |||
<artwork name="abnf"><![CDATA[ | <sourcecode type=""><![CDATA[ | |||
BEGIN:VALARM | BEGIN:VALARM | |||
UID:77D80D14-906B-4257-963F-85B1E734DBB6 | UID:77D80D14-906B-4257-963F-85B1E734DBB6 | |||
ACTION:DISPLAY | ACTION:DISPLAY | |||
TRIGGER;VALUE=DATE-TIME:19760401T005545Z | TRIGGER;VALUE=DATE-TIME:19760401T005545Z | |||
DESCRIPTION:Remember to buy milk | DESCRIPTION:Remember to buy milk | |||
PROXIMITY:DEPART | PROXIMITY:DEPART | |||
BEGIN:VLOCATION | BEGIN:VLOCATION | |||
UID:123456-abcdef-98765432 | UID:123456-abcdef-98765432 | |||
NAME:Office | NAME:Office | |||
URL:geo:40.443,-79.945;u=10 | URL:geo:40.443,-79.945;u=10 | |||
END:VLOCATION | END:VLOCATION | |||
END:VALARM | END:VALARM | |||
]]></artwork> | ]]></sourcecode> | |||
</figure></t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title='Security Considerations'> | <name>Security Considerations</name> | |||
<t>In addition to the security properties of iCalendar | <t>In addition to the security properties of iCalendar | |||
(see Section 7 of <xref target="RFC5545"/>), | (see <xref target="RFC5545" sectionFormat="of" section="7"/>), | |||
VALARMs, if not monitored properly, can be used to disturb | a "VALARM", if not monitored properly, can be used to disturb | |||
users and/or leak personal information. For instance, an | users and/or leak personal information. For instance, an | |||
undesirable audio alert could cause embarassment. An | undesirable audio alert could cause embarrassment; an | |||
unwanted display alert could be considered an annoyance. Or an | unwanted display alert could be considered an annoyance; or an | |||
email alert could be used to leak a user's location to a third | email alert could be used to leak a user's location to a third | |||
party or to send unsolicited email to multiple users. | party or to send unsolicited email to multiple users. | |||
Therefore, CalDAV clients and servers that accept iCalendar data | Therefore, CalDAV clients and servers that accept iCalendar data | |||
from a third party (e.g. via <xref target="RFC5546">iTIP</xref>, | from a third party (e.g., via iCalendar Transport-Independent Interoperabi | |||
a subscription feed, or a shared calendar) SHOULD remove all | lity Protocol (iTIP) <xref target="RFC5546" format="default"/>, | |||
VALARMs from the data prior to storing in their calendar system.</t> | a subscription feed, or a shared calendar) <bcp14>SHOULD</bcp14> remove ea | |||
ch | ||||
<t>Security considerations related to unique identifiers for VALARMs | "VALARM" from the data prior to storing in their calendar system.</t> | |||
are discussed in <xref target='uid'/>.</t> | <t>Security considerations related to unique identifiers for "VALARM" | |||
are discussed in <xref target="uid" format="default"/>.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title='Privacy Considerations'> | <name>Privacy Considerations</name> | |||
<t>Proximity VALARMs, if not used carefully, can leak a | <t>A proximity "VALARM", if not used carefully, can leak a | |||
user's past, present, or future location. For instance, | user's past, present, or future location. For instance, | |||
storing an iCalendar resource containing proxmity VALARMs to a | storing an iCalendar resource containing proximity "VALARM"s to a | |||
shared calendar on CalDAV server can expose to anyone that has | shared calendar on CalDAV server can expose to anyone that has | |||
access to that calendar the user's intent to leave | access to that calendar the user's intent to leave | |||
from or arrive at a particular location at some future time. | from or arrive at a particular location at some future time. | |||
Furthermore, if a CalDAV client updates the shared iCalendar | Furthermore, if a CalDAV client updates the shared iCalendar | |||
resource with an ACKNOWLEDGED property when the alarm is | resource with an "ACKNOWLEDGED" property when the alarm is | |||
triggered, will leak the exact date and time that the user left | triggered, this will leak the exact date and time that the user left | |||
from or arrived at the location. | from or arrived at the location. | |||
Therefore, CalDAV clients that implement proximity alarms | Therefore, CalDAV clients that implement proximity alarms | |||
SHOULD give users the option of storing and/or acknowledging the | <bcp14>SHOULD</bcp14> give users the option of storing and/or acknowledgin g the | |||
alarms on the local device only and not storing the alarm and/or | alarms on the local device only and not storing the alarm and/or | |||
acknowledgment on a remote server.</t> | acknowledgement on a remote server.</t> | |||
<t>Privacy considerations related to unique identifiers for "VALARM" | ||||
<t>Privacy considerations related to unique identifiers for VALARMs | are discussed in <xref target="uid" format="default"/>.</t> | |||
are discussed in <xref target='uid'/>.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title='IANA Considerations'> | <name>IANA Considerations</name> | |||
<section title='Property Registrations'> | <section numbered="true" toc="default"> | |||
<name>Property Registrations</name> | ||||
<t>This document defines the following new iCalendar | <t>This document defines the following new iCalendar | |||
properties to be added to the registry defined in Section | properties that have been added to the "Properties" registry defined in | |||
8.2.3 of <xref target="RFC5545" /> and located here: | <xref target="RFC5545" sectionFormat="of" section="8.2.3"/> and located | |||
<eref target="https://www.iana.org/assignments/icalendar#properties"/> | here: | |||
<eref target="https://www.iana.org/assignments/icalendar" brackets="angl | ||||
e"/>. | ||||
</t> | </t> | |||
<texttable> | <table align="center"> | |||
<ttcol>Property</ttcol> | <name>Additions to the Properties Registry</name> | |||
<ttcol>Status</ttcol> | <thead> | |||
<ttcol>Reference</ttcol> | <tr> | |||
<c>ACKNOWLEDGED</c> | <th align="left">Property</th> | |||
<c>Current</c> | <th align="left">Status</th> | |||
<c>RFCXXXX, <xref target="ACKNOWLEDGED" /></c> | <th align="left">Reference</th> | |||
<c>PROXIMITY</c> | </tr> | |||
<c>Current</c> | </thead> | |||
<c>RFCXXXX, <xref target="PROXIMITY" /></c> | <tbody> | |||
</texttable> | <tr> | |||
<td align="left">ACKNOWLEDGED</td> | ||||
<td align="left">Current</td> | ||||
<td align="left">RFC 9074, <xref target="ACKNOWLEDGED" format="def | ||||
ault"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">PROXIMITY</td> | ||||
<td align="left">Current</td> | ||||
<td align="left">RFC 9074, <xref target="PROXIMITY" format="defaul | ||||
t"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title='Relationship Types Registry'> | <name>Relationship Types Registry</name> | |||
<t>This document defines the following new iCalendar | <t>This document defines the following new iCalendar | |||
relationship type to be added to the registry defined in | relationship type that has been added to the "Relationship Types" regist | |||
Section 8.3.8 of <xref target="RFC5545" /> and located here: | ry defined in | |||
<eref target="https://www.iana.org/assignments/icalendar#relationship-ty | <xref target="RFC5545" sectionFormat="of" section="8.3.8"/> and located | |||
pes"/> | here: | |||
<eref target="https://www.iana.org/assignments/icalendar" brackets="angl | ||||
e"/>. | ||||
</t> | </t> | |||
<texttable> | <table align="center"> | |||
<ttcol>Relationship Type</ttcol> | <name>Addition to the Relationship Types Registry</name> | |||
<ttcol>Status</ttcol> | <thead> | |||
<ttcol>Reference</ttcol> | <tr> | |||
<c>SNOOZE</c> | <th align="left">Relationship Type</th> | |||
<c>Current</c> | <th align="left">Status</th> | |||
<c>RFCXXXX, <xref target="SNOOZE-PARAM" /></c> | <th align="left">Reference</th> | |||
</texttable> | </tr> | |||
</section> | </thead> | |||
<tbody> | ||||
<tr> | ||||
<td align="left">SNOOZE</td> | ||||
<td align="left">Current</td> | ||||
<td align="left">RFC 9074, <xref target="SNOOZE-PARAM" format="def | ||||
ault"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Proximity Values Registry</name> | ||||
<section title="Proximity Value Registry"> | <t>A new iCalendar registry for values | |||
<t>This document creates a new iCalendar registry for values | of the "PROXIMITY" property has been created and is located here: | |||
of the "PROXIMITY" property located here: | <eref target="https://www.iana.org/assignments/icalendar" brackets="an | |||
<eref target="https://www.iana.org/assignments/icalendar#proximity-val | gle"/>.</t> | |||
ues"/></t> | <t>Additional values <bcp14>MAY</bcp14> be used, provided the process de | |||
<t>Additional values MAY be used, provided the process described in | scribed in | |||
Section 8.2.1 of <xref target="RFC5545"/> is used to | <xref target="RFC5545" sectionFormat="of" section="8.2.1"/> is used to | |||
register them, using the template in Section 8.2.6 of | register them, using the template in | |||
<xref target="RFC5545"/>. | <xref target="RFC5545" sectionFormat="of" section="8.2.6"/>. | |||
</t> | </t> | |||
<t>The following table has been used to initialize the | <t>The following table has been used to initialize the | |||
Proximity Value Registry.</t> | Proximity Value Registry.</t> | |||
<texttable> | <table align="center"> | |||
<ttcol>Value</ttcol> | <name>Initial Contents of the Proximity Values Registry</name> | |||
<ttcol>Status</ttcol> | <thead> | |||
<ttcol>Reference</ttcol> | <tr> | |||
<c>ARRIVE</c> | <th align="left">Value</th> | |||
<c>Current</c> | <th align="left">Status</th> | |||
<c>RFCXXXX, <xref target="PROXIMITY" /></c> | <th align="left">Reference</th> | |||
<c>DEPART</c> | </tr> | |||
<c>Current</c> | </thead> | |||
<c>RFCXXXX, <xref target="PROXIMITY" /></c> | <tbody> | |||
<c>CONNECT</c> | <tr> | |||
<c>Current</c> | <td align="left">ARRIVE</td> | |||
<c>RFCXXXX, <xref target="PROXIMITY" /></c> | <td align="left">Current</td> | |||
<c>DISCONNECT</c> | <td align="left">RFC 9074, <xref target="PROXIMITY" format="defaul | |||
<c>Current</c> | t"/></td> | |||
<c>RFCXXXX, <xref target="PROXIMITY" /></c> | </tr> | |||
</texttable> | <tr> | |||
<td align="left">DEPART</td> | ||||
<td align="left">Current</td> | ||||
<td align="left">RFC 9074, <xref target="PROXIMITY" format="defaul | ||||
t"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">CONNECT</td> | ||||
<td align="left">Current</td> | ||||
<td align="left">RFC 9074, <xref target="PROXIMITY" format="defaul | ||||
t"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">DISCONNECT</td> | ||||
<td align="left">Current</td> | ||||
<td align="left">RFC 9074, <xref target="PROXIMITY" format="defaul | ||||
t"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section title='Acknowledgments'> | ||||
<t>This specification came about via discussions at the | ||||
Calendaring and Scheduling Consortium. Also, thanks to the | ||||
following for providing feedback: Bernard Desruisseaux, Mike | ||||
Douglass, Jacob Farkas, Jeffrey Harris, Ciny Joy, Barry Leiba, | ||||
and Daniel Migault.</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<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.RFC.5234. | ||||
xml"/> | ||||
<references title='Normative References'> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&rfc2119; | FC.5545.xml"/> | |||
&rfc5545; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&rfc5870; | FC.5870.xml"/> | |||
&rfc7986; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&rfc8174; | FC.7986.xml"/> | |||
&idEventPub; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</references> | FC.8174.xml"/> | |||
<references title='Informative References'> | <reference anchor='RFC9073' target="https://www.rfc-editor.org/info/rfc9073"> | |||
&rfc4791; | <front> | |||
&rfc5546; | <title>Event Publishing Extensions to iCalendar</title> | |||
<author initials='M' surname='Douglass' fullname='Michael Douglass'> | ||||
<organization /> | ||||
</author> | ||||
<date month='August' year='2021' /> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9073"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9073"/> | ||||
</reference> | ||||
<reference anchor="BTcore" | </references> | |||
target="https://www.bluetooth.com/specifications/bluetooth-core- | <references> | |||
specification"> | <name>Informative References</name> | |||
<front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<title>Bluetooth Core Specification Version 5.0</title> | FC.4791.xml"/> | |||
<author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<organization>Bluetooth Special Interest Group</organization> | FC.5546.xml"/> | |||
</author> | ||||
<date month="December" year="2016"/> | ||||
</front> | ||||
<format type="HTML" | ||||
target="https://www.bluetooth.com/specifications/bluetooth-core-s | ||||
pecification"/> | ||||
</reference> | ||||
</references> | ||||
<section title="Change History (To be removed by RFC Editor before | <reference anchor="BTcore" target="https://www.bluetooth.com/bluetooth-r | |||
publication)"> | esources/bluetooth-5- | |||
<t>Changes in ietf-06: | go-faster-go-further/"> | |||
<list style='numbers'> | <front> | |||
<t>Corrected timestamps in snooze example.</t> | <title>Bluetooth Core Specification Version 5.0 Feature Overview</ti | |||
<t>Editorial changes from Benjamim Kaduk.</t> | tle> | |||
</list></t> | <author> | |||
<t>Changes in ietf-05: | <organization>Bluetooth Special Interest Group</organization> | |||
<list style='numbers'> | </author> | |||
<t>Updated to use VLOCATION components rather than | <date month="December" year="2016"/> | |||
(deprecated) STRUCTURED-LOCATION properties for proximity | </front> | |||
alarms.</t> | </reference> | |||
<t>Reorganized and clarified the process of snoozing an alarm | </references> | |||
and added an example.</t> | </references> | |||
<t>Noted that there is currently no mechanism for specifying | <section numbered="false" toc="default"> | |||
a particular automobile for CONNECT/DISCONNECT proximity alarms.</t> | <name>Acknowledgements</name> | |||
<t>Replaced the term "spam" with new wording in Security | <t>This specification came about via discussions at The | |||
Considerations.</t> | Calendaring and Scheduling Consortium. Also, thanks to the | |||
<t>Addressed IESG comments from Benjamim Kaduk.</t> | following for providing feedback: <contact fullname="Bernard Desruisseaux" | |||
<t>Addressed IESG comments from Robert Wilton.</t> | />, <contact fullname="Mike | |||
<t>Addressed IESG comments Alissa Cooper.</t> | Douglass"/>, <contact fullname="Jacob Farkas"/>, <contact fullname="Jeffre | |||
</list></t> | y Harris"/>, <contact | |||
<t>Changes in ietf-04: | fullname="Ciny Joy"/>, <contact fullname="Barry Leiba"/>, | |||
<list style='numbers'> | and <contact fullname="Daniel Migault"/>.</t> | |||
<t>Addressed security review comments from Valery Smyslov.</t> | ||||
<t>Addressed Genart review comments from Roni Even.</t> | ||||
<t>Added text addressing management of Proximity Value Registry.</t> | ||||
</list></t> | ||||
<t>Changes in ietf-03: | ||||
<list style='numbers'> | ||||
<t>Fixed ABNF to be properly extended.</t> | ||||
<t>Addressed AD review comments from Barry Leiba.</t> | ||||
</list></t> | ||||
<t>Changes in ietf-02: | ||||
<list style='numbers'> | ||||
<t>Addressed some WGLC comments from Daniel Migault.</t> | ||||
</list></t> | ||||
<t>Changes in ietf-01: | ||||
<list style='numbers'> | ||||
<t>Reintroduced the RELATED-TO property for VALARMs | ||||
and the SNOOZE value for the RELTYPE property parameter.</t> | ||||
<t>Add Privacy Considerations section.</t> | ||||
</list></t> | ||||
<t>Changes in ietf-00: | ||||
<list style='numbers'> | ||||
<t>Submitted as CALEXT draft.</t> | ||||
</list></t> | ||||
<t>Changes in daboo-05: | ||||
<list style='numbers'> | ||||
<t>Added Murchison as editor.</t> | ||||
<t>Updated keywords boilerplate.</t> | ||||
<t>Added reference to UID security/privacy recommendations.</t> | ||||
<t>Removed default alarms.</t> | ||||
<t>Removed ALARM-AGENT property.</t> | ||||
<t>Added text about using TRIGGER value in the past in | ||||
addition to ACTION:NONE to have a default alarm be | ||||
ignored.</t> | ||||
<t>Removed text about related alarms.</t> | ||||
<t>Removed URL alarm action.</t> | ||||
<t>Added reference to draft-ietf-calext-eventpub-extensions | ||||
for STRUCTURED-LOCATION.</t> | ||||
<t>Added CONNECT and DISCONNECT PROXIMITY property values.</t> | ||||
<t>Added Security Considerations.</t> | ||||
<t>Editorial fixes.</t> | ||||
</list></t> | ||||
<t>Changes in daboo-04: | ||||
<list style='numbers'> | ||||
<t>Changed "ID" to "AGENT-ID".</t> | ||||
<t>Add more text on using "ACKNOWLEDGED" property.</t> | ||||
<t>Add "RELATED-TO" as a valid property for VALARMs.</t> | ||||
<t>Add "SNOOZE" relationship type for use with VALARMs.</t> | ||||
<t>State that "TRIGGER" is typically ignored in proximity alarms.</t> | ||||
<t>Added "PROXIMITY" value registry.</t> | ||||
<t>Added a lot more detail on default alarms including new | ||||
action and property.</t> | ||||
</list></t> | ||||
<t>Changes in daboo-03: none - resubmission of -02</t> | ||||
<t>Changes in daboo-02: | ||||
<list style='numbers'> | ||||
<t>Updated to 5545 reference.</t> | ||||
<t>Clarified use of absolute trigger in UTC in snooze alarms</t> | ||||
<t>Snooze alarms should be removed when completed</t> | ||||
<t>Removed status and replaced last-triggered by acknowledged | ||||
property</t> | ||||
<t>Added location-based trigger</t> | ||||
<t>IANA registry tables added</t> | ||||
</list></t> | ||||
<t>Changes in daboo-01: | ||||
<list style='numbers'> | ||||
<t>Removed DESCRIPTION as an allowed property in the URI alarm.</t> | ||||
<t>Added statement about what to do when ALARM-AGENT is not present.</t> | ||||
<t>Allow multiple ALARM-AGENT properties to be present.</t> | ||||
<t>Removed SNOOZE-UNTIL - snoozing now accomplished by | ||||
creating a new VALARM.</t> | ||||
<t>Remove VALARM by reference section.</t> | ||||
<t>Added more detail to CalDAV default alarms.</t> | ||||
</list></t> | ||||
</section> | </section> | |||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 142 change blocks. | ||||
560 lines changed or deleted | 501 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |