<?xml version="1.0" encoding="UTF-8"?>
<metanorma xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="2.8.5" schema-version="v2.1.5" flavor="cc">
<bibdata type="standard">
<title language="en" type="main">VALARM Extensions for iCalendar</title>
<docidentifier primary="true" type="CalConnect">CC/WD 51017:2024-07-23</docidentifier><docnumber>51017</docnumber><contributor><role type="author"/><organization>
<name>CalConnect</name>
</organization></contributor><contributor><role type="author"/><person>
<name><completename>Cyrus Daboo</completename></name>
<affiliation><organization>
<name>Apple Inc.</name>
</organization></affiliation></person></contributor><contributor><role type="author"/><person>
<name><completename>Kenneth Murchison</completename></name>
<affiliation><organization>
<name>FastMail US LLC</name>
</organization></affiliation></person></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>CalConnect</name>
<subdivision type="Technical committee">
<name>CALENDAR</name>
</subdivision></organization></contributor><contributor><role type="publisher"/><organization>
<name>CalConnect</name>
</organization></contributor><edition>1</edition><version><revision-date>2024-07-23</revision-date></version><language>en</language><script>Latn</script><abstract><p>This document defines a set of extensions to the iCalendar VALARM component to enhance use of alarms and improve interoperability between clients and servers.</p>
</abstract><status><stage>working-draft</stage></status><copyright><from>2024-07-23</from><owner><organization>
<name>CalConnect</name>
</organization></owner></copyright><ext><doctype>standard</doctype><flavor>cc</flavor></ext></bibdata><metanorma-extension><semantic-metadata><stage-published>false</stage-published></semantic-metadata>
<presentation-metadata><toc-heading-levels>2</toc-heading-levels><html-toc-heading-levels>2</html-toc-heading-levels><doc-toc-heading-levels>2</doc-toc-heading-levels><pdf-toc-heading-levels>2</pdf-toc-heading-levels></presentation-metadata></metanorma-extension>
<boilerplate><copyright-statement>

<clause id="_0d530631-8025-d8b4-f809-a01a17de5ee2" obligation="normative"><p id="_a888525d-267e-e3fa-7981-2d3358b014c8">© 2024-07-23 The Calendaring and Scheduling Consortium, Inc.</p>
</clause>
</copyright-statement>

<license-statement>

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

<legal-statement>

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

<feedback-statement>

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

<p id="_851786db-d5f1-a086-bdb1-3bd48dc4f17c" anchor="boilerplate-address">4390 Chaffin Lane<br/> McKinleyville<br/> California 95519<br/> United States of America<br/> <br/> <link target="mailto:copyright@calconnect.org"/><br/> <link target="https://www.calconnect.org">www.calconnect.org</link></p>
</clause>
</feedback-statement>
</boilerplate><preface><abstract id="_3d46f3f0-2ca7-9142-8829-89cb44886e7b"><title id="_37c298bf-5619-a5c6-817b-d777b5ead0b1">Abstract</title><p id="_59cd16fe-9877-cc3d-8fa9-8889aa23e3f3">This document defines a set of extensions to the iCalendar VALARM component to enhance use of alarms and improve interoperability between clients and servers.</p>
</abstract><introduction id="_dcd25e10-3bcd-eb9f-fca9-53d3f83f5a62" obligation="informative">
<title id="_2b2e98d1-114a-3da4-8556-01ae0a724280">Introduction</title>
<p id="_986bb649-ffc3-0c60-8937-dd8dcfa851f5">The iCalendar <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/> specification defines a set of components used to describe calendar data. One of those is the “VALARM” component which appears as a sub-component of “VEVENT” and “VTODO” components. The “VALARM” component is used to specify a reminder for an event or task. Different alarm actions are possible, as are different ways to specify how the alarm is triggered.</p>

<p id="_f8f4cf24-2fe1-1e19-6931-96272be80c72">As iCalendar has become more widely used and as client-server protocols such as CalDAV  <eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"/> have become more popular, several issues with “VALARM” components have arisen. Most of these relate to the need to extend the existing “VALARM” component with new properties and behaviors to allow clients and servers to accomplish specific tasks in an interoperable manner. For example, clients typically need a way 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 been done through the use of custom “X-” properties specific to each client implementation, leading to poor interoperability.</p>

<p id="_0d803949-7dc0-28e8-c887-12797b8eb93a">This specification defines a set of extensions to “VALARM” components to cover common requirements for alarms not currently addressed in iCalendar. Each extension is defined in a separate section below. For the most part, each extension can be supported independently of the others, though in some cases one extension will require another. In addition, this specification describes mechanisms by which clients can interoperably implement common features such as “snoozing”.</p>
</introduction></preface><sections>

<clause id="_03e4fb14-8ea3-4c98-c4f8-0c7a1fa4eeb1" type="scope" obligation="normative">
<title id="_f70b6ff6-6131-0e24-81e1-850dbe94b63d">Scope</title>
<p id="_a7c29cc2-8831-c07e-87b9-ceb3b50b3741">This document defines a set of extensions to the iCalendar VALARM component to enhance use of alarms and improve interoperability between clients and servers.</p>
</clause>



<terms id="_02c8bc97-c159-6108-c2ed-e6a3b84613b5" obligation="normative">
<title id="_dfb2eab2-f980-6365-3c47-81d0eb272962">Terms and definitions</title><p id="_e5876e78-fa42-efa9-f5ba-a93535689e8d">No terms and definitions are listed in this document.</p>
</terms>

<clause id="_62d42b6d-44da-aa78-8d97-20dcabc84d7b" obligation="normative">
<title id="_577f0878-cbad-249b-c576-b43a5f664bb6">Conventions</title>
<p id="_2ab49acd-6fda-268b-5537-09fe41282980">The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.</p>

<p id="_238e44f3-e0a3-35e6-e5ad-1477f770d56e">When XML element types in the namespaces “DAV:” and “urn:ietf:params:xml:ns:caldav” are referenced in this document outside of the context of an XML fragment, the string “DAV:” and “CALDAV:” will be prefixed to the element type names respectively.</p>
</clause>

<clause id="_22f3ee51-2cdb-78b5-7c82-a0bff31545af" anchor="syntax" obligation="normative">
<title id="_dcc4039b-898f-27f0-65e9-64a895bc7e4d">Extensible syntax for VALARM</title>
<p id="_0e44ba84-60d8-c363-6148-ef5ddf967c0c"><eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.6.6</referenceFrom></locality></localityStack></eref> defines the syntax for “VALARM” components and properties within them. However, as written, it is hard to extend this by adding, e.g., a new property common to all types of alarm. Since many of the extensions defined in this document need to extend the base syntax, an alternative form for the base syntax is defined here, with the goal of simplifying specification of the extensions.</p>

<p id="_ffa86679-e7d5-5c77-8a7d-1e19de7b3504">A “VALARM” calendar component is re-defined by the following notation:</p>

<sourcecode id="_9ffb90a1-0464-059b-1a2e-b58d32a829e6" unnumbered="true"><body>alarmcext  = "BEGIN" ":" "VALARM" CRLF
             alarmprop
             "END" ":" "VALARM" CRLF

alarmprop  = *(

             ; the following are REQUIRED,
             ; but MUST NOT occur more than once

             action / trigger /

             ; one set of action properties MUST be
             ; present and MUST match the action specified
             ; in the ACTION property

             actionprops /

             ; the following is OPTIONAL,
             ; and MAY occur more than once

             x-prop / iana-prop

             )

actionprops = audiopropext / disppropext / emailpropext

audiopropext  = *(

                ; 'duration' and 'repeat' are both OPTIONAL,
                ; and MUST NOT occur more than once each,
                ; but if one occurs, so MUST the other

                duration / repeat /

                ; the following is OPTIONAL,
                ; but MUST NOT occur more than once

                attach

                )

disppropext = *(

              ; the following are REQUIRED,
              ; but MUST NOT occur more than once

              description /

              ; 'duration' and 'repeat' are both OPTIONAL,
              ; and MUST NOT occur more than once each,
              ; but if one occurs, so MUST the other

              duration / repeat

              )

emailpropext = *(

               ; the following are all REQUIRED,
               ; but MUST NOT occur more than once

               description / summary /

               ; the following is REQUIRED,
               ; and MAY occur more than once

               attendee /

               ; 'duration' and 'repeat' are both OPTIONAL,
               ; and MUST NOT occur more than once each,
               ; but if one occurs, so MUST the other

               duration / repeat

               )</body></sourcecode>

</clause>

<clause id="_47f55657-fbd1-e0a9-a6bd-758c38b4adac" anchor="uid" obligation="normative">
<title id="_5f6c12e9-ff11-9f84-f160-5a624685186b">Alarm Unique Identifier</title>
<p id="_2b1b1f6e-ae2f-7df1-4879-5bbafc38cb67">This extension adds a “UID” property to “VALARM” components to allow a unique identifier to specified. The value of this property can then be used to refer uniquely to the “VALARM” component.</p>

<p id="_9ef04c5b-64f9-58de-4328-7e0ab456c3ce">The “UID” property defined here follows the definition in <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.8.4.7</referenceFrom></locality></localityStack></eref> with the security and privacy updates in <eref type="inline" bibitemid="RFC7986" citeas="IETF RFC 7986"><localityStack><locality type="section"><referenceFrom>5.3</referenceFrom></locality></localityStack></eref>. In particular it MUST be a globally unique identifier that does not contain any security- or privacy-sensitive information.</p>

<p id="_bf78349c-7cb4-5ef6-d0eb-45dcbb3e1b79">The “VALARM” component defined in <xref target="syntax"/> is extended here as:</p>

<sourcecode id="_cae4d2c2-a478-d3c7-2dff-591ea1a213d6" unnumbered="true"><body>alarmprop  /= *(

              ; the following is OPTIONAL,
              ; but MUST NOT occur more than once

              uid

              )</body></sourcecode>

</clause>

<clause id="_539701b1-8f54-969a-80c3-29c255f6b0a4" obligation="normative">
<title id="_92ef214d-0fb2-5eb6-c944-2f9b9870e37f">Alarm Related To</title>
<p id="_efc988ac-9667-88cc-87bd-af38a67de74c">It is often convenient to relate one or more “VALARM” components to other “VALARM” components (e.g., see  <xref target="snooze"/>). This can be accomplished if the “VALARM” components each have their own “UID” property (as per  <xref target="uid"/>).</p>

<p id="_04120d26-e750-0f59-69db-4c2e8a39b074">This specification updates the usage of the “RELATED-TO” property defined in <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.8.4.5</referenceFrom></locality></localityStack></eref> to enable its use with “VALARM” components. Specific types of relationships between “VALARM” components can be identified by registering new values for the “RELTYPE” property parameter defined in <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.2.15</referenceFrom></locality></localityStack></eref>.</p>

<p id="_208e4374-696c-b5f8-3360-bdb9e3ee85f3">The “VALARM” component defined in <xref target="syntax"/> is extended here as:</p>

<sourcecode id="_70487b40-53e5-1fd2-24f6-80f8d6bbd2a8" lang="abnf" unnumbered="true"><body>alarmprop  /= *(

              ; the following is OPTIONAL,
              ; but MAY occur more than once

              related

              )</body></sourcecode>

</clause>

<clause id="_0f7ba72d-a595-f526-2e72-caccd29ffacc" anchor="ACKNOWLEDGED" obligation="normative">
<title id="_99158e87-c81d-8865-2b98-51c14020ff59">Alarm Acknowledgement</title>
<p id="_8d1aaece-ebfd-3b65-3873-74e075cd8366">There is currently no way for a “VALARM” component to indicate whether it has been triggered and acknowledged. With the advent of a standard client/server protocol for calendaring and scheduling data (<eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"/>) it is quite possible for an event with an alarm to exist on multiple clients in addition to the server. If each of those is responsible for performing the action when an alarm triggers, then multiple “alerts” are generated by different devices. In such a situation, a calendar user would like to be able to “dismiss” the alarm on one device and have it automatically dismissed on the others too.</p>

<p id="_ac64a011-884f-9595-5583-9507ffbd5cee">Also, with recurring events that have alarms, it is important to know when the last alarm in the recurring set was acknowledged, so that the client can determine whether past alarms have been missed.</p>

<p id="_d70c018e-386b-32ae-42b4-a3da0e290c98">To address these needs, this specification adds an “ACKNOWLEDGED” property to “VALARM” components to indicate when the alarm was last sent or acknowledged. This is defined by the syntax below.</p>

<sourcecode id="_4c958e9a-6ad5-8ca2-2b37-5b0c50f1b470" unnumbered="true"><body>alarmprop       /= *(

                   ; the following is OPTIONAL,
                   ; but MUST NOT occur more than once

                   acknowledged

                   )</body></sourcecode>


<clause id="_df828161-87fa-8533-9b31-c3722941c760" obligation="normative">
<title id="_b39a9c98-7159-754a-5ab3-151ee3d9113c">Acknowledged Property</title>
<dl id="_08ae399a-0875-ddbf-59da-5f8cbf0ccda2"><dt>Property Name</dt>
<dd id="_8570069d-c138-5001-f680-36a7b6c09c69"><p id="_aee2b8d4-21a1-7bb9-b1a9-899b0b7e1387">ACKNOWLEDGED</p>
</dd>
<dt>Purpose</dt>
<dd id="_f808d619-1d83-abb0-1ac7-1fe307da51a8"><p id="_3e96742c-bb8b-d05d-ebe6-6cebba6faae5">This property specifies the UTC date and time at which the corresponding alarm was last sent or acknowledged.</p>
</dd>
<dt>Value Type</dt>
<dd id="_3480c464-bbe3-5d0b-b6db-b86cf494487c"><p id="_cc98f87b-3445-8263-4125-3d213d8e994c">DATE-TIME</p>
</dd>
<dt>Property Parameters</dt>
<dd id="_260e455d-6a52-6527-f6bf-1ab67baab7ea"><p id="_1d553b31-d36c-38dd-8919-dc65bcbd6198">IANA and non-standard property parameters can be specified on this property.</p>
</dd>
<dt>Conformance</dt>
<dd id="_02150ae2-ceb7-8414-e0ce-5e8a76f4af41"><p id="_f2d091c1-1494-5f36-dda2-fec737969322">This property can be specified within “VALARM” calendar components.</p>
</dd>
<dt>Description</dt>
<dd id="_2e9f341e-f665-c1ee-dd99-548bcdc0c33e"><p id="_5743ab1b-4c80-54e0-061d-5c315f0be8fe">This property is used to specify when an alarm was last sent or acknowledged. This allows clients to determine when a pending alarm has been acknowledged by a calendar user so that any alerts can be dismissed across multiple devices. It also allows clients to track repeating alarms or alarms on recurring events or to-dos to ensure that the right number of missed alarms can be tracked.</p>
<p id="_f6f35fe8-3a7a-3c6c-7645-dcb709316616">Clients SHOULD set this property to the current date-time value in UTC when a calendar user acknowledges a pending alarm. Certain kinds of alarm may not provide feedback as to when the calendar user sees them, for example email based alerts. For those kinds of alarms, the client SHOULD set this property when the alarm is triggered and the action successfully carried out.</p>

<p id="_7a3e964a-7176-d8ab-1b9e-8e10eb888d4d">When an alarm is triggered on a client, clients can check to see if an “ACKNOWLEDGED” property is present. If it is, and the value of that property is greater than or equal to the computed trigger time for the alarm, then the client SHOULD NOT trigger the alarm. Similarly, if an alarm has been triggered and an “alert” presented to a calendar user, clients can monitor the iCalendar data to determine whether an “ACKNOWLEDGED” property is added or changed in the alarm component. If the value of any “ACKNOWLEDGED” property in the alarm changes and is greater than or equal to the trigger time of the alarm, then clients SHOULD dismiss or cancel any “alert” presented to the calendar user.</p>
</dd>
<dt>Format Definition</dt>
<dd id="_5b7bb9bc-962a-ea22-6cc6-8d020e548a37"><p id="_ef29ba63-2391-2eda-9c25-ddd18a0d3f2a">This property is defined by the following notation:</p>
<sourcecode id="_d585dadc-30e2-0aca-dcb9-6b5aaa278e4f" unnumbered="true"><body>acknowledged = "ACKNOWLEDGED" acknowledgedparam ":" datetime CRLF

acknowledgedparam  = *(

                     ; the following is OPTIONAL,
                     ; and MAY occur more than once

                     (";" other-param)

                     )</body></sourcecode>

</dd>
<dt>Example</dt>
<dd id="_740ffd4c-f0a3-6230-e663-cabb671d8c69"><p id="_0e9df5e7-d81a-9f45-71bf-70c9ab5933f2">The following is an example of this property:</p>
<sourcecode id="_34fc38c6-7637-b563-4eb1-5a110b4208e2" unnumbered="true"><body>ACKNOWLEDGED:20090604T084500Z</body></sourcecode>

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

<clause id="_19ba6f81-fedf-79f1-0c87-8b412fdf6329" anchor="snooze" obligation="normative">
<title id="_2b8e278d-a67e-e69e-edfa-bb15f2fd09e5">Snoozing Alarms</title>
<p id="_b5597d8c-0b42-381b-f3e2-4ae4de367de2">Users often want to “snooze” an alarm, and this specification defines a standard approach to accomplish that.</p>

<p id="_4a7203c5-e612-6a57-2440-1f2f1329b6fd">To “snooze” an alarm, clients create a new “VALARM” component within the parent component of the “VALARM” that was triggered and is being “snoozed” (i.e., as a “sibling” component of the “VALARM” being snoozed). The new “VALARM” MUST be set to trigger at the user’s chosen “snooze” interval after the original alarm triggered. Clients SHOULD use an absolute “TRIGGER” property with a “DATE-TIME” value specified in UTC.</p>

<p id="_566dc7ec-05aa-41e5-39a0-604b5d75e56f">Clients SHOULD add a “RELATED-TO” property to the new “VALARM” component with a value set to the “UID” property value of the “VALARM” component being snoozed. If the “VALARM” component being snoozed does not already have a “UID” property, the client SHOULD add one. The “RELATED-TO” property added to the new “VALARM” component SHOULD include a “RELTYPE” property parameter with a value set to “SNOOZE”.</p>

<p id="_b645325c-4bbe-8f1b-e1b4-ed9b76e965ff">When the “snooze” alarm is triggered and dismissed the client SHOULD remove the corresponding “VALARM” component, or set the “ACKNOWLEDGED” property (see <xref target="ACKNOWLEDGED"/>). Alternatively, if the “snooze” alarm is itself “snoozed”, the client SHOULD remove the original “snooze” alarm and create a new one, with the appropriate trigger time and relationship set.</p>

<clause id="_4c6a37f9-a171-a45a-2cfe-5a9a9c5687c7" anchor="SNOOZE-PARAM" obligation="normative">
<title id="_fc283f54-89ee-7977-3694-bab08aa6950a">Relationship Type Property Parameter</title>
<p id="_6862d640-d536-6e03-a3af-2d6846acf977">This specification adds the “SNOOZE” relationship type for use with the “RELTYPE” property defined in  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.2.15</referenceFrom></locality></localityStack></eref>. This is used to relate a “snoozed” “VALARM” component to the original alarm that the “snooze” was generated for.</p>
</clause>
</clause>

<clause id="_2223a9eb-0104-cb9c-cc0d-3d9dc0083faf" obligation="normative">
<title id="_39744bdd-affc-06e0-87ef-adf2a7932507">Alarm Proximity Trigger</title>
<p id="_342ecaa1-778f-996a-31d3-3b84a54b3a2b">VALARMs are currently triggered when a specific date-time is reached. It is also desirable to be able to trigger alarms based on location, e.g. when arriving at or departing from a particular location.</p>

<p id="_3507ddcd-9ebe-2d71-d379-898c1faaafeb">This specification adds the following properties to “VALARM” components to indicate when an alarm can be triggered based on location.</p>

<ul id="_e31d6a20-e670-b00d-8905-a3d799523040"><li><p id="_765e1c0f-3961-dbb3-31b9-a6edc6254d8e">“PROXIMITY” — indicates that a location based trigger is to be used and which direction of motion is used for the trigger</p>
</li>
<li><p id="_32fd8a9e-e769-2c67-ee67-e4d06cabe69e">“STRUCTURED-LOCATION” — used to indicate the actual location to trigger off, specified using a geo: URI  <eref type="inline" bibitemid="RFC5870" citeas="IETF RFC 5870"/> which allows for two or three coordinate values with an optional uncertainty</p>
</li>
</ul>

<sourcecode id="_96cbf475-4663-9bdc-783c-2033bd341b69" unnumbered="true"><body>alarmprop       /= *(

                   ; the following is OPTIONAL,
                   ; but MUST NOT occur more than once

                   proximity /

                   ; the following is OPTIONAL,
                   ; and MAY occur more than once, but only
                   ; when a PROXIMITY property is also present

                   structured-location

                   )</body></sourcecode>


<p id="_c0b7f314-7a00-e362-e9f5-579a3d53ce3c">Typically, when a “PROXIMITY” property is used there is no need to specify a time-based trigger using the “TRIGGER” property. However, since “TRIGGER” is defined as a required property for a “VALARM” component, for backwards compatibility it has to be present, but ignored. To indicate a “TRIGGER” that is to be ignored, clients SHOULD use a value a long time in the past. A value of “19760401T005545Z” has been commonly used for this purpose.</p>

<clause id="_80647461-2ddd-8d7c-8675-2adbfc319248" anchor="PROXIMITY" obligation="normative">
<title id="_56bda4c8-2edf-a58d-3ce6-be37f9afcc4c">Proximity Property</title>
<dl id="_66859524-bb34-8f67-e59e-759df93d9c78"><dt>Property Name</dt>
<dd id="_fd5c60b1-5f06-d0fc-6494-df521183da27"><p id="_41ab2a15-696f-ac09-cfd6-202f602ccacf">PROXIMITY</p>
</dd>
<dt>Purpose</dt>
<dd id="_28e063e5-57cc-d721-c37f-e2f207df93cf"><p id="_35b0b629-f292-2732-0e2c-75ecc1777311">This property indicates that a location based trigger is applied to an alarm.</p>
</dd>
<dt>Value Type</dt>
<dd id="_bc2b5eb4-fffb-164f-4391-6e008047a9c7"><p id="_e3b800ae-f802-b488-e700-ed9409e791c3">TEXT</p>
</dd>
<dt>Property Parameters</dt>
<dd id="_4101e611-2d72-7952-4a77-d0274bd34b68"><p id="_0bc7f1f6-9bd1-fcf6-cc61-ce3ee1cab09f">IANA and non-standard property parameters can be specified on this property.</p>
</dd>
<dt>Conformance</dt>
<dd id="_10866285-0385-6795-9116-112ab809cade"><p id="_700e17e6-1304-fae6-202b-299e8197045c">This property can be specified within “VALARM” calendar components.</p>
</dd>
<dt>Description</dt>
<dd id="_d452f4d3-923a-acd2-0644-c7aac6eb8da9"><p id="_aa0bc615-52f7-a1b8-349f-49a369f419f7">This property is used to indicate that an alarm has a location-based trigger. Its value identifies the direction of motion used to trigger the alarm. One or more location values are set using “STRUCTURED-LOCATION” properties.</p>
<p id="_7f44b5c3-a012-60fd-3875-d5873742da37">When the property value is set to “ARRIVE”, the alarm is triggered when the calendar user agent arrives in the vicinity of any of the specified locations. When set to “DEPART”, the alarm is triggered when the calendar user agent departs from the vicinity of any specified locations.</p>

<p id="_acd5dc63-b91c-aeb6-257f-a037931c4ba3">When the property value is set to “CONNECT”, the alarm is triggered when the calendar user agent connects to a  <eref type="inline" bibitemid="BTcore" citeas="BTcore"><display-text>Bluetooth®</display-text></eref>-enabled automobile. When set to “DISCONNECT”, the alarm is triggered when the calendar user agent disconnects from a Bluetooth®-enabled automobile.</p>
</dd>
<dt>Format Definition</dt>
<dd id="_779560b2-b4a7-3423-8b9f-0b9100d17b06"><p id="_f1d8b648-a1c3-4cc5-9a6a-5dbc3cf7b77f">This property is defined by the following notation:</p>
<sourcecode id="_b26345b6-ae07-fec5-24e5-4d87b611c2ba" unnumbered="true"><body>proximity = "PROXIMITY" proximityparam ":" proximityvalue CRLF

proximityparam  = *(

                  ; the following is OPTIONAL,
                  ; and MAY occur more than once

                  (";" other-param)

                  )

proximityvalue  = "ARRIVE" / "DEPART" /
                  "CONNECT" / "DISCONNECT" / iana-token / x-name</body></sourcecode>

</dd>
<dt>Example</dt>
<dd id="_e5e3ec7d-944d-2371-cf46-e350146cd901"><p id="_1eada042-0992-412e-50af-27e2298e60bc">The following is an example of this property:</p>
<sourcecode id="_4afed727-13c2-784c-d08e-0aca03422c6a" unnumbered="true"><body>PROXIMITY:ARRIVE</body></sourcecode>

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

<clause id="_11240c6e-98be-5b6b-4ced-4130ad1b2953" obligation="normative">
<title id="_dd1271ca-1a92-3c49-3fc9-86f7ec250139">Example</title>
<p id="_721f3776-5b63-29a7-2d00-7d475b771c3b">The following example shows a “VALARM” component with a proximity trigger set to trigger when the device running the calendar user agent leaves the vicinity defined by the structured location property. Note use of the “u=” parameter with the “geo” URI to define the precision of the location determination.</p>

<sourcecode id="_34a73c83-05d9-1e6a-317c-b2bae2720f9d" lang="abnf" unnumbered="true"><body>BEGIN:VALARM
UID:77D80D14-906B-4257-963F-85B1E734DBB6
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
ACTION:DISPLAY
DESCRIPTION:Remember to buy milk
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
PROXIMITY:DEPART
STRUCTURED-LOCATION;VALUE=URI:geo:40.443,-79.945;u=10
END:VALARM</body></sourcecode>

</clause>
</clause>

<clause id="_b50a0209-f1b6-6d3b-3af8-541b24425a19" obligation="normative">
<title id="_881fb898-9683-9a03-21d9-1f6cfb7091fa">Security Considerations</title>
<p id="_f9f65fe2-ab43-9d77-ca3e-e46058f443c0">VALARMs, if not monitored properly, can be used to “spam” users and/or leak personal information. For instance, an unwanted audio or display alert could be considered spam. Or an email alert could be used to leak a user’s location to a third party or to send unsolicited email to multiple users. Therefore, CalDAV clients and servers that accept iCalendar data from a third party (e.g. via <eref type="inline" bibitemid="RFC5546" citeas="IETF RFC 5546"><display-text>iTIP</display-text></eref>, a subscription feed, or a shared calendar) SHOULD remove all VALARMs from the data prior to storing in their calendar system.</p>
</clause>

<clause id="_522b028a-7bfa-bce1-d896-743026d7a945" obligation="normative">
<title id="_64ed644b-ae5a-32ea-3909-e93bbea9bd16">Privacy Considerations</title>
<p id="_8a0cdfa8-2d5c-69f1-f7b9-75f239231b52">Proximity VALARMs, if not used carefully, can leak a user’s past, present, or future location. For instance, storing an iCalendar resource containing proxmity VALARMs to a shared calendar on CalDAV server can expose to anyone that has access to that calendar the user’s intent to leave from or arrive at a particular location at some future time. Furthermore, if a CalDAV client updates the shared iCalendar resource with an ACKNOWLEDGED property when the alarm is triggered, will leak the exact date and time that the user left from or arrived at the location.</p>

<p id="_14cf8770-055c-49b0-18db-d6932c29c394">Therefore, CalDAV clients that implement proximity alarms SHOULD give users the option of storing and/or acknowledging the alarms on the local device only and not storing the alarm and/or acknowledgment on a remote server.</p>
</clause>

<clause id="_d7f1688a-cbe9-fa94-0cea-26332c490d16" obligation="normative">
<title id="_15786308-ef52-5934-8f96-d6ec9d19c948">IANA Considerations</title>
<clause id="_d559fcb4-9657-b500-c9f2-fc216814dc17" obligation="normative">
<title id="_6da5d052-11ae-ae0f-d546-6ff1bafee2c3">Property Registrations</title>
<p id="_fc45effe-e9f1-2013-71eb-08bea537764f">This document defines the following new iCalendar properties to be added to the registry defined in  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>8.2.3</referenceFrom></locality></localityStack></eref>:</p>

<table id="_55b62eb9-df15-428d-8dbe-493f4fb950e7"><colgroup><col width="50%"/><col width="16.6666%"/><col width="33.3334%"/></colgroup><thead><tr id="_84a18079-0d4a-5e40-1879-b1ed3d87f933"><th id="_0a1ffc57-5a51-fe6c-3370-90f670f2b51c" valign="top" align="left">Property</th>
<th id="_681bdce4-30bd-b51f-2f35-91b315cabf0f" valign="top" align="left">Status</th>
<th id="_e4d2fec7-c19d-3111-1ea8-f54c1aa038ec" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_b5bf2657-da5c-6653-7093-46c4d66fd616"><td id="_c1430d93-c39c-8915-0375-dfe9a11ee6f5" valign="top" align="left">ACKNOWLEDGED</td>
<td id="_0e49c75d-bf30-6f39-94d9-016a3491e379" valign="top" align="left">Current</td>
<td id="_1ddd165c-dbbc-96d1-57a4-3797966f4ab1" valign="top" align="left">RFCXXXX, <xref target="ACKNOWLEDGED"/></td>
</tr><tr id="_4f89c6de-5611-78e0-1dcf-919620bebcc6"><td id="_1116416a-bc69-ff9b-5109-b30a40517145" valign="top" align="left">PROXIMITY</td>
<td id="_e8c63572-3641-c127-8348-27f7fe42a817" valign="top" align="left">Current</td>
<td id="_aaa9ea84-5006-8b83-8abe-595d2b8e7ce3" valign="top" align="left">RFCXXXX, <xref target="PROXIMITY"/></td>
</tr></tbody>
</table>
</clause>

<clause id="_f4e5d715-7802-087a-cedc-d26df5a8dbe6" obligation="normative">
<title id="_4ba1c8ae-ca7f-8791-5d72-001eec10f6f2">Relationship Types Registry</title>
<p id="_3114084c-0bb7-945e-6eef-613243e840fe">This document defines the following new iCalendar relationship type to be added to the registry defined in  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>8.3.8</referenceFrom></locality></localityStack></eref>:</p>

<table id="_ba0b82fe-4517-8272-e432-56a250b03327"><colgroup><col width="50%"/><col width="16.6666%"/><col width="33.3334%"/></colgroup><thead><tr id="_350c1218-29cf-0afe-300e-7f2a0caec830"><th id="_e5096541-d6aa-0f2c-5f6d-f32d95005826" valign="top" align="left">Relationship Type</th>
<th id="_e2485d58-bae1-f782-2b8f-07b401b6a0fa" valign="top" align="left">Status</th>
<th id="_220f425d-4e25-1f14-b77e-b5747e02ad07" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_f42937a5-1c2c-1361-f788-c8ff0e875bec"><td id="_326c840c-b93b-a30c-b4c6-bb827927b1ee" valign="top" align="left">SNOOZE</td>
<td id="_399e5522-ba9b-d017-b065-0c3024fb47f6" valign="top" align="left">Current</td>
<td id="_7bf3444b-7a56-8b48-9fd4-245c90c8a4f1" valign="top" align="left">RFCXXXX, <xref target="SNOOZE-PARAM"/></td>
</tr></tbody>
</table>
</clause>

<clause id="_35ed09c9-3384-9416-808a-2306a45ba604" obligation="normative">
<title id="_87d0785d-c351-688c-5a98-f977522df86e">Proximity Value Registry</title>
<p id="_e3e112b6-0607-b74d-8761-cd5abdf0defb">This document creates a new iCalendar registry for values of the “PROXIMITY” property:</p>

<table id="_fbcc827e-f2fb-cbcf-4dcf-aa21a124a80b"><colgroup><col width="50%"/><col width="16.6666%"/><col width="33.3334%"/></colgroup><thead><tr id="_e3cbfcdd-faf3-b1ea-9ab7-4fe0085d2f0e"><th id="_d2660574-8570-9106-f625-7e87b5eb36ff" valign="top" align="left">Value</th>
<th id="_58f414c9-8e59-d730-cc86-938c548b48d0" valign="top" align="left">Status</th>
<th id="_d0ba4bb2-0815-b47e-bf66-3c5ff65874e4" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_83d353a9-c044-5baf-4925-02fb348d2883"><td id="_77c4636c-d408-951b-d42e-46df5b90ebf2" valign="top" align="left">ARRIVE</td>
<td id="_5db430b6-2785-5cc7-a406-564435903970" valign="top" align="left">Current</td>
<td id="_77c58fce-5615-5f70-f50a-8360a2a63107" valign="top" align="left">RFCXXXX, <xref target="PROXIMITY"/></td>
</tr><tr id="_a0f546aa-07df-3b9d-c193-53fc551d8d2b"><td id="_346118e1-d245-18fc-89ff-f147f4257635" valign="top" align="left">DEPART</td>
<td id="_b20e3ecd-1299-1065-a8b3-ba1859da20ee" valign="top" align="left">Current</td>
<td id="_472d2dd9-41ff-8a9d-6a48-e756f27bc1cc" valign="top" align="left">RFCXXXX, <xref target="PROXIMITY"/></td>
</tr><tr id="_533cea89-cbba-3998-3f49-3cb97a115397"><td id="_4d89b935-ab96-336c-7ece-5f5c6a25fddf" valign="top" align="left">CONNECT</td>
<td id="_9b53bd4f-38d2-6806-2647-e84d05a22e3c" valign="top" align="left">Current</td>
<td id="_04889e23-8dfe-c1c6-23f7-0cffe3b2a8f8" valign="top" align="left">RFCXXXX, <xref target="PROXIMITY"/></td>
</tr><tr id="_47140683-9582-9dd6-44e5-570c0a455fc5"><td id="_52f50c3b-3aa8-fcea-bdd8-a45e09211fe6" valign="top" align="left">DISCONNECT</td>
<td id="_27131112-5d20-248e-5db0-5e299f182335" valign="top" align="left">Current</td>
<td id="_5ca0f80f-ba4c-c10b-dba9-fe60d824c7c2" valign="top" align="left">RFCXXXX, <xref target="PROXIMITY"/></td>
</tr></tbody>
</table>
</clause>
</clause>

<clause id="_1e1542d4-96a2-8b76-3d26-1417e5fa0147" obligation="normative">
<title id="_d1caefb0-5673-d6e5-5354-98075070285b">Acknowledgments</title>
<p id="_af8ef307-5421-48f4-1e24-c87e05773dce">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, and Ciny Joy.</p>
</clause>


</sections><bibliography><references id="_7c8aa177-495d-8be1-fe52-3af3c79176ec" normative="true" obligation="informative">
<title id="_270c5ee6-077e-f285-ff95-287984a30140">Normative references</title><p id="_49996d2b-65c1-916b-9bbf-42b933aa0025">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
<bibitem id="_12641e30-1620-761b-d372-20447acfa629" type="standard" schema-version="v1.5.6" anchor="RFC2119">
  <fetched>2026-05-13</fetched>
  
<title type="main">Key words for use in RFCs to Indicate Requirement Levels</title>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  </series>
  <keyword>
    <vocab>calsched</vocab>
  </keyword>
  <keyword>
    <vocab>calsch</vocab>
  </keyword>
  <keyword>
    <vocab>calcav</vocab>
  </keyword>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
  <keyword>
    <vocab>webdav</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>http</vocab>
  </keyword>
</bibitem>
<bibitem id="_ded84aa1-95e4-21f0-7d0e-d06c3364f5f7" type="standard" schema-version="v1.5.6" anchor="RFC5545">
  <fetched>2026-05-13</fetched>
  
<title type="main">Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>

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

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

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

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

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

        <identifier>calsify</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_dea9e633-4a11-13ff-5081-bc67ab347d4b">This document defines the iCalendar data format for representing and exchanging calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, independent of any particular calendar service or protocol. [STANDARDS-TRACK]</p>

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

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

  </series>
  <keyword>
    <vocab>calsify</vocab>
  </keyword>
  <keyword>
    <vocab>calsched</vocab>
  </keyword>
  <keyword>
    <vocab>calsch</vocab>
  </keyword>
  <keyword>
    <vocab>caldav</vocab>
  </keyword>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>meeting</vocab>
  </keyword>
  <keyword>
    <vocab>event</vocab>
  </keyword>
  <keyword>
    <vocab>task</vocab>
  </keyword>
  <keyword>
    <vocab>to-do</vocab>
  </keyword>
  <keyword>
    <vocab>journal</vocab>
  </keyword>
  <keyword>
    <vocab>appointment</vocab>
  </keyword>
  <keyword>
    <vocab>agenda</vocab>
  </keyword>
  <keyword>
    <vocab>schedule</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>imip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>ischedule</vocab>
  </keyword>
  <keyword>
    <vocab>xCalendar</vocab>
  </keyword>
</bibitem>
<bibitem id="_3cecfba6-7599-fe5c-7cbf-c7947a5e4a09" type="standard" schema-version="v1.5.6" anchor="RFC5870">
  <fetched>2026-05-13</fetched>
  
<title type="main">A Uniform Resource Identifier for Geographic Locations (’geo’ URI)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5870</uri>
  <docidentifier type="IETF" primary="true">RFC 5870</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5870</docidentifier>
  <docnumber>RFC5870</docnumber>
  <date type="published">
    <on>2010-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Mayrhofer</surname>          <completename language="en" script="Latn">A. Mayrhofer</completename>       </name>

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

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

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

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

      <subdivision type="workgroup">
        
<name>Geographic Location/Privacy</name>

        <identifier>geopriv</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_42425631-b928-cb3c-cbbc-e1a9432cf772">This document specifies a Uniform Resource Identifier (URI) for geographic locations using the ‘geo\’ scheme name.  A ‘geo’ URI identifies a physical location in a two- or three-dimensional coordinate reference system in a compact, simple, human-readable, and protocol-independent way.  The default coordinate reference system used is the World Geodetic System 1984 (WGS-84). [STANDARDS-TRACK]</p>

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

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

  </series>
  <keyword>
    <vocab>geography</vocab>
  </keyword>
  <keyword>
    <vocab>geo</vocab>
  </keyword>
  <keyword>
    <vocab>uri</vocab>
  </keyword>
  <keyword>
    <vocab>scheme</vocab>
  </keyword>
</bibitem>
<bibitem id="_c18c427f-d9cd-ee66-c764-f7259bc58667" type="standard" schema-version="v1.5.6" anchor="RFC7986">
  <fetched>2026-05-13</fetched>
  
<title type="main">New Properties for iCalendar</title>

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

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

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

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

      <subdivision type="workgroup">
        
<name>Calendaring Extensions</name>

        <identifier>calext</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_0bb61f22-f7d5-1d61-a1f8-05c4b4cdd70e">This document defines a set of new properties for iCalendar data and extends the use of some existing properties to the entire iCalendar object.</p>

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

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

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

  </series>
  <keyword>
    <vocab>alarms</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>iCalendar</vocab>
  </keyword>
</bibitem>
<bibitem id="_e89c46ee-8987-0b2c-3343-a047dddd407a" type="standard" schema-version="v1.5.6" anchor="RFC8174">
  <fetched>2026-05-13</fetched>
  
<title type="main">Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8174</uri>
  <docidentifier type="IETF" primary="true">RFC 8174</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8174</docidentifier>
  <docnumber>RFC8174</docnumber>
  <date type="published">
    <on>2017-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Leiba</surname>          <completename language="en" script="Latn">B. Leiba</completename>       </name>

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

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

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_bb933a76-01bb-523c-2f8b-ef0bac5f8b7e">RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</p>

  </abstract>
  <status>
    <stage>BEST CURRENT PRACTICE</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC2119</formattedref>
      <docidentifier type="IETF" primary="true">RFC2119</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>BCP</title>

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

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

  </series>
</bibitem>
<bibitem id="_fd4d93b8-1662-30b3-6b83-52c9ae1eaa6f" type="standard" schema-version="v1.5.6" anchor="I-D.ietf-calext-eventpub-extensions">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">Event Publishing Extensions to iCalendar</title>

  <uri type="src">https://datatracker.ietf.org/doc/html/draft-ietf-calext-eventpub-extensions-00</uri>
  <docidentifier type="Internet-Draft">draft-ietf-calext-eventpub-extensions</docidentifier>
  <docidentifier type="Internet-Draft" primary="true">draft-ietf-calext-eventpub-extensions-00</docidentifier>
  <docnumber>I-D.ietf-calext-eventpub-extensions</docnumber>
  <date type="published">
    <on>2016-08-25</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Michael</forename>                    <formatted-initials language="en">M.</formatted-initials>          <surname language="en">Douglass</surname>          <completename language="en">Michael Douglass</completename>       </name>

    </person>
  </contributor>
  <version>
    <draft>00</draft>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">   This specification introduces a number of new iCalendar properties
   which are of particular use for event publishers and in social
   networking.

   This specification also defines a new STRUCTURED-DATA property for
   iCalendar (RFC 5545) to allow for data that is directly pertinent to
   an event or task to be included with the calendar data.

	 </abstract>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>draft-ietf-calext-eventpub-extensions-01</formattedref>
      <uri type="src">https://datatracker.ietf.org/doc/html/draft-ietf-calext-eventpub-extensions-01</uri>
      <docidentifier type="Internet-Draft" primary="true">draft-ietf-calext-eventpub-extensions-01</docidentifier>
    </bibitem>

  </relation>
  <series type="main">
    
<title language="en" script="Latn">Internet-Draft</title>

    <number>draft-ietf-calext-eventpub-extensions-00</number>
  </series>
</bibitem>
</references><references id="_33c41cf4-bcae-a53d-cf80-2f0f026637aa" normative="false" obligation="informative">
<title id="_50ceb1e1-516f-2673-d73d-4f0c58b4d023">Bibliography</title><bibitem id="_98670c95-bb6f-4489-d61c-6e43dc0e6dcd" type="standard" schema-version="v1.5.6" anchor="RFC5546">
  <fetched>2026-05-13</fetched>
  
<title type="main">iCalendar Transport-Independent Interoperability Protocol (iTIP)</title>

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

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

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

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

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

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

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

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

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

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

  </series>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
</bibitem><bibitem anchor="BTcore" id="_04a591f2-ad00-4727-ff10-abc7a885d271">
  <formattedref format="application/x-isodoc+xml">Bluetooth Special Interest Group, “Bluetooth Core Specification Version 5.0”, December 2016, <link target="https://www.bluetooth.com/specifications/bluetooth-core-specification"/></formattedref>
  <docidentifier>BTcore</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem>


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