<?xml version="1.0" encoding="UTF-8"?>
<metanorma xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="2.8.5" schema-version="v2.1.5" flavor="cc">
<bibdata type="standard">
<title language="en" type="main">Calendaring and scheduling — v-event URI: An URI scheme for events</title>
<uri>http://www.google.com/</uri><docidentifier primary="true" type="CalConnect">CC/CD 51015:2015</docidentifier><docnumber>51015</docnumber><date type="published"><on>2015-11-02</on></date><contributor><role type="author"/><organization>
<name>CalConnect</name>
</organization></contributor><contributor><role type="editor"/><person>
<name><completename>Raphael Menderico</completename></name>
<email>menderico@google.com</email></person></contributor><contributor><role type="author"/><person>
<name><completename>Paulo Schlup</completename></name>
<email>pschlup@google.com</email></person></contributor><contributor><role type="author"/><person>
<name><completename>Lucia Kristiansen</completename></name>
<email>lucka@google.com</email></person></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>CalConnect</name>
<subdivision type="Technical committee">
<name>EVENTPUB</name>
</subdivision></organization></contributor><contributor><role type="publisher"/><organization>
<name>CalConnect</name>
</organization></contributor><edition>1</edition><version><revision-date>2015-11-02</revision-date></version><language>en</language><script>Latn</script><abstract><p>This document defines the format of Uniform Resource Identifiers (URIs) for calendar events, allowing users to add these events to their calendar application from any source that defines them, like web sites and printed QR codes</p>
</abstract><status><stage>committee-draft</stage></status><copyright><from>2015</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="_723db00d-7330-24c1-3b1e-78b613fdccfd" obligation="normative"><p id="_45fbf3ee-dc83-6958-1e53-e5ecafc7d949">© 2015 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="_b087ca0f-1306-532a-5e78-78d400df5e30"><title id="_37c298bf-5619-a5c6-817b-d777b5ead0b1">Abstract</title><p id="_05f6e7c7-9bba-49b6-e820-402b4bf04575">This document defines the format of Uniform Resource Identifiers (URIs) for calendar events, allowing users to add these events to their calendar application from any source that defines them, like web sites and printed QR codes</p>
</abstract><introduction id="_fd460468-6323-619d-a0f9-77897d73fd6c" obligation="informative">
<title id="_2b2e98d1-114a-3da4-8556-01ae0a724280">Introduction</title>
<p id="_82007746-f48d-4459-88a1-0d0c825ba196">Calendar users currently often do not have the ability to quickly add an event to their default calendar app, when encountering event data on a webpage, poster or mobile apps. In this sense events have fallen behind other real world entities, like e-mail  <eref type="inline" bibitemid="RFC6068" citeas="IETF RFC 6068"/> and geo coordinates  <eref type="inline" bibitemid="RFC5870" citeas="IETF RFC 5870"/> which allow for performing actions in default apps when encountering these entities anywhere. This recommendations document addresses the problem by proposing best practices when embedding and publishing calendar data. We believe that using a standardized URI scheme for event publishing will make populating of users’ calendars much simpler, will make developers’ lives easier and will increase calendar apps usage in general. A major additional benefit of URIs is sharing of events on physical media (for example via QR codes) or via URL.</p>
</introduction><clause id="_bb6b3471-a288-9109-69ca-3a23e8398ebf" obligation="informative">
<title id="_b5677f7a-5cb1-5fba-ca75-7e6356f9c0f6">Status of This Memo</title>
<p id="_d84cb1bb-5471-fb3a-d80e-58490cec061d">This Internet-Draft is submitted in full conformance with the provisions of BCP 78[<link target="https://datatracker.ietf.org/doc/html/bcp78"/>] and BCP 79[<link target="https://datatracker.ietf.org/doc/html/bcp79"/>].</p>

<p id="_1546576d-f503-e1b6-6247-f7da9378288b">Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at  <link target="http://datatracker.ietf.org/drafts/current/"/>.</p>

<p id="_5c2ea6f4-6c3a-3014-7c52-62976effe799">Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”</p>

<p id="_c2954dce-80e0-5f54-d999-b407815f927b">This Internet-Draft will expire on May 5, 2016.</p>
</clause><acknowledgements id="_b8f0efee-23fa-5d69-c8ea-51f25045ab27" obligation="informative">
<title id="_26963489-6465-c4f1-4d60-c2120446dbe8">Acknowledgements</title>
<p id="_a88ea694-57f3-faf7-0243-b8b23a7e3622">The authors would like to thank the members of CalConnect TC-EVENTPUB committee for its contributions to this document, particularly Dave Thewlis, Cyrus Daboo and Thomas Schaefer.</p>
</acknowledgements></preface><sections>



<clause id="_cee96372-aa97-af11-aad9-b4156d12c512" obligation="normative">
<title id="_e33954f3-89f1-b4cf-2874-195c98431dd2">Motivation and related work</title>
<clause id="_685447b5-d712-055c-65c0-0a249713dae0" obligation="normative">
<title id="_7f4a126b-0a09-14a5-b9cd-346f7b465994">Current event publishing practices</title>
<p id="_fa5125e2-6723-b2a5-7d82-e6505879af14">Many ways to add events to calendar apps have been developed due to the lack of standardization. While these solve the basic need of sharing events, it does so with limited reach, are harder to use and limit adoption by new providers. We will briefly mention four common ways: using a download link,  <tt>hCalendar</tt> embedding, using <tt>VEVENT</tt>s in QR codes and provider specific buttons.</p>

<clause id="_9218e584-88b2-191c-e5ad-63ff109a8266" obligation="normative">
<title id="_b2c92fe1-26aa-5e59-d6d3-4b2f661cb5a6">Publish a link to an iCalendar file</title>
<p id="_3c247fda-e008-6212-416e-6c03aa501260">A simple way to publish an event is to share a link that points to an iCalendar  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/> file and provide a link to the user for downloading it. In an ideal world, a user would click on the link pointing to a file, the browser would recognize this link as a calendar file and redirect it to the proper calendar application, which would display the event information to the user, allowing simple edit actions, and saving it to the calendar.</p>

<p id="_43e82446-9b02-1436-8f3f-257366501dfd">There are many problems with this method. Files must be hosted in a server, which is not always feasible or easy, and need to be maintained separately from the web pages they are linked from. This poses unnecessary difficulty for blog and CMS users, especially when compared to linking to email addresses or other web pages.</p>

<p id="_14c6dc86-69ee-9ffc-6889-398ea313eb12">Furthermore, ICS files might not be recognized by the browser or operating system, or the user might use a web-based calendar app instead of a native one. Files might also contain malware and pose additional risk, with some end users avoiding downloaded files altogether.</p>

<p id="_9f221e89-1da3-18ce-522a-9e2624a50218">One additional problem is coupling of the file and the entity it represents. Currently the user needs to manually keep the event file and all the links and descriptions with the same information in the links about in sync. It is preferable to have this information close together. Ideally the same tools used to generate a page could be used to assure a link and the text information being displayed are synchronized.</p>
</clause>

<clause id="_c09ce1e2-d768-8b72-fe92-301e59704fb0" obligation="normative">
<title id="_7e73794a-6f9e-369c-2cb2-ae6b252f66d3">Current QR code implementations</title>
<p id="_aefb616e-213a-d916-9b66-9a061d04102a">Several QR code readers (<eref type="inline" bibitemid="ZXing" citeas="[17]"/>, <eref type="inline" bibitemid="i-nigma" citeas="[7]"/>) support calendar events to be embedded in QR codes, but they have their own non-standard implementation, usually a single  <tt>VEVENT</tt> iCalendar component. They work well on the mobile platform but rely on OS internals <eref type="inline" bibitemid="CalendarContract" citeas="[3]"/> to add the event to the calendar.</p>

<p id="_a8e40352-9603-f759-336e-11b29a8c4244">While QR code does not dictate a format for calendar events, most readers implement the URI standard schemes and would benefit from this proposal.</p>
</clause>

<clause id="_be2ae72e-92ac-6520-f0c4-cdc7c13a01cb" obligation="normative">
<title id="_fc7cfb87-14b3-fa67-76b1-287c6b340153"><tt>hCalendar</tt></title>
<p id="_020d09a5-deb3-b3bc-6ef1-e6d513ff6400"><tt>hCalendar</tt> <eref type="inline" bibitemid="hCalendar" citeas="[6]"/> is a microformat for events that can be used to annotate a web page or another document and indicate to readers that an event is present. While microformats are useful for parsing and styling, they are not meant to be used as links to an event and need to be used in conjunction with the external ICS file method or a proprietary browser extension. They usually require a complex interaction between the website and the calendar application to get it right. This also makes it not ideal for QR scanning, since the annotations were not designed to represent the whole content of a document. They are more appropriate as an annotation on a previously structured text.</p>
</clause>

<clause id="_fc2bb4c2-f2f6-f0b9-7783-7eb09b1f6e0a" obligation="normative">
<title id="_fd69d8c1-cec7-6649-a99b-024d6618d19c">Custom calendar application link</title>
<p id="_0c9c5564-79de-3254-8f93-ddf9783f6e60">Several calendar systems provide a proprietary URL for event creation (<eref type="inline" bibitemid="AddThisEvent" citeas="[1]"/>, <eref type="inline" bibitemid="GoogleCalendar" citeas="[5]"/>). However, due to lack of standards, applications must implement and link to these separately. This burdens both content creators and web site users: content creators must maintain individual links for each calendar application provider, and end users must find and choose the appropriate one for their own case. This consumes precious space on the page and requires understanding of several APIs, making it difficult for a developer that wants to just publish a simple event. Furthermore, it’s impossible to link to all calendar app providers, requiring a combination of this method with the ICS file hosting method.</p>
</clause>
</clause>

<clause id="_c7aa2ffe-a5b1-6ac7-a1eb-162caeb8cc03" obligation="normative">
<title id="_f4bc1e1c-62c7-4e38-8ae4-b13b5be261cc">Alternative implementations</title>
<p id="_0abd0efc-ed96-1587-347f-7f52290ee0a0">Though not currently used by the most popular calendar applications, other implementations could theoretically converge into a standard. We will talk briefly about the calendar mime type in combination with <tt>RegisterContentHandler</tt>, data URI scheme and a custom URI scheme.</p>

<clause id="_a6f38d4b-3d8f-435f-7d7f-0632fc6d2983" obligation="normative">
<title id="_b6f6fefb-ec6c-4f1b-905f-d18d4462f9b6"><tt>text/calendar</tt> MIME type in combination with <tt>RegisterContentHandler</tt></title>
<p id="_23d867fd-65fd-d851-4919-970030878daa">One way to use iCal files and avoid downloading it would be registering a handler for calendar MIME  <eref type="inline" bibitemid="RFC6838" citeas="IETF RFC 6838"/> types (<tt>text/calendar</tt> <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>). Operating Systems know how to handle mime type properly, and are able to redirect it to the right application. Web browsers, on the other hand, still have limited capability to handle it. The method  <tt>RegisterContentHandler</tt> allows to send a given mime type file directly to a website, but so far has only been implemented by Mozilla and only supports  <tt>atom/xml</tt> MIME type.</p>
</clause>

<clause id="_853b87f7-96ad-1b36-2b49-34032d488033" anchor="sec-2.2.2" obligation="normative">
<title id="_5b2d1d2e-3f6f-7fdc-c37d-430f55d3610d"><tt>data</tt> URI</title>
<p id="_e5533778-e760-ff6f-cfe9-f3d69ff51bb5">Data URIs <eref type="inline" bibitemid="RFC2397" citeas="IETF RFC 2397"/> can be used to replace an external file in an HTML. One advantage is that it gets embedded into the HTML and removes the need of an external file, either a real file or emulated. Unfortunately, browsers treat these the same way they treat files, therefore they would still need to be downloaded or properly redirected to an application, and  <tt>RegisterContentHandler</tt> would need to be implemented by browsers and QR readers before this approach can be used.</p>
</clause>

<clause id="_64a89ce6-dfed-75be-6a35-beb5149009f9" obligation="normative">
<title id="_14e5a4b6-da48-cbe5-645c-b5e0cd301a9b">Custom URI scheme</title>
<p id="_cb219825-83e4-d90e-e92f-c423ae168602">A custom URI scheme for events would behave similar to e-mail <eref type="inline" bibitemid="RFC6068" citeas="IETF RFC 6068"/> geo <eref type="inline" bibitemid="RFC5870" citeas="IETF RFC 5870"/> and other schemes, where the resource (e-mail, geo, or in this case, the event) is properly identified and follows a specified protocol. An HTML page could publish an event using this scheme (as it would with any other link format) or a print page could embed it in an 2D-barcode. The user would have several options of handling it: opening his application of choice, or redirecting to a previously registered website <tt>RegisterProtocolHandler</tt>. Support for URI schemes is widespread, most Operating Systems and browsers support it and its associated APIs.</p>
</clause>
</clause>
</clause>

<clause id="_d97a3083-950c-dc9f-d67f-2546b1db01dd" obligation="normative">
<title id="_8ca86930-c826-d339-339c-59071e4c53d1">The v-event URI scheme</title>
<p id="_d5e3dd78-8e1e-17ef-43c4-df641e788611">In this section we will propose a custom URI schema that could be implemented easily by any calendar application and developers alike. We will also discuss some of its special requirements and provide several examples</p>

<clause id="_2620ca15-45da-7f15-9224-a732924133ff" obligation="normative">
<title id="_33124811-4e33-ec45-a8c2-048bb6fbf9e1">Syntax</title>
<p id="_d61dc98c-05b4-5dc9-0fc9-a588435c15cc">The v-event URI scheme syntax is based on both iCalendar <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/> and data URI scheme  <eref type="inline" bibitemid="RFC2397" citeas="IETF RFC 2397"/>, we intend to make it trivial for people used to iCalendar syntax to implement this scheme, and also make it consistent with other existing URI formats. The basic syntax for the URI is:</p>

<p id="_63990a57-4617-cc0d-c20d-ba584bc60a42"><tt>v-event:[base64,] icalendar event</tt></p>

<p id="_235418e1-203d-98fc-4720-5c7017c8732e">To be compatible with the generic URI syntax <eref type="inline" bibitemid="RFC3986" citeas="IETF RFC 3986"/>, the whole URI needs to follow the percent encoding escaping. The iCalendar event can be either written as an escaped text or, if base64 is specified, converted to base64. Calendar applications  <tt>MUST</tt> recognize both formats to be compliant with this URI scheme For the iCalendar the following restrictions apply:</p>

<ul id="_bbcdf97c-667d-38e8-ea44-399163b05d8e"><li><p id="_f799c078-874d-0d4b-73c4-42e8e04eb904">Exactly one entity in the <tt>VCALENDAR</tt> (<tt>VEVENT</tt> / <tt>VTODO</tt>) must be specified.</p>
</li>
<li><p id="_ca8001e8-13e9-6f97-fbf9-61fa0d5ae901"><tt>MUST</tt> be a valid entity as specified by <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>, except for rules specified in this document that can violate the RFC specification.</p>
</li>
<li><p id="_b2d32a57-4711-8be9-8232-61f365d01ef1">Start and End dates <tt>MUST</tt> contain timezone through the <tt>TZID</tt> param, as described  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack connective="and"><locality type="section"><referenceFrom>3.8.2.2</referenceFrom></locality></localityStack><localityStack connective="and"><locality type="section"><referenceFrom>RFC5545</referenceFrom></locality><locality type="section"><referenceFrom>3.8.2.4</referenceFrom></locality></localityStack></eref>.</p>
</li>
<li><p id="_970fd48a-bb7e-2a77-e932-7909fd858d8e">Timezones <tt>MUST</tt> be specified using one of the valid names from the IANA timezone database (<tt>tz</tt>) <eref type="inline" bibitemid="tz" citeas="[15]"/>. Also, <tt>VTIMEZONE</tt> entries <tt>MUST NOT</tt> be added to the v-event URI or to the source files. All calendar applications reading events will recognize these names (see  <xref target="sec-3.4.2"/> for more details).</p>
</li>
<li><p id="_6af8b345-c12f-97af-3148-051e9a823494">The event <tt>MUST</tt> contain a UID, as specified by <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.8.4.7</referenceFrom></locality></localityStack></eref>.</p>
</li>
<li><p id="_d7643fe3-94ab-1a81-6580-989a932e0b7c">The <tt>VCALENDAR</tt> object <tt>MAY</tt> contain a <tt>SOURCE</tt> field <eref type="inline" bibitemid="CalDavExtensions" citeas="Internet-Draft draft-ietf-calext-extensions-00"/>, pointing to an ICS file that can contain extra information about the event contained in the calendar. If the source file and the entry contradict each other, the information presented in the source  <tt>MUST</tt> prevail. If the source is available, the event contained in the source file  <tt>MUST</tt> have the same UID as the event expressed by the URI.</p>
</li>
<li><p id="_23d636d6-c460-55ca-c49a-a57a59b0e308">The URI size <tt>MUST</tt> fit in the medium you’re choosing to transmit it, For reference, URIs larger than 2048 characters are known to not work properly on all browsers, and QR codes have a hard limit of 2953 characters in its most permissive encoding. In practice, we recommend limiting the URI to 1024 characters and our tests have shown 500 characters are usually enough for most common scenarios.</p>
</li>
<li><p id="_6a0b111d-0534-a519-90e5-b67fabadf53f"><tt>LAST-MODIFIED</tt> field, as specified by <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><localityStack><locality type="section"><referenceFrom>3.8.7.3</referenceFrom></locality></localityStack></eref> <tt>MUST</tt> be included to allow for changes to be detected by calendar handler applications.</p>
</li>
</ul>
</clause>

<clause id="_0afd1f4e-6827-3c8c-ca45-97c9168d2ad6" obligation="normative">
<title id="_6829da9d-961a-aa93-caa7-b749615b0c0a">URI Registration</title>
<p id="_7295a643-5c29-f079-293c-1937f9a0a788">The v-event URI will be registered with IANA as a provisional scheme, to allow all calendar applications to use it. The authors are not pursuing a permanent registration because they believe that this scheme may be deprecated in the future in favor of a DATA URI scheme, when browser implementations support that scheme with the same level regular URIs are supported.</p>

<p id="_06f4f04f-fc1b-37aa-53e8-8ba2efe8499d">The following are the fields required by <eref type="inline" bibitemid="RFC7595" citeas="IETF RFC 7595"/></p>

<ul id="_de343622-d1e3-4b7f-b2c8-89bdc2afba7e"><li><p id="_f398407a-d816-d3b0-a426-2d4140fae53b">Scheme name: v-event</p>
</li>
<li><p id="_a813023b-9f2d-2f71-212b-3f87e4d68550">Status: provisional</p>
</li>
<li><p id="_df5ea3f1-1f7e-bc1b-66bb-1d786defb95a">Applications/protocols that use this scheme name: Hypertext (for example, web pages, e-mail. QR code readers), calendar applications.</p>
</li>
<li><p id="_500920bc-9c9e-0073-8b46-cc2fc37fbf66">Contact: Raphael Menderico (<link target="mailto:menderico@google.com"/>)</p>
</li>
<li><p id="_d5c23f11-25f6-bc1c-7aa8-2cab5ece25fe">Change Controller: <eref type="inline" bibitemid="CalConnect" citeas="[2]"/></p>
</li>
<li><p id="_f44142fd-0ed8-b0b0-ce78-bfb903e022b7">References: this document, plus references in it</p>
</li>
</ul>
</clause>

<clause id="_50ae6199-3a3c-0d9e-fd71-b4976877db79" obligation="normative">
<title id="_918c253f-a881-f3af-85e2-756132b2130f">Examples</title>
<clause id="_9b128d6c-2150-cd4c-af86-f438185f8e55" anchor="sec-3.3.1" obligation="normative">
<title id="_c0a73d67-2953-d2f4-17fa-9c4eb79029f5">V-Event URI 101 — a simple example</title>
<p id="_37e11e76-5895-3607-8f41-66226ef4b669">In this first example, we will start with a simple event that follows all the recommendations above. This event starts on March 23rd, 2233, at midnight and finishes at 11:59 PM at the same day, in Eastern Time. It has been last modified on April 1st, 2015. From these, we have the following icalendar event:</p>

<sourcecode id="_1f893619-f477-2bd8-5f8d-f8bc1371c41d" unnumbered="true"><body>BEGIN:VCALENDAR
  BEGIN:VEVENT
    SUMMARY:James T. Kirk's birthday
    DTSTART;TZID=US/Eastern:22330322T000000
    DTEND;TZID=US/Eastern:22330322T235900
    UID:8726bc91-a168-4c42-9568-a0e7d35724d6@example.com
    LAST-MODIFIED:20150401T000000Z
  END:VEVENT
END:VCALENDAR</body></sourcecode>


<p id="_acb71328-5685-2300-523d-733d4ae29ea3">which leads to the v-event URI:</p>

<sourcecode id="_edc62f75-903e-874c-45e8-7d61f13bc182" unnumbered="true"><body>v-event:BEGIN%3AVCALENDAR%0D%0ABEGIN%3AVEVENT%0D%0ASUMMARY
%3AJames%20T.%20Kirk%27s%20birthday%0D%0ADTSTART%3BTZID%3DUS
%2FEastern%3A22330322T000000%0D%0ADTEND%3BTZID%3DUS%2F
Eastern%3A22330322T235900%0D%0AUID%3A8726bc91-a168-4c42-
9568-a0e7d35724d6%40example.com%0D%0ALAST-MODIFIED%3A
20150401T000000Z%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR</body></sourcecode>

</clause>

<clause id="_b937e3b2-8e4a-214e-0572-025c22bd63ad" anchor="sec-3.3.2" obligation="normative">
<title id="_d3555911-c538-cd4e-9a20-9339938d0f95">Base 64 encoding</title>
<p id="_5c82955f-4c81-ff8f-1461-88a41d6fd787">As mentioned before, calendar applications also need to be able to interpret base64 versions of the URIs, the example below represents the same event described in  <xref target="sec-3.3.1"/>:</p>

<sourcecode id="_6cd2d653-5f51-d121-67da-e3dd57d9616a" unnumbered="true"><body>v-event:base64,QkVHSU46VkNBTEVOREFSDQpCRUdJTjpWRVZFTlQNClNVTU1BU
lk6SmFtZXMgVC4gS2lyaydzIGJpcnRoZGF5DQpEVFNUQVJUO1RaSUQ9VVMvRWF
zdGVybjoyMjMzMDMyMlQwMDAwMDANCkRURU5EO1RaSUQ9VVMvRWFzdGVybjoyM
jMzMDMyMlQyMzU5MDANClVJRDo4NzI2YmM5MS1hMTY4LTRjNDItOTU2OC1hMGU
3ZDM1NzI0ZDZAZXhhbXBsZS5jb20NCkxBU1QtTU9ESUZJRUQ6MjAxNTA0MDFUM
DAwMDAwWg0KRU5EOlZFVkVOVA0KRU5EOlZDQUxFTkRBUg==</body></sourcecode>

</clause>

<clause id="_6e0057e8-1d47-9858-8d59-cba3593e91fe" obligation="normative">
<title id="_60bee0d5-1231-fea1-c02e-a8107f12de10">Source link</title>
<p id="_dca83d3c-58ae-001e-6c74-fb83110c6c23">A source link should be added if the URI cannot fit all information about a given event or for any other reason you believe that an ICS file may better suit your needs. For the same example in <xref target="sec-3.3.1"/>, we can add the source URL ‘<link target="http://www.example.com/kirk.ics"/>‘ and we would obtain the following URIs:</p>

<sourcecode id="_0098c226-3b5c-e2e4-5725-fd3f3968ab3b" unnumbered="true"><body>v-event:BEGIN%3AVCALENDAR%0D%0ASOURCE%3Ahttp%3A%2F%2Fwww.example.com
%2Fkirk.ics%0D%0ABEGIN%3AVEVENT%0D%0ASUMMARY%3AJames%20T.%20Kirk%27
s%20birthday%0D%0ADTSTART%3BTZID%3DUS%2FEastern%3A22330322T000000%0D
%0ADTEND%3BTZID%3DUS%2FEastern%3A22330322T235900%0D%0AUID%3Af41cb1b
3-e071-425d-a200-5e1384a22758%40example.com%0D%0ALAST-MODIFIED%3A
20150401T000000Z%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR

v-event:base64,QkVHSU46VkNBTEVOREFSDQpTT1VSQ0U6aHR0cDovL3d3dy5leGFtcGxlL
mNvbS9raXJrLmljcw0KQkVHSU46VkVWRU5UDQpTVU1NQVJZOkphbWVzIFQuIEtpcmsnc
yBiaXJ0aGRheQ0KRFRTVEFSVDtUWklEPVVTL0Vhc3Rlcm46MjIzMzAzMjJUMDAwMDAwD
QpEVEVORDtUWklEPVVTL0Vhc3Rlcm46MjIzMzAzMjJUMjM1OTAwDQpVSUQ6ZjQxY2Ix
YjMtZTA3MS00MjVkLWEyMDAtNWUxMzg0YTIyNzU4QGV4YW1wbGUuY29tDQpMQVNU
LU1PRElGSUVEOjIwMTUwNDAxVDAwMDAwMFoNCkVORDpWRVZFTlQNCkVORDpWQ0
FMRU5EQVI=</body></sourcecode>


<p id="_cb28d8c8-c0ec-1b82-b5d6-82f6e01b968f">The iCal object in this case would be:</p>

<sourcecode id="_b35a4da5-cfd0-c927-ee52-6d6be39ddb15" unnumbered="true"><body>BEGIN:VCALENDAR
  SOURCE:http://www.example.com/kirk.ics
  BEGIN:VEVENT
    SUMMARY:James T. Kirk's birthday
    DTSTART;TZID=US/Eastern:22330322T000000
    DTEND;TZID=US/Eastern:22330322T235900
    UID:f41cb1b3-e071-425d-a200-5e1384a22758@example.com
    LAST-MODIFIED:20150401T000000Z
  END:VEVENT
END:VCALENDAR</body></sourcecode>

</clause>

<clause id="_23a36a60-f869-052f-2dde-42f1630efe18" obligation="normative">
<title id="_fd26e68c-f51b-e2fc-1669-5a7a6857539a">QR code examples</title>
<p id="_e2be2380-34a9-676a-bb88-ed14bc680f64">A QR code containing the first example (<xref target="sec-3.3.1"/>) can be found at  <link target="https://goo.gl/lQXIwP"/>. It has been generated using the ZXing barcode generator(<eref type="inline" bibitemid="ZXing" citeas="[17]"/>).</p>
</clause>
</clause>

<clause id="_d70f3df0-ca6e-d431-d8ad-8a076c805e50" obligation="normative">
<title id="_129fe51b-d4c7-8fa7-217d-61552b1c9252">Application requirements and best practices</title>
<clause id="_5acb1aba-f143-1998-e246-e94f364b008d" obligation="normative">
<title id="_fb9632d2-5b4e-779b-df0c-c3cf9e1c6d9f">Event publisher</title>
<p id="_2080c6ee-dcd8-90e6-0076-221b3b15f184">For event publishers, the following extra requirements must me met:</p>

<ul id="_41dca8c4-9116-80f8-5f44-657cfca31a90"><li><p id="_9e379190-1d9f-e5f8-4f92-3187e591e7d2">If your entry contains a <tt>SOURCE</tt> field pointing to an URI, the publisher is responsible for keeping the link live and with up-to- date information while the event information is relevant (i.e, the link must exist until the event expires).</p>
</li>
</ul>

<p id="_38d563f1-208d-e02f-616d-f4103716f3bb">There are also some best practices that need to be followed by these publishers in regard to UID generation and the  <tt>LAST-MODIFIED</tt> field, which are discussed in the following subsections.</p>

<clause id="_de8a6033-d3ce-28c9-0ebc-fd6907662239" obligation="normative">
<title id="_8a58b6d1-a823-29cd-ae01-bd95a160c914">UID generation</title>
<p id="_29f0c060-da88-f263-9ace-6c2889d2fff0">According to <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>, every event MUST be published with an UID, so calendar applications can detect multiple occurrences of it and remove them. The UID  <tt>MUST</tt> be a globally unique identifier, and the system generating the event must guarantee it is unique. The recommended way is to generate an id that is internal to a given system (for instance, a database incremental id, an UUID, or something similar) and append the domain name or IP address at the end, separating them by an @.</p>

<p id="_298f4e24-ab82-fb53-7169-c7e2fe9cbfe8">For example, all these are valid unique ids for domain example.com that fit this recommendation and also  <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>:</p>

<ul id="_1ed4af05-416d-c039-cb97-dea473598fff"><li><p id="_77f344bb-3be1-96c5-f601-b7f24aba53dd">[<tt>1@example.com</tt>]: a simple numerical id, useful if you are creating your first event and has no intention to create another or can manage the ids manually.</p>
</li>
<li><p id="_f8571da4-9d82-55fc-06a3-703923d99b83">[<tt>user-29960401T080000Z-1@example.com</tt>]: An UID for an event from user ‘user’ that starts April first, 2996, at 8:00 AM, and uses the username and date as keys.</p>
</li>
<li><p id="_868cd261-290b-1f56-e144-5905ae7c737e">[<tt>f47935ee-ec5e-4d87-ba26-05e970674a88@example.com</tt>]: a UID which uses UUIDs based on  <eref type="inline" bibitemid="RFC4122" citeas="IETF RFC 4122"/>. Theoretically, UUIDs are themselves unique, but to conform with the recommendation we also appended the domain name.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_11ba25bf-fe95-2267-c6ea-28f9058a6dad" anchor="sec-3.4.2" obligation="normative">
<title id="_2b23f279-6f80-9bdc-60e4-dd88287abe4c">Calendar applications requirements</title>
<p id="_b11b0f1a-86d7-2fbc-085f-620a0f36c909">For calendar data handlers, the following set of extra rules apply:</p>

<ul id="_2961f003-347b-8cb3-b9d7-22d114d03169"><li><p id="_6f52f485-1d51-cb2c-0231-5dd1df43de0b">An event <tt>MUST</tt> only be handled by a calendar application after an user performed an action, such as clicking on a link or scanning a QR code. Events published using the URI  <tt>SHOULD NOT</tt> be added automatically.</p>
</li>
<li><p id="_4efc5825-78aa-684f-5e15-c33791b1399b">Calendar data handlers <tt>MUST</tt> retain sufficient information to determine that an event has changed so that it can inform the user.</p>
</li>
<li><p id="_fc8055a6-dfb6-c644-bb08-0122c9b272ac">If a user deletes a previously downloaded event the handler should recognize that and ignore the event unless explicitly clicked on.</p>
</li>
<li><p id="_633f8ad0-5ee5-71b0-672a-348c3077895e">A calendar application must keep its timezone database always up- to-date and adjust events accordingly. Timezones will be specified by reference (i.e., their ISO names, according to  <eref type="inline" bibitemid="tz" citeas="[15]"/>) and any calendar application  <tt>MUST</tt> understand these.</p>
</li>
</ul>
</clause>
</clause>
</clause>

<clause id="_94a1bbb5-1ab1-da35-f6e7-640b4c3610c4" obligation="normative">
<title id="_c0f57585-3955-b672-3b14-0fb568acac7e">Security and privacy considerations</title>
<p id="_1077cdf2-33b8-0767-dc74-ae077c87cc20">Below are some guidelines applications implementing v-event URI generators and parsers need to follow in order to avoid security and privacy issues.</p>

<ul id="_1e31d1f1-fbd3-4816-33cf-4e64433969a0"><li><p id="_1dbf9b00-e0d4-e057-841d-be9aaea2517c">Whenever a <tt>SOURCE</tt> link is available, the application <tt>MUST</tt> ask the user whether to follow the link, since there may be costs associated with downloading data and the user may want to perform this operation in a different environment.</p>
</li>
<li><p id="_db9934db-7886-5810-47e7-c1b31c2f3345">Calendar applications <tt>MAY</tt> check a <tt>SOURCE</tt> link periodically to check for changes, but  <tt>MUST NOT</tt> update an event automatically based on new information provided by the user. If new information is available through the  <tt>SOURCE</tt> link, calendar applications <tt>SHOULD</tt> inform the user and ask for his consent before performing any change in his calendar.</p>
</li>
<li><p id="_df8c96fd-61bc-57f3-2e21-506217f5ac87">Reading an v-event URI or following a <tt>SOURCE</tt> link and downloading a file may pose a security thread if not carefully handled. Particularly code reading these files should be careful to not get exposed to common security bugs like buffer overflows.</p>
</li>
<li><p id="_7f269e3d-53e5-b6fb-f3cf-de80a7d1259c">A <tt>SOURCE</tt> link <tt>SHOULD</tt> not be used only as a tracking mechanism, if a link is provided there should be some extra information being provided by it or at least the possibility that the information will be updated if necessary</p>
</li>
<li><p id="_82a5eecb-4b34-5e36-3687-3875e309fb57">A <tt>SOURCE</tt> link <tt>MUST</tt> not require a calendar account in any calendar manager, and  <tt>MUST NOT</tt> represent any form of event subscription by a particular system. Any event subscription action  <tt>REQUIRES</tt> user acknowledgment and approval before being performed.</p>
</li>
<li><p id="_061f1af2-80b4-7d6f-36c2-5a8162c14f31">Note that there is no hard limit on the size of a <tt>SOURCE</tt> file, but it is expected that these contain information only about a single event (i.e., one  <tt>VEVENT</tt>) or recurring event (several <tt>VEVENT</tt>s with the same  <tt>RECURRENCE-ID</tt>) This has implications for both writers and readers of these source files:</p>
</li>
<li><p id="_a992c487-77f9-d959-9dd6-eae87937887a">Writers <tt>MUST</tt> always provided well-formed data that complies to this document and, more generally, to iCalendar format <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>.</p>
</li>
<li><p id="_2d465ba2-0604-f6db-697d-fc5b10217368">Readers can’t rely on the size of an input to decide whether it is valid or not, and  <tt>SHOULD</tt> implement parsers that detect inconsistencies.</p>
</li>
</ul>
</clause>

<clause id="_c83ba61d-5180-cc30-5d3f-ea1e60cfa5c6" obligation="normative">
<title id="_f9ee1fc9-e286-27ef-6a2b-a548279e3a1a">Future work</title>
<p id="_2a9b425e-cd7e-036d-ef26-fd5ea5bebfba">As mentioned in <xref target="sec-2.2.2"/>, the data URI scheme would be a nice fit for providing an uniform format for specifying events in the Web and printed media (QR and other formats), and we have only chosen another method because data support is currently limited.</p>

<p id="_cf5143be-4900-027d-603d-878b2bdc4d5b">We plan to update this document with a data URI compatible format as soon as its support is more widespread, allowing it to be used by native applications, browser applications and physical media with the same support currently available for regular URIs. The format specified here is compatible with data URI and minimal changes would be needed to convert from one format to another.</p>
</clause>



</sections><bibliography><references id="_08c0b170-fbbc-9a8b-1909-8c8ce355abd5" normative="false" obligation="informative">
<title id="_2b4ed339-a7ed-1bbb-9576-55fcbc1ace3a">Bibliography</title><bibitem anchor="AddThisEvent" id="_423112c3-f8ae-fd85-88a4-fbc03347568c">
  <formattedref format="application/x-isodoc+xml">“AddThisEvent”, 2012, <link target="http://addthisevent.com"/>. Last checked in August 26, 2015.</formattedref>
  <docidentifier type="metanorma">[1]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="CalConnect" id="_24b5b67f-6098-f72c-222e-0aff5d66a8af">
  <formattedref format="application/x-isodoc+xml">“CalConnect: The Calendaring and Scheduling
Consortium”, January 2004, <link target="http://calconnect.org"/>. Last checked in November 1, 2015.</formattedref>
  <docidentifier type="metanorma">[2]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="CalendarContract" id="_69349a24-fbe5-2720-73a6-f3299a2e5c45">
  <formattedref format="application/x-isodoc+xml">Google Inc., “Android Calendar Contract”, October 2011,
<link target="http://developer.android.com/reference/android/provider/CalendarContract.html"/>. Last checked in August 26, 2015.</formattedref>
  <docidentifier type="metanorma">[3]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem id="_65f717e9-8599-29c0-028b-a9662e75fb41" type="standard" schema-version="v1.5.6" anchor="CalDavExtensions">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">New Properties for iCalendar</title>

  <uri type="src">https://datatracker.ietf.org/doc/html/draft-ietf-calext-extensions-00</uri>
  <docidentifier type="Internet-Draft">draft-ietf-calext-extensions</docidentifier>
  <docidentifier type="Internet-Draft" primary="true">draft-ietf-calext-extensions-00</docidentifier>
  <docnumber>I-D.ietf-calext-extensions</docnumber>
  <date type="published">
    <on>2015-04-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Cyrus</forename>                    <formatted-initials language="en">C.</formatted-initials>          <surname language="en">Daboo</surname>          <completename language="en">Cyrus Daboo</completename>       </name>

    </person>
  </contributor>
  <version>
    <draft>00</draft>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">   This document defines a set of new properties for iCalendar data as
   well as extending the use of some existing properties to the entire
   iCalendar object.

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

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

    <number>draft-ietf-calext-extensions-00</number>
  </series>
</bibitem><bibitem anchor="GoogleCalendar" id="_b0e4046a-a8c3-3940-893a-b1fa4133162c">
  <formattedref format="application/x-isodoc+xml">Google Inc., “Google Calendar”, April 2006,
<link target="http://calendar.google.com"/>. Last checked in August 26, 2015.</formattedref>
  <docidentifier type="metanorma">[5]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="hCalendar" id="_d73d9075-2c77-386c-aede-a8797510c29b">
  <formattedref format="application/x-isodoc+xml">Celik, T. and B. Suda, “hCalendar Microformat”, June 2005,
<link target="http://microformats.org/wiki/hcalendar"/>. Last checked in July 27, 2015.</formattedref>
  <docidentifier type="metanorma">[6]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem anchor="i-nigma" id="_381d5d7c-0031-30ff-6e0b-b6de3fb91ad3">
  <formattedref format="application/x-isodoc+xml">3GVision, “i-nigma”, August 2015. Last checked in August 27, 2015.</formattedref>
  <docidentifier type="metanorma">[7]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem id="_c90ff385-cfbd-f1a5-e19a-8e2cd9142e54" type="standard" schema-version="v1.5.6" anchor="RFC2397">
  <fetched>2026-05-13</fetched>
  
<title type="main">The “data” URL scheme</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2397</uri>
  <docidentifier type="IETF" primary="true">RFC 2397</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2397</docidentifier>
  <docnumber>RFC2397</docnumber>
  <date type="published">
    <on>1998-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Masinter</surname>          <completename language="en" script="Latn">L. Masinter</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="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="_d3644720-19ab-fc51-3ea7-fc929fa53d49">A new URL scheme, “data”, is defined.  It allows inclusion of small data items as “immediate” data, as if it had been included externally. [STANDARDS-TRACK]</p>

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

    <number>2397</number>
  </series>
  <series type="stream">
    
<title>Legacy</title>

  </series>
  <keyword>
    <vocab>DATA-URL</vocab>
  </keyword>
  <keyword>
    <vocab>uniform resource locator</vocab>
  </keyword>
  <keyword>
    <vocab>identifiers</vocab>
  </keyword>
  <keyword>
    <vocab>media type</vocab>
  </keyword>
</bibitem><bibitem id="_9a652a52-7c68-4eb9-5873-55371cc39e49" type="standard" schema-version="v1.5.6" anchor="RFC3986">
  <fetched>2026-05-13</fetched>
  
<title type="main">Uniform Resource Identifier (URI): Generic Syntax</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc3986</uri>
  <docidentifier type="IETF" primary="true">RFC 3986</docidentifier>
  <docidentifier type="DOI">10.17487/RFC3986</docidentifier>
  <docnumber>RFC3986</docnumber>
  <date type="published">
    <on>2005-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Berners-Lee</surname>          <completename language="en" script="Latn">T. Berners-Lee</completename>       </name>

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

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Masinter</surname>          <completename language="en" script="Latn">L. Masinter</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="_3a535d92-2962-986d-0f57-ee2004c16fe3">A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</p>

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

  </relation>
  <series>
    
<title>STD</title>

    <number>66</number>
  </series>
  <series>
    
<title>RFC</title>

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

  </series>
  <keyword>
    <vocab>Internet protocol</vocab>
  </keyword>
  <keyword>
    <vocab>IP</vocab>
  </keyword>
  <keyword>
    <vocab>uniform resource identifier</vocab>
  </keyword>
  <keyword>
    <vocab>URI</vocab>
  </keyword>
  <keyword>
    <vocab>www</vocab>
  </keyword>
  <keyword>
    <vocab>world wide web</vocab>
  </keyword>
</bibitem><bibitem id="_465db291-b998-3c0c-d4ea-44341310307e" type="standard" schema-version="v1.5.6" anchor="RFC4122">
  <fetched>2026-05-13</fetched>
  
<title type="main">A Universally Unique IDentifier (UUID) URN Namespace</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc4122</uri>
  <docidentifier type="IETF" primary="true">RFC 4122</docidentifier>
  <docidentifier type="DOI">10.17487/RFC4122</docidentifier>
  <docnumber>RFC4122</docnumber>
  <date type="published">
    <on>2005-07</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Leach</surname>          <completename language="en" script="Latn">P. Leach</completename>       </name>

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

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Salz</surname>          <completename language="en" script="Latn">R. Salz</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="_d398557e-cce8-1985-1900-58dd1d3733bb">This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\’s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</p>

    <p id="_e760f20a-e341-8e9e-69d7-9cec8800e022">This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</p>

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

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

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

  </series>
  <keyword>
    <vocab>uniform resource name</vocab>
  </keyword>
  <keyword>
    <vocab>guid</vocab>
  </keyword>
  <keyword>
    <vocab>globally unique identifier</vocab>
  </keyword>
</bibitem><bibitem id="_fbb321a6-dffa-5daa-21ff-bd3543eaef94" 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="_bfaa725b-d412-2a00-9663-07401c47dc24">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="_a68be262-4966-95a4-e8e1-fd8c6aba4dac" 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="_fcaf0bcb-47c0-19b9-6a28-0061534da398">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="_e6d5fd87-59d9-8a58-7ce9-0e09584ff615" type="standard" schema-version="v1.5.6" anchor="RFC6068">
  <fetched>2026-05-13</fetched>
  
<title type="main">The ‘mailto’ URI Scheme</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6068</uri>
  <docidentifier type="IETF" primary="true">RFC 6068</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6068</docidentifier>
  <docnumber>RFC6068</docnumber>
  <date type="published">
    <on>2010-10</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Duerst</surname>          <completename language="en" script="Latn">M. Duerst</completename>       </name>

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

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Zawinski</surname>          <completename language="en" script="Latn">J. Zawinski</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="_f5b92189-14cc-e601-3dfd-e23c4c3d6e03">This document defines the format of Uniform Resource Identifiers (URIs) to identify resources that are reached using Internet mail.  It adds better internationalization and compatibility with Internationalized Resource Identifiers (IRIs; RFC 3987) to the previous syntax of ‘mailto’ URIs (RFC 2368). [STANDARDS-TRACK]</p>

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

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

  </series>
  <keyword>
    <vocab>mailto</vocab>
  </keyword>
  <keyword>
    <vocab>email address</vocab>
  </keyword>
  <keyword>
    <vocab>URI scheme</vocab>
  </keyword>
  <keyword>
    <vocab>IRI</vocab>
  </keyword>
</bibitem><bibitem id="_0bfd6908-840a-2cfe-6ebf-c9fc77a8bad3" type="standard" schema-version="v1.5.6" anchor="RFC6838">
  <fetched>2026-05-13</fetched>
  
<title type="main">Media Type Specifications and Registration Procedures</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6838</uri>
  <docidentifier type="IETF" primary="true">RFC 6838</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6838</docidentifier>
  <docnumber>RFC6838</docnumber>
  <date type="published">
    <on>2013-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">N.</formatted-initials>          <surname language="en" script="Latn">Freed</surname>          <completename language="en" script="Latn">N. Freed</completename>       </name>

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

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Hansen</surname>          <completename language="en" script="Latn">T. Hansen</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>ART Area General Applications Working Group</name>

        <identifier>appsawg</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_70952517-c0e3-190a-281f-2b6d02de375a">This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</p>

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

    <number>13</number>
  </series>
  <series>
    
<title>RFC</title>

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

  </series>
</bibitem><bibitem anchor="tz" id="_592846e8-8aa2-e9b2-2872-efe8e8313e77">
  <formattedref format="application/x-isodoc+xml">IANA, “Time Zone Database”, 1986, <link target="https://www.iana.org/"/> 
time-zones. Last checked in August 27, 2015.</formattedref>
  <docidentifier type="metanorma">[15]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem><bibitem id="_bd2f07b5-212b-90ce-40c7-ca3fd75ee61a" type="standard" schema-version="v1.5.6" anchor="RFC7595">
  <fetched>2026-05-13</fetched>
  
<title type="main">Guidelines and Registration Procedures for URI Schemes</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7595</uri>
  <docidentifier type="IETF" primary="true">RFC 7595</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7595</docidentifier>
  <docnumber>RFC7595</docnumber>
  <date type="published">
    <on>2015-06</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Thaler</surname>          <completename language="en" script="Latn">D. Thaler</completename>       </name>

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

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Hardie</surname>          <completename language="en" script="Latn">T. Hardie</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>ART Area General Applications Working Group</name>

        <identifier>appsawg</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_9cb6e285-62a1-12c6-2e5a-7814d06d3328">This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes.  It obsoletes RFC 4395.</p>

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

    <number>35</number>
  </series>
  <series>
    
<title>RFC</title>

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

  </series>
  <keyword>
    <vocab>URI scheme</vocab>
  </keyword>
  <keyword>
    <vocab>IRI</vocab>
  </keyword>
  <keyword>
    <vocab>Internationalized Resource Identifier</vocab>
  </keyword>
  <keyword>
    <vocab>Uniform Resource Identifier</vocab>
  </keyword>
  <keyword>
    <vocab>URI registration</vocab>
  </keyword>
</bibitem><bibitem anchor="ZXing" id="_99e2a260-2e15-f591-b0cb-f8aa60d19444">
  <formattedref format="application/x-isodoc+xml">Owen, S., “ZXing Project”, November 2007. Last checked in July 27, 2015.</formattedref>
  <docidentifier type="metanorma">[17]</docidentifier>
  <language>en</language>
  <script>Latn</script>
</bibitem>

















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