rfc9073xml2.original.xml   rfc9073.xml 
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ <rfc xmlns:xi="http://www.w3.org/2001/XInclude" updates="5545" obsoletes=""
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R docName="draft-ietf-calext-eventpub-extensions-18" number="9073" ipr="trust20090
FC.2119.xml"> 2" submissionType="IETF" category="std" consensus="true" xml:lang="en" tocInclud
<!ENTITY RFC2426 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R e="true" tocDepth="5" symRefs="true" sortRefs="true" version="3">
FC.2426.xml">
<!ENTITY RFC3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.3986.xml">
<!ENTITY RFC4589 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.4589.xml">
<!ENTITY RFC5545 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.5545.xml">
<!ENTITY RFC5546 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.5546.xml">
<!ENTITY RFC7986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.7986.xml">
<!ENTITY RFC8126 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.8126.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.8174.xml">
<!ENTITY RFC8259 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.R
FC.8259.xml">
<!ENTITY W3C.REC-html51-20171003 SYSTEM "https://xml2rfc.tools.ietf.org/public
/rfc/bibxml4/reference.W3C.REC-html51-20171003.xml">
<!ENTITY W3C.REC-xml-20081126 SYSTEM "https://xml2rfc.tools.ietf.org/public/rf
c/bibxml4/reference.W3C.REC-xml-20081126.xml">
]>
<rfc category="std" updates="5545"
docName="draft-ietf-calext-eventpub-extensions-18" ipr="trust200902">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="5"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<front> <front>
<title abbrev="Event Publishing Extensions to iCalendar">Event Publishing Ex tensions to iCalendar</title> <title abbrev="Event Publishing Extensions to iCalendar">Event Publishing Ex tensions to iCalendar</title>
<seriesInfo name="RFC" value="9073"/>
<!-- add 'role="editor"' below for the editors if appropriate -->
<author initials="M." surname="Douglass" fullname="Michael Douglass"> <author initials="M." surname="Douglass" fullname="Michael Douglass">
<organization abbrev="Bedework">Bedework</organization> <organization abbrev="Bedework">Bedework</organization>
<address> <address>
<postal> <postal>
<street>226 3rd Street</street> <street>226 3rd Street</street>
<city>Troy</city> <city>Troy</city>
<region>NY</region> <region>NY</region>
<code>12180</code> <code>12180</code>
<country>USA</country> <country>United States of America</country>
</postal> </postal>
<email>mdouglass@bedework.com</email> <email>mdouglass@bedework.com</email>
<uri>http://bedework.com</uri> <uri>http://bedework.com</uri>
</address> </address>
</author> </author>
<date month="July" year="2021"/>
<date day='13' month='January' year='2021' />
<area>Applications</area> <area>Applications</area>
<keyword>icalendar</keyword> <keyword>icalendar</keyword>
<keyword>properties</keyword> <keyword>properties</keyword>
<abstract> <abstract>
<t> <t>
This specification updates RFC5545 by This specification updates RFC 5545 by
introducing a number of new iCalendar introducing a number of new iCalendar
properties and components which are of particular use for event properties and components that are of particular use for event
publishers and in social networking. publishers and in social networking.
</t> </t>
<t> <t>
This specification also defines a new STRUCTURED-DATA property for This specification also defines a new "STRUCTURED-DATA" property for
iCalendar RFC5545 to allow for data that is directly pertinent iCalendar (RFC 5545) to allow for data that is directly pertinent
to an event or task to be included with the calendar data. to an event or task to be included with the calendar data.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section title="Introduction"> <section numbered="true" toc="default">
<name>Introduction</name>
<t> <t>
The currently existing iCalendar standard <xref target='RFC5545'/> lacks The currently existing iCalendar standard <xref target="RFC5545" format= "default"/> lacks
useful methods for referencing additional, external information useful methods for referencing additional, external information
relating to calendar components. Additionally there is no standard relating to calendar components. Additionally, there is no standard
way to provide rich text descriptions or meta-data associated with way to provide rich-text descriptions or metadata associated with
the event. the event.
</t> </t>
<t> <t>
Current practice is to embed this information as links Current practice is to embed this information as links
in the description or to add non-standard properties as defined in in the description or to add nonstandard properties, as defined in
<xref target='RFC5545'/> section 3.8.8.2. <xref target="RFC5545" sectionFormat="of" section="3.8.8.2"/>.
</t> </t>
<t> <t>
This document updates <xref target='RFC5545'/> to define a This document updates <xref target="RFC5545" format="default"/> to defin e a
number of properties and components referencing such external number of properties and components referencing such external
information that can provide additional information about an iCalendar information that can provide additional information about an iCalendar
component. The intent is to allow interchange of such information betwee n component. The intent is to allow the interchange of such information be tween
applications or systems (e.g., between clients, between client and serv er, applications or systems (e.g., between clients, between client and serv er,
and between servers). Formats such as vCard <xref target='RFC2426'/> and between servers). Formats, such as vCard <xref target="RFC6350" form at="default"/>,
are likely to be are likely to be
most useful to the receivers of such events as they may be used most useful to the receivers of such events as they may be used
in other applications - such as address books. in other applications -- such as address books.
</t> </t>
<section anchor="conventions" numbered="true" toc="default">
<section anchor="conventions" title='Conventions Used in This Document'> <name>Conventions Used in This Document</name>
<t> <t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
"MAY" and "OPTIONAL" in this document are to be interpreted as NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>
described in BCP 14 <xref target='RFC2119'/> RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
<xref target='RFC8174'/> when, and only when, they "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
appear in all capitals, as shown here. be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t> </t>
</section>
<section anchor="terms" title='Terms Used in This Document'> <t> The notation used in this memo is the ABNF notation of <xref target="
<t> RFC5234"/> as
<list style='hanging'> used by iCalendar <xref target="RFC5545"/>. Any syntax elements shown below
<t hangText="Event:"> that
When the (perhaps with a capitalised 'E') word 'event' is used are not explicitly defined in this specification come from iCalendar <xref ta
we are referring to gatherings, formal or informal. For example rget="RFC5545"/>.</t>
a sports event, a party or a concert.
</t> </section>
<t hangText="Social Calendaring:"> <section anchor="terms" numbered="true" toc="default">
<name>Terms Used in This Document</name>
<dl newline="false" spacing="normal">
<dt>Event:</dt>
<dd>
When the word 'event' (perhaps with a capitalized 'E') is used,
we are referring to gatherings, formal or informal (for example,
a sports event, a party, or a concert).
</dd>
<dt>Social Calendaring:</dt>
<dd>
Historically, calendar data and scheduling has been heavily Historically, calendar data and scheduling has been heavily
biased towards meetings in a corporate environment. Some of biased towards meetings in a corporate environment. Some of
the features defined in this document are to support a more the features defined in this document are to support a more
informal, i.e. social, model. For example, we may want to informal, i.e., social, model. For example, we may want to
record who is participating in a public event. record who is participating in a public event.
</t> </dd>
</list> </dl>
</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Components and properties"> <name>Components and Properties</name>
<t> <t>
Previous extensions to the calendaring standards have been largely Previous extensions to the calendaring standards have been largely
restricted to the addition of properties or parameters. This is restricted to the addition of properties or parameters. This is
partly because iCalendar libraries had trouble handling components partly because iCalendar libraries had trouble handling components
nested deeper than those defined in <xref target='RFC5545'/>. nested deeper than those defined in <xref target="RFC5545" format="defau lt"/>.
</t> </t>
<t> <t>
In a break with this 'tradition' this specification defines In a break with this 'convention', this specification defines
a number of components rather than properties. This a number of components rather than properties. This
is a better match for the way <xref target='W3C.REC-xml-20081126'/> is a better match for the way <xref target="W3C.REC-xml-20081126" format
and JSON <xref target='RFC8259'/> handle such structures ="default"/>
and JSON <xref target="RFC8259" format="default"/> handle such structure
s
and allows richer definitions. and allows richer definitions.
</t> </t>
<t> <t>
It also allows for the addition of extra properties inside the It also allows for the addition of extra properties inside the
components and resolves some of the problems of trying to add components and resolves some of the problems of trying to add
detailed information as a parameter. detailed information as a parameter.
</t> </t>
</section> </section>
<section numbered="true" toc="default">
<section title="Typed References"> <name>Typed References</name>
<t> <t>
The properties and components defined here can all reference The properties and components defined here can all reference
external meta-data which may be used by applications to external metadata, which may be used by applications to
provide further information to users. By providing type information, provide further information to users. By providing type information,
clients and servers are able to discover interesting clients and servers are able to discover interesting
references and make use of them, perhaps for indexing or the references and make use of them, perhaps for indexing or
presenting of additional related information for the user. presenting additional, related information for the user.
</t> </t>
<t>As always, clients should exercise caution in following <t>As always, clients should exercise caution in following
references to external data.</t> references to external data.</t>
<t> <t>
The <xref target='RFC5545'/> LOCATION property provides only The "LOCATION" property <xref target="RFC5545" format="default"/> provid es only
an unstructured single text value for specifying the location where an e vent an unstructured single text value for specifying the location where an e vent
(or task) will occur. This is inadequate for use cases where (or task) will occur. This is inadequate for use cases where
structured location information (e.g. address, region, country, structured location information (e.g., address, region, country, or
postal code) is required or preferred, and limits widespread adoption of postal code) is required or preferred and limits widespread adoption of
iCalendar in those settings. iCalendar in those settings.
</t> </t>
<t> <t>
Using the VLOCATION component, rich information about multiple Using the "VLOCATION" component, rich information about multiple
locations can be communicated in a STRUCTURED-DATA property, locations can be communicated in a "STRUCTURED-DATA" property;
for example, address, region, examples include address, region,
country, postal code as well as other information such as country, postal code, parking availability, nearby restaurants, and
parking availability, nearby restaurants and the venue, among others. Servers and clients can retrieve the objects wh
the venue. Servers and clients can retrieve the objects when en
storing the event and use them to index by geographic location. storing the event and use them to index by geographic location.
</t> </t>
<t> <t>
When a calendar client receives a calendar component it can search the When a calendar client receives a calendar component, it can search the
set of locations looking for those of particular interest. set of locations looking for those of particular interest.
The LOCATION-TYPE property and STRUCTURED-DATA FMTTYPE parameter,
if supplied, can be used to help the selection.
</t>
The "LOCATION-TYPE" property and "FMTTYPE" parameter applied to the "STR
UCTURED-DATA" property, if supplied, can be used to help the selection.
</t>
<t> <t>
The PARTICIPANT component is designed to handle common use cases in The "PARTICIPANT" component is designed to handle common use cases in
event event
publication. It is generally important to provide information publication. It is generally important to provide information
about the organizers of such events. Sponsors wish to be about the organizers of such events. Sponsors wish to be
referenced in a prominent manner. In social calendaring it is referenced in a prominent manner. In social calendaring, it is
often important to identify the active participants in the event, often important to identify the active participants
for example a school sports team, and the inactive participants, (e.g,, a school sports team) and the inactive participants (e.g., the pa
for example the parents. rents) in the event.
</t> </t>
<t> <t>
The PARTICIPANT component can be used to provide useful The "PARTICIPANT" component can be used to provide useful
extra data about an attendee. For example a location extra data about an attendee. For example, a location
inside the PARTICIPANT gives the actual location of a remote inside the PARTICIPANT gives the actual location of a remote
attendee. (But see the note about privacy.) attendee. (But see the note about privacy.)
</t> </t>
<t> <t>
Alternatively the PARTICIPANT component can be used to provide Alternatively, the "PARTICIPANT" component can be used to provide
a reference - perhaps the address for mailing lists. a reference -- perhaps the address for mailing lists.
</t> </t>
<section numbered="true" toc="default">
<section title="Use Cases"> <name>Use Cases</name>
<t> <t>
The main motivation for these changes has been event publication but The main motivation for these changes has been event publication, but
there are opportunities for use elsewhere. The following use cases wil l there are opportunities for use elsewhere. The following use cases wil l
describe some possible scenarios. describe some possible scenarios.
</t> </t>
<section numbered="true" toc="default">
<section title="Piano Concert Performance"> <name>Piano Concert Performance</name>
<t> <t>
In putting together a concert there are many participants: piano tun In putting together a concert, there are many participants: piano tu
er, ner,
performer, stage hands etc. In addition there are sponsors and vario performer, stage hands, etc. In addition, there are sponsors and var
us ious
contacts to be provided. There will also be a number of related loca tions. contacts to be provided. There will also be a number of related loca tions.
A number of events can be created, all of A number of events can be created, all of
which relate to the performance in different ways. which relate to the performance in different ways.
</t> </t>
<t> <t>
There may be an iTip <xref target='RFC5546'/> meeting There may be an iCalendar Transport-independent Interoperability Pro
request for the piano tuner who will arrive tocol (iTIP) <xref
target="RFC5546" format="default"/> meeting
request for the piano tuner, who will arrive
before the performance. Other members of staff may also receive meet ing before the performance. Other members of staff may also receive meet ing
requests. requests.
</t> </t>
<t> <t>
An event can also be created for publication which will have a PARTI An event can also be created for publication, which will have a "PAR
CIPANT TICIPANT"
component for the pianist providing a reference to vCard component for the pianist providing a reference to vCard information
<xref target='RFC2426'/> information about the performer. (<xref target="RFC6350" format="default"/>) about the performer.
This event would also hold information about parking, local subway s This event would also hold information about parking, local subway s
tations tations,
and the venue itself. In addition, there may be sponsorship informat ion and the venue itself. In addition, there may be sponsorship informat ion
for sponsors of the event and perhaps paid sponsorship properties for sponsors of the event and perhaps paid sponsorship properties,
essentially advertising local establishments. essentially advertising local establishments.
</t> </t>
</section> </section>
<section numbered="true" toc="default">
<name>Itineraries</name>
<section title="Itineraries">
<t> <t>
These additions also provide opportunities for the travel industry. These additions also provide opportunities for the travel industry.
When booking a flight the PARTICIPANT component can be used to provi When booking a flight, the "PARTICIPANT" component can be used to pr
de ovide
references to businesses at the airports and to car hire businesses references to businesses at the airports and to rental car businesse
s
at the destination. at the destination.
</t> </t>
<t> <t>
The embedded location information can guide the traveler at the airp
ort The embedded location information can guide the traveler around the
airport itself
or to their final destination. The contact information can provide or to their final destination. The contact information can provide
detailed information about the booking agent, the airlines, car hire detailed information about the booking agent, airlines, car hire
companies and the hotel. companies, and hotel.
</t> </t>
<section numbered="true" toc="default">
<section title="Reserving facilities"> <name>Reserving Facilities</name>
<t> <t>
For a meeting, the size of a room and the equipment needed For a meeting, the size of a room and the equipment needed
depends to some extent on the number of attendees actually depends, to some extent, on the number of attendees actually
in the room. in the room.
</t> </t>
<t> <t>
A meeting may have many attendees none of which are co-located. A meeting may have many attendees, none of which are co-located.
The current ATTENDEE property does not allow for the addition The current "ATTENDEE" property does not allow for the addition
of such meta-data. The PARTICIPANT component allows attendees to of such metadata. The "PARTICIPANT" component allows attendees to
specify their location. specify their location.
</t> </t>
</section> </section>
</section> </section>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Modifications to Calendar Components"> <name>Modifications to Calendar Components</name>
<t> <t>
The following changes to the syntax defined in The following changes to the syntax defined in iCalendar
<xref target='RFC5545'>iCalendar</xref> are made here. New elements are <xref target="RFC5545" format="default"></xref> are made here. New eleme
nts are
defined in subsequent sections. defined in subsequent sections.
<figure> </t>
<artwork name="abnf"><![CDATA[
; Addition of PARTICIPANT, VLOCATION and VRESOURCE
; as valid components
eventc = "BEGIN" ":" "VEVENT" CRLF
eventprop *alarmc *participantc *locationc *resourcec
"END" ":" "VEVENT" CRLF
; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA <sourcecode type="abnf"><![CDATA[
eventprop =/ *styleddescription ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE
*sdataprop ; as valid components
eventc = "BEGIN" ":" "VEVENT" CRLF
eventprop *alarmc *participantc *locationc *resourcec
"END" ":" "VEVENT" CRLF
; Addition of PARTICIPANT, VLOCATION and VRESOURCE ; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA
; as valid components eventprop =/ *styleddescription
todoc = "BEGIN" ":" "VTODO" CRLF *sdataprop
todoprop *alarmc *participantc *locationc *resourcec
"END" ":" "VTODO" CRLF
; Addition of properties STYLED-DESCRIPTION, STRUCTURED-DATA ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE
todoprop =/ *styleddescription ; as valid components
*sdataprop todoc = "BEGIN" ":" "VTODO" CRLF
todoprop *alarmc *participantc *locationc *resourcec
"END" ":" "VTODO" CRLF
; Addition of PARTICIPANT, VLOCATION and VRESOURCE ; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA
; as valid components todoprop =/ *styleddescription
journalc = "BEGIN" ":" "VJOURNAL" CRLF *sdataprop
jourprop *participantc *locationc *resourcec
"END" ":" "VJOURNAL" CRLF
; Addition of properties STYLED-DESCRIPTION, STRUCTURED-DATA ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE
jourprop =/ *styleddescription ; as valid components
*sdataprop journalc = "BEGIN" ":" "VJOURNAL" CRLF
jourprop *participantc *locationc *resourcec
"END" ":" "VJOURNAL" CRLF
; Addition of PARTICIPANT, VLOCATION and VRESOURCE ; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA
; as valid components jourprop =/ *styleddescription
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF *sdataprop
fbprop *participantc *locationc *resourcec
"END" ":" "VFREEBUSY" CRLF
; Addition of property STYLED-DESCRIPTION ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE
fbprop =/ *styleddescription ; as valid components
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
fbprop *participantc *locationc *resourcec
"END" ":" "VFREEBUSY" CRLF
]]></artwork> ; Addition of property STYLED-DESCRIPTION
</figure> fbprop =/ *styleddescription
</t> ]]></sourcecode>
</section> </section>
<section anchor="new_property_parameters" numbered="true" toc="default">
<section anchor="new_property_parameters" <name>New Property Parameters</name>
title="New Property Parameters"> <section anchor="parameter_order" numbered="true" toc="default">
<section anchor="parameter_order" <name>Order</name>
title="Order"> <dl newline="false" spacing="normal">
<t> <dt>Parameter name:</dt>
<list style='hanging'> <dd>ORDER</dd>
<t hangText="Parameter name:"> <dt>Purpose:</dt>
ORDER <dd>This parameter defines ordering for the associated property.</dd>
</t> <dt>Format Definition:</dt>
<dd>
<t hangText="Purpose:"> <t keepWithNext="true">
To define ordering for the associated property.
</t>
<t hangText="Format Definition:">
<figure>
<preamble>
This parameter is defined by the following notation: This parameter is defined by the following notation:
</preamble>
<artwork type="abnf">
orderparam = "ORDER" "=" integer
; Must be greater than or equal to 1
</artwork>
</figure>
</t> </t>
<sourcecode type="abnf"><![CDATA[
<t hangText="Description:"> orderparam = "ORDER" "=" integer
The ORDER parameter is OPTIONAL and is used to indicate the ; Must be greater than or equal to 1
]]></sourcecode>
</dd>
<dt>Description:</dt>
<dd>
<t>The "ORDER" parameter is <bcp14>OPTIONAL</bcp14> and is used to
indicate the
relative ordering of the corresponding instance of a property. relative ordering of the corresponding instance of a property.
Its value MUST be an integer greater than or equal to 1 that Its value <bcp14>MUST</bcp14> be an integer greater than or equal
specifies the order with 1 being the first in the ordering. to 1 that
</t> specifies the order, with 1 being the first in the ordering.</t>
<t>When the parameter is absent, the default <bcp14>MUST</bcp14> b
<t> e to interpret the
When the parameter is absent, the default MUST be to interpret the
property instance as being ordered last, that is, property instance as being ordered last, that is,
the property will appear after any other instances of the the property will appear after any other instances of the
same property with any value of ORDER. same property with any value of ORDER.</t>
</t> <t>When any "ORDER" parameters have the same value, all the associ
ated
<t>
When any ORDER parameters have the same value all the associated
properties appear as a group within which there is no properties appear as a group within which there is no
defined order. defined order.</t>
</t> <t>Note that the value of this parameter is to be interpreted only
in
<t>
Note that the value of this parameter is to be interpreted only in
relation to values assigned to other corresponding instances of relation to values assigned to other corresponding instances of
the same property in the same entity. the same property in the same entity.</t>
</t> <t>This parameter <bcp14>MUST NOT</bcp14> be applied to a property
that does not
<t> allow multiple instances.</t>
This parameter MUST NOT be applied to a property that does not </dd>
allow multiple instances. <dt>Example uses:</dt>
</t> <dd>
The ORDER may be applied to the "PARTICIPANT-TYPE" property
<t hangText="Example uses:">
The ORDER may be applied to the PARTICIPANT-TYPE property
to indicate the relative importance of the participant, for to indicate the relative importance of the participant, for
example as a sponsor or a performer. For example, ORDER=1 could example, as a sponsor or a performer. For example, ORDER=1 could
define the principal performer or soloist. define the principal performer or soloist.
</t> </dd>
</list> </dl>
</t>
</section> </section>
<section anchor="parameter_schema" numbered="true" toc="default">
<section title="Schema" <name>Schema</name>
anchor="parameter_schema"> <dl newline="false" spacing="normal">
<t> <dt>Parameter Name:</dt>
<list style="hanging"> <dd>SCHEMA</dd>
<t hangText="Parameter Name:"> <dt>Purpose:</dt>
SCHEMA <dd>
</t> This parameter specifies the schema used for the content of a
<t hangText="Purpose:">
To specify the schema used for the content of a
"STRUCTURED-DATA" property value. "STRUCTURED-DATA" property value.
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This parameter is defined by the following notation: This parameter is defined by the following notation:
</preamble>
<artwork name="abnf"><![CDATA[
schemaparam = "SCHEMA" "=" DQUOTE uri DQUOTE
]]></artwork>
</figure>
</t> </t>
<sourcecode type="abnf"><![CDATA[
<t hangText="Description:"> schemaparam = "SCHEMA" "=" DQUOTE uri DQUOTE
This property parameter SHOULD be specified on ]]></sourcecode>
"STRUCTURED-DATA" properties. When present it provides </dd>
<dt>Description:</dt>
<dd>
This property parameter <bcp14>SHOULD</bcp14> be specified on
"STRUCTURED-DATA" properties. When present, it provides
identifying information about the nature of the content identifying information about the nature of the content
of the corresponding "STRUCTURED-DATA" property value. of the corresponding "STRUCTURED-DATA" property value.
This can be used to supplement the media type information This can be used to supplement the media type information
provided by the "FMTTYPE" parameter on the corresponding provided by the "FMTTYPE" parameter on the corresponding
property. property.
</t> </dd>
<dt>Example:</dt>
<t hangText="Example:"> <dd>
<figure> <sourcecode type=""><![CDATA[
<artwork><![CDATA[
STRUCTURED-DATA;FMTTYPE=application/ld+json; STRUCTURED-DATA;FMTTYPE=application/ld+json;
SCHEMA="https://schema.org/FlightReservation"; SCHEMA="https://schema.org/FlightReservation";
ENCODING=BASE64;VALUE=BINARY:ICAgIDxzY3JpcHQgdHlwZT0iYXBwb ENCODING=BASE64;VALUE=BINARY:ICAgIDxzY3JpcHQgdHlwZT0iYXBwb
GljYXRpb24vbGQranNvbiI+CiAgICB7CiAgICAgICJAY29 GljYXRpb24vbGQranNvbiI+CiAgICB7CiAgICAgICJAY29
udGV4dCI6ICJodHRwOi8vc2NoZW1hLm9yZyIsCiAgICAgICJAdHlwZSI udGV4dCI6ICJodHRwOi8vc2NoZW1hLm9yZyIsCiAgICAgICJAdHlwZSI
6ICJGbGlnaHRSZXNlcnZhdGlvbiIsCiAgICAgICJyZXNlcnZhdGlvbkl 6ICJGbGlnaHRSZXNlcnZhdGlvbiIsCiAgICAgICJyZXNlcnZhdGlvbkl
kIjogIlJYSjM0UCIsCiAgICAgICJyZXNlcnZhdGlvblN0YXR1cyI6ICJ kIjogIlJYSjM0UCIsCiAgICAgICJyZXNlcnZhdGlvblN0YXR1cyI6ICJ
odHRwOi8vc2NoZW1hLm9yZy9SZXNlcnZhdGlvbkNvbmZpcm1lZCIsCiA odHRwOi8vc2NoZW1hLm9yZy9SZXNlcnZhdGlvbkNvbmZpcm1lZCIsCiA
gICAgICJwYXNzZW5nZXJQcmlvcml0eVN0YXR1cyI6ICJGYXN0IFRyYWN gICAgICJwYXNzZW5nZXJQcmlvcml0eVN0YXR1cyI6ICJGYXN0IFRyYWN
rIiwKICAgICAgInBhc3NlbmdlclNlcXVlbmNlTnVtYmVyIjogIkFCQzE rIiwKICAgICAgInBhc3NlbmdlclNlcXVlbmNlTnVtYmVyIjogIkFCQzE
skipping to change at line 473 skipping to change at line 403
ycG9ydCI6IHsKICAgICAgICAgICJAdHlwZSI6ICJBaXJwb3J0IiwKICA ycG9ydCI6IHsKICAgICAgICAgICJAdHlwZSI6ICJBaXJwb3J0IiwKICA
gICAgICAgICJuYW1lIjogIlNhbiBGcmFuY2lzY28gQWlycG9ydCIsCiA gICAgICAgICJuYW1lIjogIlNhbiBGcmFuY2lzY28gQWlycG9ydCIsCiA
gICAgICAgICAiaWF0YUNvZGUiOiAiU0ZPIgogICAgICAgIH0sCiAgICA gICAgICAgICAiaWF0YUNvZGUiOiAiU0ZPIgogICAgICAgIH0sCiAgICA
gICAgImRlcGFydHVyZVRpbWUiOiAiMjAxNy0wMy0wNFQyMDoxNTowMC0 gICAgImRlcGFydHVyZVRpbWUiOiAiMjAxNy0wMy0wNFQyMDoxNTowMC0
wODowMCIsCiAgICAgICAgImFycml2YWxBaXJwb3J0IjogewogICAgICA wODowMCIsCiAgICAgICAgImFycml2YWxBaXJwb3J0IjogewogICAgICA
gICAgIkB0eXBlIjogIkFpcnBvcnQiLAogICAgICAgICAgIm5hbWUiOiA gICAgIkB0eXBlIjogIkFpcnBvcnQiLAogICAgICAgICAgIm5hbWUiOiA
iSm9obiBGLiBLZW5uZWR5IEludGVybmF0aW9uYWwgQWlycG9ydCIsCiA iSm9obiBGLiBLZW5uZWR5IEludGVybmF0aW9uYWwgQWlycG9ydCIsCiA
gICAgICAgICAiaWF0YUNvZGUiOiAiSkZLIgogICAgICAgIH0sCiAgICA gICAgICAgICAiaWF0YUNvZGUiOiAiSkZLIgogICAgICAgIH0sCiAgICA
gICAgImFycml2YWxUaW1lIjogIjIwMTctMDMtMDVUMDY6MzA6MDAtMDU gICAgImFycml2YWxUaW1lIjogIjIwMTctMDMtMDVUMDY6MzA6MDAtMDU
6MDAiCiAgICAgIH0KICAgIH0KICAgIDwvc2NyaXB0Pg== 6MDAiCiAgICAgIH0KICAgIH0KICAgIDwvc2NyaXB0Pg==
]]></artwork> ]]></sourcecode>
</figure> </dd>
</t> </dl>
</list>
</t>
</section> </section>
<section anchor="parameter_derived" numbered="true" toc="default">
<section title="Derived" <name>Derived</name>
anchor="parameter_derived"> <dl newline="false" spacing="normal">
<t> <dt>Parameter Name:</dt>
<list style="hanging"> <dd>DERIVED</dd>
<t hangText="Parameter Name:"> <dt>Purpose:</dt>
DERIVED <dd>
</t> This parameter specifies that the value of the associated property
is
<t hangText="Purpose:">
To specify that the value of the associated property is
derived from some other property value or values. derived from some other property value or values.
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This parameter is defined by the following notation: This parameter is defined by the following notation:
</preamble>
<artwork name="abnf"><![CDATA[
derivedparam = "DERIVED" "=" ("TRUE" / "FALSE")
; Default is FALSE
]]></artwork>
</figure>
</t> </t>
<sourcecode type="abnf"><![CDATA[
<t hangText="Description:"> derivedparam = "DERIVED" "=" ("TRUE" / "FALSE")
This property parameter MAY be specified on any property ; Default is FALSE
]]></sourcecode>
</dd>
<dt>Description:</dt>
<dd>
<t>This property parameter <bcp14>MAY</bcp14> be specified on any
property
when the value is derived from some other property or when the value is derived from some other property or
properties. When present with a value of TRUE clients MUST NOT upd properties. When present with a value of TRUE, clients <bcp14>MUST
ate NOT</bcp14> update
the property. the property.</t>
</t> <t>As an example, if a "STYLED-DESCRIPTION" property is present wi
th
<t> FMTTYPE="application/rtf", then there may be an additional
As an example, if a STYLED-DESCRIPTION property is present with "STYLED-DESCRIPTION" property with FMTTYPE="text/html" and
FMTTYPE="application/rtf" then there may be an additional DERIVED=TRUE, as well as a value created from the rtf value.</t>
STYLED-DESCRIPTION property with FMTTYPE="text/html" and </dd>
DERIVED=TRUE and a value created from the rtf value. <dt>Example:</dt>
</t> <dd>
<sourcecode type="" ><![CDATA[
<t hangText="Example:"> STYLED-DESCRIPTION;FMTTYPE=text/html;
<figure> DERIVED=TRUE:<html>...</html>
<artwork><![CDATA[ ]]></sourcecode>
STYLED-DESCRIPTION;FMTTYPE=text/html; </dd>
DERIVED=TRUE:<html>...</html> </dl>
]]></artwork>
</figure>
</t>
</list>
</t>
</section> </section>
</section> </section>
<section anchor="new_properties" numbered="true" toc="default">
<section anchor="new_properties" <name>New Properties</name>
title="New Properties">
<t> <t>
This specification makes use of the NAME property This specification makes use of the "NAME" property,
which is defined in <xref target='RFC7986'/> which is defined in <xref target="RFC7986" format="default"/>.
</t> </t>
<section anchor="loctype" numbered="true" toc="default">
<section anchor="loctype" <name>Location Type</name>
title="Location Type"> <dl newline="false" spacing="normal">
<t> <dt>Property Name:</dt>
<list style='hanging'> <dd>LOCATION-TYPE</dd>
<t hangText="Property name:"> <dt>Purpose:</dt>
LOCATION-TYPE <dd>This property specifies the type(s) of a location.</dd>
</t> <dt>Value Type:</dt>
<dd>
<t hangText="Purpose:">
To specify the type(s) of a location.
</t>
<t hangText="Value type:">
The value type for this property is TEXT. The The value type for this property is TEXT. The
allowable values are defined below. allowable values are defined below.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
This property MAY be specified in VLOCATION components and This property <bcp14>MAY</bcp14> be specified in "VLOCATION" compo
nents and
provides a way to differentiate multiple locations. For example, provides a way to differentiate multiple locations. For example,
it allows event producers to provide location information for it allows event producers to provide location information for
the venue and the parking. the venue and the parking.
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This property is defined by the following notation: This property is defined by the following notation:
</preamble>
<artwork type="abnf">
loctype = "LOCATION-TYPE" loctypeparam ":"
text *("," text)
CRLF
loctypeparam = *(";" other-param)
</artwork>
</figure>
</t>
<t>
Multiple values may be used if the location has multiple
purposes, for example a hotel and a restaurant.
</t> </t>
<sourcecode type="abnf"><![CDATA[
loctype = "LOCATION-TYPE" loctypeparam ":"
text *("," text)
CRLF
<t> loctypeparam = *(";" other-param)
Values for this parameter are taken from the values defined in ]]></sourcecode>
<xref target='RFC4589'/> section 3. New location types SHOULD be <t>Multiple values may be used if the location has multiple
registered in the manner laid down in section 5 of that specificat purposes, for example, a hotel and a restaurant.</t>
ion. <t>Values for this parameter are taken from the values defined in
</t> <xref target="RFC4589" sectionFormat="of" section="3"/>. New locat
</list> ion
</t> types <bcp14>SHOULD</bcp14> be
registered in the manner laid down in <xref target="RFC4589"
sectionFormat="of" section="5"/>.</t>
</dd>
</dl>
</section> </section>
<section anchor="participant-type" numbered="true" toc="default">
<section anchor="participant-type" <name>Participant Type</name>
title="Participant Type"> <dl newline="false" spacing="normal">
<t> <dt>Property Name:</dt>
<list style='hanging'> <dd>PARTICIPANT-TYPE</dd>
<t hangText="Property name:"> <dt>Purpose:</dt>
PARTICIPANT-TYPE <dd>This property specifies the type of participant.</dd>
</t> <dt>Value Type:</dt>
<dd>
<t hangText="Purpose:">
To specify the type of participant.
</t>
<t hangText="Value type:">
The value type for this property is TEXT. The The value type for this property is TEXT. The
allowable values are defined below. allowable values are defined below.
</t> </dd>
<dt>Property Parameters:</dt>
<t hangText="Property Parameters:"> <dd>
Non-standard parameters can be specified on this property. Nonstandard parameters can be specified on this property.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
This property MUST be specified once within a PARTICIPANT componen This property <bcp14>MUST</bcp14> be specified once within a "PART
t. ICIPANT" component.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
This property defines the type of participation in events This property defines the type of participation in events
or tasks. Participants can be individuals or tasks. Participants can be individuals
or organizations, for example a soccer team, the spectators, or or organizations, for example, a soccer team, the spectators, or
the musicians. the musicians.
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This property is defined by the following notation: This property is defined by the following notation:
</preamble>
<artwork type="abnf">
participanttype = "PARTICIPANT-TYPE" partvalueparam ":"
partvalue CRLF
partvalue = ("ACTIVE"
/ "INACTIVE"
/ "SPONSOR"
/ "CONTACT"
/ "BOOKING-CONTACT"
/ "EMERGENCY-CONTACT"
/ "PUBLICITY-CONTACT"
/ "PLANNER-CONTACT"
/ "PERFORMER"
/ "SPEAKER"
/ iana-token) ; Other IANA-registered
; values
partvalueparam = *(";" other-param)
</artwork>
</figure>
</t> </t>
<t hangText="Example:"> <sourcecode type="abnf"><![CDATA[
<figure> participanttype = "PARTICIPANT-TYPE" partvalueparam ":"
<preamble> partvalue CRLF
The following is an example of this property:
</preamble>
<artwork type="abnf"> partvalue = ("ACTIVE"
PARTICIPANT-TYPE:SPEAKER / "INACTIVE"
</artwork> / "SPONSOR"
</figure> / "CONTACT"
</t> / "BOOKING-CONTACT"
</list> / "EMERGENCY-CONTACT"
</t> / "PUBLICITY-CONTACT"
/ "PLANNER-CONTACT"
/ "PERFORMER"
/ "SPEAKER"
/ iana-token) ; Other IANA-registered
; values
partvalueparam = *(";" other-param)
]]></sourcecode>
</dd>
<dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example of this property.
</t>
<sourcecode type="abnf"><![CDATA[
PARTICIPANT-TYPE:SPEAKER
]]></sourcecode>
</dd>
</dl>
<t> <t>
The registered values for the PARTICIPANT-TYPE property have The registered values for the "PARTICIPANT-TYPE" property have
the meanings described here: the meanings described here:
</t>
<list style='hanging'> <dl newline="false" spacing="normal">
<t hangText="ACTIVE:" > <dt>ACTIVE:</dt>
A participant taking an active role - for example a team member. <dd>A participant taking an active role -- for example, a team member.
</t> </dd>
<dt>INACTIVE:</dt>
<t hangText="INACTIVE:"> <dd>
A participant taking an inactive role - for example an audience me A participant taking an inactive role -- for example, an audience
mber. member.
</t> </dd>
<dt>SPONSOR:</dt>
<t hangText="SPONSOR:"> <dd>
A sponsor of the event. The ORDER parameter may be used with this A sponsor of the event. The "ORDER" parameter may be used with thi
s
participant type to define the relative order of multiple sponsors . participant type to define the relative order of multiple sponsors .
</t> </dd>
<t hangText="CONTACT:"> <dt>CONTACT:</dt>
Contact information for the event. The ORDER parameter may be used <dd>
with this Contact information for the event. The "ORDER" parameter may be us
ed with this
participant type to define the relative order of multiple contacts . participant type to define the relative order of multiple contacts .
</t> </dd>
<dt>BOOKING-CONTACT:</dt>
<t hangText="BOOKING-CONTACT:"> <dd>
Contact information for reservations or payment Contact information for reservations or payment.
</t> </dd>
<dt>EMERGENCY-CONTACT:</dt>
<t hangText="EMERGENCY-CONTACT:"> <dd>
Contact in case of emergency Contact in case of emergency.
</t> </dd>
<dt>PUBLICITY-CONTACT:</dt>
<t hangText="PUBLICITY-CONTACT:"> <dd>
Contact for publicity Contact for publicity.
</t> </dd>
<dt>PLANNER-CONTACT:</dt>
<t hangText="PLANNER-CONTACT:"> <dd>
Contact for the event planner or organizer Contact for the event planner or organizer.
</t> </dd>
<dt>PERFORMER:</dt>
<t hangText="PERFORMER:"> <dd>
A performer - for example the soloist or the accompanist. The A performer -- for example, the soloist or the accompanist. The
ORDER parameter may be used with this participant type to define "ORDER" parameter may be used with this participant type to define
the relative order of multiple performers. For example, ORDER=1 co uld the relative order of multiple performers. For example, ORDER=1 co uld
define the principal performer or soloist. define the principal performer or soloist.
</t> </dd>
<dt>SPEAKER:</dt>
<t hangText="SPEAKER:"> <dd>
Speaker at an event Speaker at an event.
</t> </dd>
</list> </dl>
</t>
</section> </section>
<section anchor="restype" numbered="true" toc="default">
<section anchor="restype" <name>Resource Type</name>
title="Resource Type"> <dl newline="false" spacing="normal">
<t> <dt>Property Name:</dt>
<list style='hanging'> <dd>
<t hangText="Property name:">
RESOURCE-TYPE RESOURCE-TYPE
</t> </dd>
<dt>Purpose:</dt>
<t hangText="Purpose:"> <dd>
To specify the type of resource. This property specifies the type of resource.
</t> </dd>
<dt>Value Type:</dt>
<t hangText="Value type:"> <dd>
The value type for this property is TEXT. The The value type for this property is TEXT. The
allowable values are defined below. allowable values are defined below.
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This property is defined by the following notation: This property is defined by the following notation:
</preamble>
<artwork type="abnf">
restypeprop = "RESOURCE-TYPE" restypeparam ":"
restypevalue CRLF
restypevalue = ("ROOM"
/ "PROJECTOR"
/ "REMOTE-CONFERENCE-AUDIO"
/ "REMOTE-CONFERENCE-VIDEO"
/ iana-token) ; Other IANA-registered
; values
restypeparam = *(";" other-param)
</artwork>
</figure>
</t>
<t hangText="Description:">
This property MAY be specified in VRESOURCE components and
provides a way to differentiate multiple resources.
</t>
<t>
The registered values are described below.
New resource types SHOULD be
registered in the manner laid down in this specification.
</t>
<t hangText="ROOM:" >
A room for the event/meeting.
</t>
<t hangText="PROJECTOR:">
Projection equipment.
</t> </t>
<sourcecode type="abnf"><![CDATA[
restypeprop = "RESOURCE-TYPE" restypeparam ":"
restypevalue CRLF
<t hangText="REMOTE-CONFERENCE-AUDIO:"> restypevalue = ("ROOM"
Audio remote conferencing facilities. / "PROJECTOR"
</t> / "REMOTE-CONFERENCE-AUDIO"
/ "REMOTE-CONFERENCE-VIDEO"
/ iana-token) ; Other IANA-registered
; values
<t hangText="REMOTE-CONFERENCE-VIDEO:"> restypeparam = *(";" other-param)
Video remote conferencing facilities. ]]></sourcecode>
</t> </dd>
</list> <dt>Description:</dt>
</t> <dd>
<t>This property <bcp14>MAY</bcp14> be specified in "VRESOURCE" co
mponents and
provides a way to differentiate multiple resources.</t>
<t>The registered values are described below.
New resource types <bcp14>SHOULD</bcp14> be
registered in the manner laid down in this specification.</t>
</dd>
<dt>ROOM:</dt>
<dd>A room for the event/meeting.</dd>
<dt>PROJECTOR:</dt>
<dd>Projection equipment.</dd>
<dt>REMOTE-CONFERENCE-AUDIO:</dt>
<dd>Audio remote conferencing facilities.</dd>
<dt>REMOTE-CONFERENCE-VIDEO:</dt>
<dd>Video remote conferencing facilities.</dd>
</dl>
</section> </section>
<section anchor="calendar-address" numbered="true" toc="default">
<section anchor="calendar-address" <name>Calendar Address</name>
title="Calendar Address"> <dl newline="false" spacing="normal">
<t> <dt>Property Name:</dt>
<list style='hanging'> <dd>
<t hangText="Property name:">
CALENDAR-ADDRESS CALENDAR-ADDRESS
</t> </dd>
<dt>Purpose:</dt>
<t hangText="Purpose:"> <dd>
To specify the calendar address for a participant. This property specifies the calendar address for a participant.
</t> </dd>
<dt>Value Type:</dt>
<t hangText="Value type:"> <dd>
CAL-ADDRESS CAL-ADDRESS
</t> </dd>
<dt>Property Parameters:</dt>
<t hangText="Property Parameters:"> <dd>
IANA-registered, or non-standard property parameters can be IANA-registered or nonstandard property parameters can be
specified on this property. specified on this property.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
This property MAY be specified once within a PARTICIPANT component This property <bcp14>MAY</bcp14> be specified once within a "PARTI
. CIPANT" component.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
This property provides a calendar user address for the This property provides a calendar user address for the
participant. If there is an ATTENDEE property with the same participant. If there is an "ATTENDEE" property with the same
value then the participant is schedulable. value, then the participant is schedulable.
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This property is defined by the following notation: This property is defined by the following notation:
</preamble>
<artwork type="abnf">
calendaraddress = "CALENDAR-ADDRESS" caladdressparam ":"
cal-address CRLF
caladdressparam = *(";" other-param)
</artwork>
</figure>
</t> </t>
</list> <sourcecode type="abnf"><![CDATA[
</t> calendaraddress = "CALENDAR-ADDRESS" caladdressparam ":"
</section> cal-address CRLF
<section anchor="styled-description" caladdressparam = *(";" other-param)
title="Styled-Description"> ]]></sourcecode>
<t> </dd>
<list style='hanging'> </dl>
<t hangText="Property name:"> </section>
<section anchor="styled-description" numbered="true" toc="default">
<name>Styled-Description</name>
<dl newline="false" spacing="normal">
<dt>Property Name:</dt>
<dd>
STYLED-DESCRIPTION STYLED-DESCRIPTION
</t> </dd>
<dt>Purpose:</dt>
<t hangText="Purpose:"> <dd>
This property provides for one or more rich-text descriptions to This property provides for one or more rich-text descriptions to
replace that provided by the DESCRIPTION property. replace that provided by the "DESCRIPTION" property.
</t> </dd>
<dt>Value Type:</dt>
<t hangText="Value type:"> <dd>
There is no default value type for this property. The value type There is no default value type for this property. The value type
can be set to URI or TEXT. Other text-based value types can be set to URI or TEXT. Other text-based value types
can be used when defined in the future. Clients MUST ignore any pr operties can be used when defined in the future. Clients <bcp14>MUST</bcp14 > ignore any properties
with value types they do not understand. with value types they do not understand.
</t> </dd>
<dt>Property Parameters:</dt>
<t hangText="Property Parameters:"> <dd>
IANA-registered, non-standard, id, alternate text IANA-registered, nonstandard, id, alternate text
representation, format type, derived and language property representation, format type, derived, and language property
parameters can be specified on this property. parameters can be specified on this property.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
The property can be specified multiple times in the "VEVENT", "VTO <t>The property can be specified multiple times in the "VEVENT", "
DO", VTODO",
"VJOURNAL", "VFREEBUSY", "PARTICIPANT", or "VALARM" calendar compo "VJOURNAL", "VFREEBUSY", "PARTICIPANT", or "VALARM" calendar compo
nents. nents.</t>
</t> <t>If it does appear more than once, there <bcp14>MUST</bcp14> be
exactly one
<t> instance of the property with no "DERIVED" parameter or DERIVED=FA
If it does appear more than once there MUST be exactly one LSE.
instance of the property with no DERIVED parameter or DERIVED=FALS All others <bcp14>MUST</bcp14> have DERIVED=TRUE.</t>
E. <t>Additionally, if there is one or more "STYLED-DESCRIPTION"
All others MUST have DERIVED=TRUE. property, then the "DESCRIPTION" property should either be absent
</t> or have the parameter DERIVED=TRUE.</t>
</dd>
<t> <dt>Description:</dt>
Additionally, if there is one or more STYLED-DESCRIPTION <dd>
property then the DESCRIPTION property should be either absent <t>This property supports rich-text descriptions, for example, HTM
or have the parameter DERIVED=TRUE. L.
</t> Event publishers typically wish to provide more and better-formatt
ed
<t hangText="Description:"> information about the event.</t>
This property supports rich-text descriptions, for example HTML. <t>This property is used in the "VEVENT" and "VTODO" components to
Event publishers typically wish to provide more and better
formatted information about the event.
</t>
<t>
This property is used in the "VEVENT" and "VTODO" to
capture lengthy textual descriptions associated with the activity. capture lengthy textual descriptions associated with the activity.
This property is used in the "VJOURNAL" calendar component to This property is used in the "VJOURNAL" calendar component to
capture one or more textual journal entries. capture one or more textual journal entries.
This property is used in the "VALARM" calendar component to This property is used in the "VALARM" calendar component to
capture the display text for a DISPLAY category of alarm, and to capture the display text for a DISPLAY category of alarm and to
capture the body text for an EMAIL category of alarm. capture the body text for an EMAIL category of alarm.
In the PARTICIPANT component it provides a detailed description In the "PARTICIPANT" component, it provides a detailed description
of the participant. of the participant.</t>
</t> <t>VALUE=TEXT is used to provide rich text inline as the property
value.</t>
<t> <t>VALUE=URI is used to provide a link to rich-text content, which
VALUE=TEXT is used to provide rich-text inline as the property is
value. expected to be displayed inline as part of the event.</t>
</t> <t>In either case, the "DESCRIPTION" property should be absent or
contain a plain-text rendering of the styled text.</t>
<t> <t>Applications <bcp14>MAY</bcp14> attempt to guess the media type
VALUE=URI is used to provide a link to rich-text content which is of the
expected to be displayed inline as part of the event.
</t>
<t>
In either case the DESCRIPTION property should be absent or
contain a plain text rendering of the styled text.
</t>
<t>
Applications MAY attempt to guess the media type of the
resource via inspection of its content if and only if the media resource via inspection of its content if and only if the media
type of the resource is not given by the "FMTTYPE" parameter. If type of the resource is not given by the "FMTTYPE" parameter. If
the media type remains unknown, calendar applications SHOULD treat the media type remains unknown, calendar applications <bcp14>SHOUL D</bcp14> treat
it as type "text/html" and process the content as defined in it as type "text/html" and process the content as defined in
<xref target='W3C.REC-html51-20171003'/> <xref target="W3C.REC-html51-20171003" format="default"/>.</t>
</t> <t>Multiple "STYLED-DESCRIPTION" properties may be used to provide
different formats or different language variants. However,
<t> all but one <bcp14>MUST</bcp14> have DERIVED=TRUE.</t>
Multiple STYLED-DESCRIPTION properties may be used to provide </dd>
different formats or different language variants. However <dt>Format Definition:</dt>
all but one MUST have DERIVED=TRUE. <dd>
</t> <t keepWithNext="true">
<t hangText="Format Definition:">
<figure>
<preamble>
This property is defined by the following notation: This property is defined by the following notation:
</preamble>
<artwork>
styleddescription = "STYLED-DESCRIPTION" styleddescparam ":"
styleddescval CRLF
styleddescparam = ; the elements herein may appear in any order,
; and the order is not significant.
(";" "VALUE" "=" ("URI" / "TEXT"))
[";" altrepparam]
[";" languageparam]
[";" fmttypeparam]
[";" derivedparam]
*(";" other-param)
styleddescval = ( uri / text )
;Value MUST match value type
</artwork>
</figure>
</t> </t>
<sourcecode type="abnf"><![CDATA[
styleddescription = "STYLED-DESCRIPTION" styleddescparam ":"
styleddescval CRLF
<t hangText="Example:"> styleddescparam = *(
<figure> ; The following is REQUIRED
<preamble> ; but MUST NOT occur more than once.
The following is an example of this property. It points to an ;
html description. (";" "VALUE" "=" ("URI" / "TEXT")) /
</preamble> ;
; The following are OPTIONAL
; but MUST NOT occur more than once.
;
(";" altrepparam) / (";" languageparam) /
(";" fmttypeparam) / (";" derivedparam) /
;
; The following is OPTIONAL
; and MAY occur more than once.
;
(";" other-param)
)
<artwork> styleddescval = ( uri / text )
STYLED-DESCRIPTION;VALUE=URI:http://example.org/desc001.html ;Value MUST match value type
</artwork> ]]></sourcecode>
</figure> </dd>
<dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example of this property. It points to an
HTML description.
</t> </t>
</list> <sourcecode type=""><![CDATA[
</t> STYLED-DESCRIPTION;VALUE=URI:http://example.org/desc001.html
]]></sourcecode>
</dd>
</dl>
</section> </section>
<section anchor="structured-data" numbered="true" toc="default">
<section title="Structured-Data" anchor="structured-data"> <name>Structured-Data</name>
<t> <dl newline="false" spacing="normal">
<list style="hanging"> <dt>Property Name:</dt>
<t hangText="Property Name:"> <dd>
STRUCTURED-DATA STRUCTURED-DATA
</t> </dd>
<dt>Purpose:</dt>
<t hangText="Purpose:"> <dd>
This property specifies ancillary data associated with This property specifies ancillary data associated with
the calendar component. the calendar component.
</t> </dd>
<t hangText="Value Type:"> <dt>Value Type:</dt>
<dd>
There is no default value type for this property. The value type There is no default value type for this property. The value type
can be set to TEXT, BINARY or URI can be set to TEXT, BINARY, or URI.
</t> </dd>
<dt>Property Parameters:</dt>
<t hangText="Property Parameters:"> <dd>
IANA-registered, non-standard, inline encoding and value data type IANA-registered, nonstandard, inline encoding, and value data type
property parameters can be specified on this property. property parameters can be specified on this property.
The format type and schema parameters can be specified The format type and schema parameters can be specified
on this property and MUST be present for text or inline on this property and <bcp14>MUST</bcp14> be present for text or in line
binary encoded content information. binary encoded content information.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
This property can be specified multiple times in an This property can be specified multiple times in an
iCalendar object. Typically it would be used in "VEVENT", iCalendar object. Typically, it would be used in the "VEVENT",
"VTODO" or "VJOURNAL" calendar components. "VTODO", or "VJOURNAL" calendar components.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
The existing <t>The existing
properties in iCalendar cover key elements of events and tasks properties in iCalendar cover key elements of events and tasks,
such as start time, end time, location, summary, etc. However, such as start time, end time, location, summary, etc. However,
different types of events often have other specific "fields" different types of events often have other specific "fields"
that it is useful to include in the calendar data. For example, that are useful to include in the calendar data. For example,
an event representing an airline flight could include the airline, an event representing an airline flight could include the airline,
flight number, departure and arrival airport codes, check-in flight number, departure and arrival airport codes, check-in
and gate-closing times etc. As another example, a sporting event and gate-closing times, etc. As another example, a sporting event
might contain information about the type of sport, the home and might contain information about the type of sport, the home and
away teams, the league the teams are in, information about away teams, the league the teams are in, information about
nearby parking, etc. nearby parking, etc.</t>
</t> <t>This property is used to specify ancillary data in some
structured format, either directly (inline) as a "TEXT" or
<t> "BINARY" value or as a link via a "URI" value.</t>
This property is used to specify ancillary data in some <t>Rather than define new iCalendar properties
structured format either directly (inline) as a "TEXT" or
"BINARY" value or as a link via a "URI" value.
</t>
<t>
Rather than define new iCalendar properties
for the variety of event types that might occur, it would be for the variety of event types that might occur, it would be
better to leverage existing schemas for such data. better to leverage existing schemas for such data.
For example, schemas available at https://schema.org include For example, schemas available at <eref brackets="angle" target="h ttps://schema.org"/> include
different event types. By using standard schemas, interoperability different event types. By using standard schemas, interoperability
can be improved between calendar clients and non-calendaring can be improved between calendar clients and noncalendaring
systems that wish to generate or process the data. systems that wish to generate or process the data.</t>
</t> <t>This property allows the direct inclusion of ancillary data who
se
<t>
This property allows the direct inclusion of ancillary data whose
schema is defined elsewhere. This property also includes parameter s schema is defined elsewhere. This property also includes parameter s
to clearly identify the type of the schema being used so that to clearly identify the type of the schema being used so that
clients can quickly and easily spot what is relevant within the clients can quickly and easily spot what is relevant within the
calendar data and present that to users or process it within calendar data and present that to users or process it within
the calendaring system. the calendaring system.</t>
</t> <t>iCalendar does support an "ATTACH" property, which can be used
<t>
iCalendar does support an "ATTACH" property which can be used
to include documents or links to documents within the calendar to include documents or links to documents within the calendar
data. However, that property does not allow data to be included data. However, that property does not allow data to be included
as a "TEXT" value (a feature that "STRUCTURED-DATA" does allow), as a "TEXT" value (a feature that "STRUCTURED-DATA" does allow),
plus attachments are often treated as "opaque" data to be plus attachments are often treated as "opaque" data to be
processed by some other system rather than the calendar client. processed by some other system rather than the calendar client.
Thus the existing "ATTACH" property is not sufficient to cover Thus, the existing "ATTACH" property is not sufficient to cover
the specific needs of inclusion of schema data. Extending the the specific needs of inclusion of schema data. Extending the
"ATTACH" property to support a new value type would likely cause "ATTACH" property to support a new value type would likely cause
interoperability problems. Additionally some implementations interoperability problems. Additionally, some implementations
manage attachments by stripping them out and replacing with a manage attachments by stripping them out and replacing with a
link to the resource. Thus a new property to support link to the resource. Thus, a new property to support
inclusion of schema data is warranted. inclusion of schema data is warranted.</t>
</t> </dd>
<dt>Format Definition:</dt>
<t hangText="Format Definition:"> <dd>
<figure> <t keepWithNext="true">
<preamble>
This property is defined by the following notation: This property is defined by the following notation:
</preamble>
<artwork name="abnf"><![CDATA[
sdataprop = "STRUCTURED-DATA" sdataparam ":"
sdataval CRLF
sdataparam = ; all parameter elements may appear in any order,
; and the order is not significant.
(sdataparamtext / sdataparambin / sdataparamuri)
*(";" other-param)
sdataparamtext = ";VALUE=TEXT"
";" fmttypeparam
";" schemaparam
sdataparambin = ";VALUE=BINARY"
";ENCODING=BASE64"
";" fmttypeparam
";" schemaparam
sdataparamuri = ";VALUE=URI"
[";" fmttypeparam]
[";" schemaparam]
sdataval = ( binary / text /uri )
; value MUST match value type
]]></artwork>
</figure>
</t> </t>
<sourcecode name="abnf"><![CDATA[
sdataprop = "STRUCTURED-DATA" sdataparam
(
";" "VALUE" "=" "TEXT"
":" text
) /
(
";" "ENCODING" "=" "BASE64"
";" "VALUE" "=" "BINARY"
";" binary
) /
(
";" "VALUE" "=" "URI"
":" uri
)
CRLF
<t hangText="Example:"> sdataparam = *(
The following is an example of this property: ;
<figure> ; The following is OPTIONAL for a URI value,
<artwork><![CDATA[ ; REQUIRED for a TEXT or BINARY value,
STRUCTURED-DATA;FMTTYPE=application/ld+json; ; and MUST NOT occur more than once.
SCHEMA="https://schema.org/SportsEvent"; ;
VALUE=TEXT:{\n (";" fmttypeparam) /
"@context": "http://schema.org"\,\n (";" schemaparam) /
"@type": "SportsEvent"\,\n ;
"homeTeam": "Pittsburgh Pirates"\,\n ; The following is OPTIONAL
"awayTeam": "San Francisco Giants"\n ; and MAY occur more than once.
}\n ;
]]></artwork> (";" other-param)
</figure> ;
)
]]></sourcecode>
</dd>
<dt>Example:</dt>
<dd>
<t>
The following is an example of this property.
</t> </t>
</list> <sourcecode type=""><![CDATA[
</t> STRUCTURED-DATA;FMTTYPE=application/ld+json;
SCHEMA="https://schema.org/SportsEvent";
VALUE=TEXT:{\n
"@context": "http://schema.org"\,\n
"@type": "SportsEvent"\,\n
"homeTeam": "Pittsburgh Pirates"\,\n
"awayTeam": "San Francisco Giants"\n
}\n
]]></sourcecode>
</dd>
</dl>
</section> </section>
</section> </section>
<section anchor="new_components" numbered="true" toc="default">
<section anchor="new_components" <name>New Components</name>
title="New Components"> <section anchor="participant" numbered="true" toc="default">
<section anchor="participant" <name>Participant</name>
title="Participant"> <dl newline="false" spacing="normal">
<t> <dt>Component name:</dt>
<list style='hanging'> <dd>PARTICIPANT</dd>
<t hangText="Component name:"> <dt>Purpose:</dt>
PARTICIPANT <dd>
</t>
<t hangText="Purpose:">
This component provides information about a participant This component provides information about a participant
in an event or task. in an event or task.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
This component can be specified multiple times in a This component can be specified multiple times in a
"VEVENT", "VTODO", "VJOURNAL" or "VFREEBUSY" calendar component. "VEVENT", "VTODO", "VJOURNAL", or "VFREEBUSY" calendar component.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
This component provides information about a participant <t>This component provides information about a participant
in a calendar component. A participant may be an attendee in a calendar component. A participant may be an attendee
in a scheduling sense and the ATTENDEE property may be in a scheduling sense, and the "ATTENDEE" property may be
specified in addition. specified in addition.
Participants can be individuals Participants can be individuals
or organizations, for example a soccer team, the spectators or or organizations, for example, a soccer team, the spectators, or
the musicians. the musicians.</t>
</t> <t>"STRUCTURED-DATA" properties, if present, may refer to
definitions of the participant -- such as a vCard.</t>
<t> <t>The "CALENDAR-ADDRESS" property, if present, will provide a
STRUCTURED-DATA properties if present may refer to cal-address. If an "ATTENDEE" property has the same value, the
definitions of the participant - such as a vCard. participant is considered schedulable. The "PARTICIPANT"
</t> component can be used to contain additional metadata
related to the attendee.</t>
<t> </dd>
The CALENDAR-ADDRESS property if present will provide a <dt>Format Definition:</dt>
cal-address. If an ATTENDEE property has the same value the <dd>
participant is considered schedulable. The PARTICIPANT <t keepWithNext="true">
component can be used to contain additional meta-data
related to the attendee.
</t>
<t hangText="Format Definition:">
<figure>
<preamble>
This component is defined by the following notation: This component is defined by the following notation:
</preamble>
<artwork>
participantc = "BEGIN" ":" "PARTICIPANT" CRLF
partprop *locationc *resourcec
"END" ":" "PARTICIPANT" CRLF
partprop = ; the elements herein may appear in any order,
; and the order is not significant.
uid
participanttype
[calendaraddress]
[created]
[description]
[dtstamp]
[geo]
[last-mod]
[priority]
[seq]
[status]
[summary]
[url]
*attach
*categories
*comment
*contact
*location
*rstatus
*related
*resources
*strucloc
*strucres
*styleddescription
*sdataprop
*iana-prop
</artwork>
</figure>
</t>
<t hangText="Note:">
When the PRIORITY is supplied it defines the ordering of
PARTICIPANT components with the same value for the
PARTICIPANT-TYPE property.
</t> </t>
<sourcecode type="abnf"><![CDATA[
participantc = "BEGIN" ":" "PARTICIPANT" CRLF
partprop *locationc *resourcec
"END" ":" "PARTICIPANT" CRLF
<t hangText="Privacy Issues:"> partprop = *(
When a LOCATION is supplied it provides information about ;
; The following are REQUIRED
; but MUST NOT occur more than once.
;
participanttype / uid /
;
; The following are OPTIONAL
; but MUST NOT occur more than once.
;
calendaraddress / created / description / dtstamp /
geo / last-mod / priority / seq /
status / summary / url /
;
; The following are OPTIONAL
; and MAY occur more than once.
;
attach / categories / comment
contact / location / rstatus / related /
resources / strucloc / strucres /
styleddescription / sdataprop / iana-prop
;
)
]]></sourcecode>
</dd>
<dt>Note:</dt>
<dd>
When the "PRIORITY" property is supplied, it defines the ordering
of
"PARTICIPANT" components with the same value for the
"PARTICIPANT-TYPE" property.
</dd>
<dt>Privacy Issues:</dt>
<dd>
When a "LOCATION" property is supplied, it provides information ab
out
the location of a participant at a given time or times. the location of a participant at a given time or times.
This may represent an unacceptable privacy risk for some This may represent an unacceptable privacy risk for some
participants. User agents MUST NOT broadcast this information participants. User agents <bcp14>MUST NOT</bcp14> broadcast this i
without the participant's express permission. For further nformation
comments see <xref target="privacy" /> without the express permission of the participants whose location
</t> would be
exposed. For further
<t hangText="Example:"> comments, see <xref target="privacy" format="default"/>.
<figure> </dd>
<preamble> <dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example of this component. It The following is an example of this component. It
contains a STRUCTURED-DATA property which points to a contains a "STRUCTURED-DATA" property that points to a
vCard providing information about the event participant. vCard providing information about the event participant.
</preamble>
<artwork>
BEGIN:PARTICIPANT
UID: em9lQGZvb2GFtcGxlLmNvbQ
PARTICIPANT-TYPE:PERFORMER
STRUCTURED-DATA;VALUE=URI:
http://dir.example.com/vcard/aviolinist.vcf
END:PARTICIPANT
</artwork>
</figure>
</t> </t>
<sourcecode type=""><![CDATA[
<t hangText="Example:"> BEGIN:PARTICIPANT
<figure> UID: em9lQGZvb2GFtcGxlLmNvbQ
<preamble> PARTICIPANT-TYPE:PERFORMER
STRUCTURED-DATA;VALUE=URI:
http://dir.example.com/vcard/aviolinist.vcf
END:PARTICIPANT
]]></sourcecode>
</dd>
<dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example for the primary contact. The following is an example for the primary contact.
</preamble>
<artwork>
BEGIN:PARTICIPANT
UID: em9lQGZvb2GFtcGxlLmNvbQ
STRUCTURED-DATA;VALUE=URI;
http://dir.example.com/vcard/contacts/contact1.vcf
PARTICIPANT-TYPE:CONTACT
DESCRIPTION:A contact
END:PARTICIPANT
</artwork>
</figure>
</t> </t>
<sourcecode type=""><![CDATA[
<t hangText="Example:"> BEGIN:PARTICIPANT
<figure> UID: em9lQGZvb2GFtcGxlLmNvbQ
<preamble> STRUCTURED-DATA;VALUE=URI;
http://dir.example.com/vcard/contacts/contact1.vcf
PARTICIPANT-TYPE:CONTACT
DESCRIPTION:A contact
END:PARTICIPANT
]]></sourcecode>
</dd>
<dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example for a participant with The following is an example for a participant with
contact and location. contact and location.
</preamble>
<artwork>
BEGIN:PARTICIPANT
UID: em9lQGZvb2GFtcGxlLmNdrt
STRUCTURED-DATA;VALUE=URI;
http://dir.example.com/vcard/contacts/my-card.vcf
PARTICIPANT-TYPE:SPEAKER
DESCRIPTION:A participant
BEGIN:VLOCATION
UID:123456-abcdef-98765432
NAME:My home location
STRUCTURED-DATA;VALUE=URI:
http://dir.example.com/addresses/my-home.vcf
END:VLOCATION
END:PARTICIPANT
</artwork>
</figure>
</t> </t>
</list> <sourcecode type=""><![CDATA[
</t> BEGIN:PARTICIPANT
UID: em9lQGZvb2GFtcGxlLmNdrt
<section anchor="schedulable-participant" STRUCTURED-DATA;VALUE=URI;
title="Schedulable Participant"> http://dir.example.com/vcard/contacts/my-card.vcf
PARTICIPANT-TYPE:SPEAKER
DESCRIPTION:A participant
BEGIN:VLOCATION
UID:123456-abcdef-98765432
NAME:My home location
STRUCTURED-DATA;VALUE=URI:
http://dir.example.com/addresses/my-home.vcf
END:VLOCATION
END:PARTICIPANT
]]></sourcecode>
</dd>
</dl>
<section anchor="schedulable-participant" numbered="true" toc="default">
<name>Schedulable Participant</name>
<t> <t>
A PARTICIPANT component may represent someone or something that A "PARTICIPANT" component may represent someone or something that
needs to be scheduled as defined for ATTENDEE in <xref target="RFC55 needs to be scheduled, as defined for ATTENDEE in <xref target="RFC5
45" /> 545" format="default"/>
and <xref target="RFC5546" />. The PARTICIPANT component may and <xref target="RFC5546" format="default"/>. The "PARTICIPANT" com
ponent may
also represent someone or something that is NOT to receive also represent someone or something that is NOT to receive
scheduling messages. scheduling messages.
</t> </t>
<t> <t>
For backwards compatibility wuth existing clients and servers For backwards compatibility with existing clients and servers
when used to schedule events and tasks when used to schedule events and tasks,
the ATTENDEE property MUST be used to specify the sheduling the "ATTENDEE" property <bcp14>MUST</bcp14> be used to specify the s
cheduling
parameters as defined for that property. parameters as defined for that property.
</t> </t>
<t> <t>
For other, future uses the CALENDAR-ADDRESS property MUST be used For other, future uses, the "CALENDAR-ADDRESS" property <bcp14>MUST< /bcp14> be used
to specify those parameters. to specify those parameters.
</t> </t>
<t> <t>
A PARTICIPANT component is defined to be schedulable if A "PARTICIPANT" component is defined to be schedulable if:
<list style='symbols'>
<t>
It contains a CALENDAR-ADDRESS property
</t>
<t>
That property value is the same as the value for an ATTENDEE pro
perty.
</t>
</list>
</t> </t>
<ul spacing="normal">
<li>it contains a "CALENDAR-ADDRESS" property and</li>
<li>that property value is the same as the value for an "ATTENDEE" p
roperty.</li>
</ul>
<t> <t>
If both of these conditions apply then the participant defined If both of these conditions apply, then the participant defined
by the value of the URL property will take part in scheduling by the value of the URL property will take part in scheduling
operations as defined in <xref target="RFC5546" />. operations, as defined in <xref target="RFC5546" format="default"/>.
</t> </t>
<t> <t>
An appropriate use for the PARTICIPANT component in scheduling An appropriate use for the "PARTICIPANT" component in scheduling
would be to store SEQUENCE and DTSTAMP properties associated with would be to store "SEQUENCE" and "DTSTAMP" properties associated wit
replies from each ATTENDEE. A LOCATION property within the h
PARTICIPANT component might allow better selection of meeting times replies from each "ATTENDEE" property. A "LOCATION" property within
when participants are in different timezones. the
"PARTICIPANT" component might allow better selection of meeting time
s
when participants are in different time zones.
</t> </t>
</section> </section>
</section> </section>
<section anchor="vlocation" numbered="true" toc="default">
<section anchor="vlocation" <name>Location</name>
title="Location"> <dl newline="false" spacing="normal">
<t> <dt>Component name:</dt>
<list style='hanging'> <dd>
<t hangText="Component name:">
VLOCATION VLOCATION
</t> </dd>
<dt>Purpose:</dt>
<t hangText="Purpose:"> <dd>
This component provides rich information This component provides rich information
about the location of an event using the structured data about the location of an event using the structured data
property or optionally a plain text typed value. property or, optionally, a plain-text typed value.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
This component can be specified multiple times in a This component can be specified multiple times in a
"VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY" or "VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", or
"PARTICIPANT" calendar component. "PARTICIPANT" calendar component.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
There may be a number of locations associated with an event. <t>There may be a number of locations associated with an event.
This component provides detailed information about a location. This component provides detailed information about a location.</t>
</t> <t>When used in a component, the value of this property provides
information about the event venue or of related services, such as
<t> parking, dining, stations, etc.</t>
When used in a component the value of this property provides <t>"STRUCTURED-DATA" properties, if present, may refer to
information about the event venue or of related services such as representations of the location -- such as a vCard.</t>
parking, dining, stations etc.. </dd>
</t> <dt>Format Definition:</dt>
<dd>
<t> <t keepWithNext="true">
STRUCTURED-DATA properties if present may refer to
representations of the location - such as a vCard.
</t>
<t hangText="Format Definition:">
<figure>
<preamble>
This component is defined by the following notation: This component is defined by the following notation:
</preamble>
<artwork>
locationc = "BEGIN" ":" "VLOCATION" CRLF
locprop
"END" ":" "VLOCATION" CRLF
locprop = ; the elements herein may appear in any order,
; and the order is not significant.
uid
[name]
[description]
[geo]
[loctype]
*sdataprop
*iana-prop
</artwork>
</figure>
</t> </t>
<t> <sourcecode type="abnf"><![CDATA[
The NAME property is defined in <xref target='RFC7986'/> locationc = "BEGIN" ":" "VLOCATION" CRLF
</t> locprop
"END" ":" "VLOCATION" CRLF
<t hangText="Example:"> locprop = *(
<figure> ;
<preamble> ; The following are REQUIRED
; but MUST NOT occur more than once.
;
uid /
;
; The following are OPTIONAL
; but MUST NOT occur more than once.
;
description / geo / loctype / name
;
; The following are OPTIONAL
; and MAY occur more than once.
;
sdataprop / iana-prop
)
]]></sourcecode>
<t>The "NAME" property is defined in <xref target="RFC7986" format
="default"/>.</t>
</dd>
<dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example of this component. It points to a The following is an example of this component. It points to a
venue. venue.
</preamble>
<artwork>
BEGIN:VLOCATION
UID:123456-abcdef-98765432
NAME:The venue
STRUCTURED-DATA;VALUE=URI:
http://dir.example.com/venues/big-hall.vcf
END:VLOCATION
</artwork>
</figure>
</t> </t>
</list> <sourcecode type=""><![CDATA[
</t> BEGIN:VLOCATION
UID:123456-abcdef-98765432
NAME:The venue
STRUCTURED-DATA;VALUE=URI:
http://dir.example.com/venues/big-hall.vcf
END:VLOCATION
]]></sourcecode>
</dd>
</dl>
</section> </section>
<section anchor="vresource" numbered="true" toc="default">
<section anchor="vresource" <name>Resource</name>
title="Resource"> <dl newline="false" spacing="normal">
<t> <dt>Component name:</dt>
<list style='hanging'> <dd>
<t hangText="Component name:">
VRESOURCE VRESOURCE
</t> </dd>
<dt>Purpose:</dt>
<t hangText="Purpose:"> <dd>
This component provides a typed reference to external information This component provides a typed reference to external information
about a resource or optionally a plain text typed value. about a resource or, optionally, a plain-text typed value.
Typically a resource is anything that Typically, a resource is anything that
might be required or used by a calendar entity and possibly has a might be required or used by a calendar entity and possibly has a
directory entry. directory entry.
</t> </dd>
<dt>Conformance:</dt>
<t hangText="Conformance:"> <dd>
This component can be specified multiple times in a This component can be specified multiple times in a
"VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY" or "VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", or
"PARTICIPANT" calendar component. "PARTICIPANT" calendar component.
</t> </dd>
<dt>Description:</dt>
<t hangText="Description:"> <dd>
When used in a component this component provides <t>When used in a component, this component provides
information about resources used for the event such as information about resources used for the event, such as
rooms, projectors, conferencing capabilities. rooms, projectors, and conferencing capabilities.</t>
</t> <t>The RESOURCE-TYPE
<t>
The RESOURCE-TYPE
value registry provides a place in which resource types value registry provides a place in which resource types
may be registered. may be registered.</t>
</t> <t>"STRUCTURED-DATA" properties, if present, may refer to
representations of the resource -- such as a vCard.</t>
<t> </dd>
STRUCTURED-DATA properties if present may refer to <dt>Format Definition:</dt>
representations of the resource - such as a vCard. <dd>
</t> <t keepWithNext="true">
<t hangText="Format Definition:">
<figure>
<preamble>
This component is defined by the following notation: This component is defined by the following notation:
</preamble>
<artwork>
resourcec = "BEGIN" ":" "VRESOURCE" CRLF
resprop
"END" ":" "VRESOURCE" CRLF
resprop = ; the elements herein may appear in any order,
; and the order is not significant.
uid
[name]
[description]
[geo]
[restype]
*sdataprop
*iana-prop
</artwork>
</figure>
</t>
<t>
The NAME property is defined in <xref target='RFC7986'/>
</t> </t>
<sourcecode type="abnf"><![CDATA[
resourcec = "BEGIN" ":" "VRESOURCE" CRLF
resprop
"END" ":" "VRESOURCE" CRLF
<t hangText="Example:"> resprop = *(
<figure> ;
<preamble> ; The following are REQUIRED
; but MUST NOT occur more than once.
;
uid /
;
; The following are OPTIONAL
; but MUST NOT occur more than once.
;
description / geo / name / restype /
;
; The following are OPTIONAL
; and MAY occur more than once.
;
sdataprop / iana-prop
)
]]></sourcecode>
<t>The "NAME" property is defined in <xref target="RFC7986" format
="default"/>.</t>
</dd>
<dt>Example:</dt>
<dd>
<t keepWithNext="true">
The following is an example of this component. It refers to a The following is an example of this component. It refers to a
projector. projector.
</preamble>
<artwork>
BEGIN:VRESOURCE
UID:456789-abcdef-98765432
NAME:The projector
RESOURCE-TYPE:projector
STRUCTURED-DATA;VALUE=URI:http://dir.example.com/projectors/3d.vcf
END:VRESOURCE
</artwork>
</figure>
</t> </t>
</list> <sourcecode type=""><![CDATA[
</t> BEGIN:VRESOURCE
UID:456789-abcdef-98765432
NAME:The projector
RESOURCE-TYPE:projector
STRUCTURED-DATA;VALUE=URI:http://dir.example.com/projectors/3d.vcf
END:VRESOURCE
]]></sourcecode>
</dd>
</dl>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title='Extended examples'> <name>Extended Examples</name>
<t> <t>
The following are some examples of the use of the properties defined in The following are some examples of the use of the properties defined in
this specification. They include additional properties defined in this specification. They include additional properties defined in
<xref target='RFC7986'/> which includes IMAGE. <xref target="RFC7986" format="default"/>, which includes "IMAGE".
</t> </t>
<section numbered="true" toc="default">
<section title='Example 1'> <name>Example 1</name>
<figure> <t keepWithNext="true">
<preamble> The following is an example of a "VEVENT" describing a concert.
The following is an example of a VEVENT describing a concert.
It includes location It includes location
information for the venue itself as well as references to parking an d information for the venue itself, as well as references to parking a nd
restaurants. restaurants.
</preamble> </t>
<sourcecode type=""><![CDATA[
<artwork>
BEGIN:VEVENT BEGIN:VEVENT
CREATED:20200215T145739Z CREATED:20200215T145739Z
DESCRIPTION: Piano Sonata No 3\n DESCRIPTION: Piano Sonata No 3\n
Piano Sonata No 30 Piano Sonata No 30
DTSTAMP:20200215T145739Z DTSTAMP:20200215T145739Z
DTSTART;TZID=America/New_York:20200315T150000Z DTSTART;TZID=America/New_York:20200315T150000Z
DTEND;TZID=America/New_York:20200315T163000Z DTEND;TZID=America/New_York:20200315T163000Z
LAST-MODIFIED:20200216T145739Z LAST-MODIFIED:20200216T145739Z
SUMMARY:Beethoven Piano Sonatas SUMMARY:Beethoven Piano Sonatas
UID:123456 UID:123456
skipping to change at line 1561 skipping to change at line 1331
UID:123456-abcdef-98765432 UID:123456-abcdef-98765432
NAME:The venue NAME:The venue
STRUCTURED-DATA;VALUE=URI:http://dir.example.com/venues/big-hall.vcf STRUCTURED-DATA;VALUE=URI:http://dir.example.com/venues/big-hall.vcf
END:VLOCATION END:VLOCATION
BEGIN:VLOCATION BEGIN:VLOCATION
UID:123456-abcdef-87654321 UID:123456-abcdef-87654321
NAME:Parking for the venue NAME:Parking for the venue
STRUCTURED-DATA;VALUE=URI:http://dir.example.com/venues/parking.vcf STRUCTURED-DATA;VALUE=URI:http://dir.example.com/venues/parking.vcf
END:VLOCATION END:VLOCATION
END:VEVENT END:VEVENT
]]></sourcecode>
</artwork>
</figure>
</section> </section>
<section numbered="true" toc="default">
<section title='Example 2'> <name>Example 2</name>
<figure> <t keepWithNext="true">
<preamble> The following is an example of a "VEVENT" describing a meeting.
The following is an example of a VEVENT describing a meeting.
One of the attendees is a remote participant. One of the attendees is a remote participant.
</preamble> </t>
<sourcecode type=""><![CDATA[
<artwork>
BEGIN:VEVENT BEGIN:VEVENT
CREATED:20200215T145739Z CREATED:20200215T145739Z
DTSTAMP:20200215T145739Z DTSTAMP:20200215T145739Z
DTSTART;TZID=America/New_York:20200315T150000Z DTSTART;TZID=America/New_York:20200315T150000Z
DTEND;TZID=America/New_York:20200315T163000Z DTEND;TZID=America/New_York:20200315T163000Z
LAST-MODIFIED:20200216T145739Z LAST-MODIFIED:20200216T145739Z
SUMMARY:Conference planning SUMMARY:Conference planning
UID:123456 UID:123456
ORGANIZER:mailto:a@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com ATTENDEE;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
ATTENDEE;RSVP=TRUE;CN=B:mailto:b@example.com ATTENDEE;RSVP=TRUE;CN=B:mailto:b@example.com
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTICIPANT-TYPE:ACTIVE: PARTICIPANT-TYPE:ACTIVE:
UID:v39lQGZvb2GFtcGxlLmNvbQ UID:v39lQGZvb2GFtcGxlLmNvbQ
STRUCTURED-DATA;VALUE=URI:http://www.example.com/people/b.vcf STRUCTURED-DATA;VALUE=URI:http://www.example.com/people/b.vcf
LOCATION:At home LOCATION:At home
END:PARTICIPANT END:PARTICIPANT
END:VEVENT END:VEVENT
]]></sourcecode>
</artwork>
</figure>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title='Security Considerations'> <name>Security Considerations</name>
<t> <t>
This specification extends <xref target="RFC5545" /> and makes further u se of This specification extends <xref target="RFC5545" format="default"/> and makes further use of
possibly linked data. While calendar data is not unique in this possibly linked data. While calendar data is not unique in this
regard it is worth reminding implementors of some of the dangers regard, it is worth reminding implementors of some of the dangers
and safeguards. and safeguards.
</t> </t>
<section anchor="security-uris" numbered="true" toc="default">
<section anchor='security-uris' title="URIs"> <name>URIs</name>
<t> <t>
See <xref target="RFC3986" /> for a discussion of the security See <xref target="RFC3986" format="default"/> for a discussion of the security
considerations relating to URIs. Because of the issues discussed there and below, considerations relating to URIs. Because of the issues discussed there and below,
clients SHOULD NOT follow URIs and fetch content automatically, clients <bcp14>SHOULD NOT</bcp14> follow URIs and fetch content automa tically
and should only do so at the explicit request of the user. and should only do so at the explicit request of the user.
</t> </t>
<t>Fetching remote resources carries inherent risks. <t>Fetching remote resources carries inherent risks.
Connections must only be allowed on well known ports, Connections must only be allowed on well-known ports,
using allowed protocols (generally just HTTP/HTTPS on using allowed protocols (generally just HTTP/HTTPS on
their default ports). The URL must be their default ports). The URL must be
resolved externally and not allowed to access internal resources. resolved externally and not allowed to access internal resources.
Connecting to an external source reveals IP (and therefore Connecting to an external source reveals IP (and therefore
generally location) information. generally location) information.
</t> </t>
<t> <t>
A maliciously constructed iCalendar object may contain a very large A maliciously constructed iCalendar object may contain a very large
number of URIs. In the case of published calendars with a large number of URIs. In the case of published calendars with a large
number of subscribers, such objects could be widely distributed. number of subscribers, such objects could be widely distributed.
Implementations should be careful to limit the automatic fetching of Implementations should be careful to limit the automatic fetching of
linked resources to reduce the risk of this being an amplification linked resources to reduce the risk of this being an amplification
vector for a denial-of-service attack. vector for a denial-of-service attack.
</t> </t>
</section> </section>
<section anchor="security-malicious-content" numbered="true" toc="default"
<section anchor='security-malicious-content' >
title="Malicious Content"> <name>Malicious Content</name>
<t> <t>
For the "STRUCTURED-DATA" property, agents need to be aware For the "STRUCTURED-DATA" property, agents need to be aware
that a client could attack underlying storage by sending extremely lar ge that a client could attack underlying storage by sending extremely lar ge
values and could attack processing time by uploading a recurring values and could attack processing time by uploading a recurring
event with a large number of overrides and then repeatedly adding, event with a large number of overrides and then repeatedly adding,
updating and deleting structured data. updating, and deleting structured data.
</t> </t>
<t> <t>
Agents should set reasonable limits on storage size and number Agents should set reasonable limits on storage size and number
of instances and apply those constraints. Calendar protocols should of instances and apply those constraints. Calendar protocols should
ensure there is a way to report on such limits being exceeded. ensure there is a way to report on such limits being exceeded.
</t> </t>
<t> <t>
Malicious content could be introduced into the calendar server by way Malicious content could be introduced into the calendar server by way
of the "STRUCTURED-DATA" property and propagated to many end users via of the "STRUCTURED-DATA" property and propagated to many end users via
scheduling. Servers SHOULD check this property for malicious scheduling. Servers <bcp14>SHOULD</bcp14> check this property for mal icious
or inappropriate content. Upon detecting such content, servers or inappropriate content. Upon detecting such content, servers
SHOULD remove the property, <bcp14>SHOULD</bcp14> remove the property.
</t> </t>
</section> </section>
<section anchor="security-html" numbered="true" toc="default">
<section anchor='security-html' <name>HTML Content</name>
title="HTML Content">
<t> <t>
When processing HTML content, applications need to be aware of the When processing HTML content, applications need to be aware of the
many security and privacy issues, as described in the IANA considerati ons many security and privacy issues, as described in the IANA Considerati ons
section of section of
<xref target='W3C.REC-html51-20171003'/> <xref target="W3C.REC-html51-20171003" format="default"/>.
</t> </t>
</section> </section>
</section> </section>
<section anchor="privacy" numbered="true" toc="default">
<section title='Privacy Considerations' anchor='privacy'> <name>Privacy Considerations</name>
<section title='Tracking' anchor='privacy-tracking'> <section anchor="privacy-tracking" numbered="true" toc="default">
<name>Tracking</name>
<t> <t>
Properties with a "URI" value type can expose their users to Properties with a "URI" value type can expose their users to
privacy leaks as any network access of the URI data can be privacy leaks, as any network access of the URI data can be
tracked both by a network observer and by the tracked both by a network observer and by the
entity hosting the remote resource. entity hosting the remote resource.
Clients SHOULD NOT automatically download data Clients <bcp14>SHOULD NOT</bcp14> automatically download data
referenced by the URI without explicit instruction from users. referenced by the URI without explicit instruction from users.
</t> </t>
<t> <t>
To help alleviate some of the concerns protocols and services To help alleviate some of the concerns, protocols and services
could provide proxy services for downloading referenced data. could provide proxy services for downloading referenced data.
</t> </t>
</section> </section>
<section anchor="privacy-locations" numbered="true" toc="default">
<section title='Revealing Locations' anchor='privacy-locations'> <name>Revealing Locations</name>
<t> <t>
The addition of location information to the new participant The addition of location information to the new participant
component provides information about the location of component provides information about the location of
participants at a given time. This information MUST NOT be participants at a given time. This information <bcp14>MUST NOT</bcp14> be
distributed to other participants without those participant's distributed to other participants without those participant's
express permission. Note that there may be a number of express permission. Note that there may be a number of
participants who may be unaware of their inclusion in the participants who may be unaware of their inclusion in the
data. data.
</t> </t>
<t> <t>
Agents processing and distributing Agents processing and distributing
calendar data must be aware that it has the property of calendar data must be aware that it has the property of
providing information about a future time when a given providing information about a future time when a given
individual may be at a particular location, which could individual may be at a particular location, which could
enable targeted attacks against that individual. enable targeted attacks against that individual.
</t> </t>
<t> <t>
The same may be true of other information contained in the The same may be true of other information contained in the
participant component. In general, revealing only as much participant component. In general, revealing only as much
as is absolutely necessary should be the approach taken. as is absolutely necessary should be the approach taken.
</t> </t>
<t> <t>
For example, there may be some privacy considerations relating to the ORDER For example, there may be some privacy considerations relating to the "ORDER"
parameter, as it provides an indication of the parameter, as it provides an indication of the
organizer's perception of the relative importance of other organizer's perception of the relative importance of other
participants. participants.
</t> </t>
</section> </section>
</section> </section>
<section anchor="iana_considerations" numbered="true" toc="default">
<section anchor="iana_considerations" title='IANA Considerations'> <name>IANA Considerations</name>
<section anchor="additional-icalendar-registrations" <section anchor="additional-icalendar-registrations" numbered="true" toc="
title="Additional iCalendar Registrations"> default">
<section anchor="property_registrations" <name>Additional iCalendar Registrations</name>
title="Properties" > <section anchor="property_registrations" numbered="true" toc="default">
<name>Properties</name>
<t> <t>
This document defines the following new iCalendar properties to be This document defines the following iCalendar properties
added to the registry defined in Section 8.2.3 of <xref target='RFC5 that have been added to the "Properties" registry defined in <xref t
545'/>: arget="RFC5545" format="default" sectionFormat="of" section="8.2.3"/>:
</t> </t>
<texttable> <table align="center">
<ttcol align="left">Property</ttcol> <name>Additions to the Properties Registry</name>
<ttcol align="left">Status</ttcol> <thead>
<ttcol align="left">Reference</ttcol> <tr>
<th align="left">Property</th>
<c>CALENDAR-ADDRESS</c> <th align="left">Status</th>
<c>Current</c> <th align="left">Reference</th>
<c>RFCXXXX, <xref target="calendar-address"/></c> </tr>
</thead>
<c>LOCATION-TYPE</c> <tbody>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="loctype"/></c> <td align="left">CALENDAR-ADDRESS</td>
<td align="left">Current</td>
<c>PARTICIPANT-TYPE</c> <td align="left">RFC 9073, <xref target="calendar-address" forma
<c>Current</c> t="default"/></td>
<c>RFCXXXX, <xref target="participant-type"/></c> </tr>
<tr>
<c>RESOURCE-TYPE</c> <td align="left">LOCATION-TYPE</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="restype"/></c> <td align="left">RFC 9073, <xref target="loctype" format="defaul
t"/></td>
<c>STRUCTURED-DATA</c> </tr>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="structured-data" /></c> <td align="left">PARTICIPANT-TYPE</td>
<td align="left">Current</td>
<c>STYLED-DESCRIPTION</c> <td align="left">RFC 9073, <xref target="participant-type" forma
<c>Current</c> t="default"/></td>
<c>RFCXXXX, <xref target="styled-description"/></c> </tr>
</texttable> <tr>
<td align="left">RESOURCE-TYPE</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="restype" format="defaul
t"/></td>
</tr>
<tr>
<td align="left">STRUCTURED-DATA</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="structured-data" format
="default"/></td>
</tr>
<tr>
<td align="left">STYLED-DESCRIPTION</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="styled-description" for
mat="default"/></td>
</tr>
</tbody>
</table>
</section> </section>
<section anchor="parameter_registrations" numbered="true" toc="default">
<section anchor="parameter_registrations" <name>Parameters</name>
title="Parameters" >
<t> <t>
This document defines the following new iCalendar property parameter This document defines the following iCalendar property parameters
s that have been added to the "Parameters" registry defined in <xref t
to be added to the registry defined in Section 8.2.4 of <xref target arget="RFC5545" format="default" sectionFormat="of" section="8.2.4"/>:
='RFC5545'/>:
</t> </t>
<texttable> <table align="center">
<ttcol align="left">Property Parameter</ttcol> <name>Additions to the Parameters Registry</name>
<ttcol align="left">Status</ttcol> <thead>
<ttcol align="left">Reference</ttcol> <tr>
<th align="left">Parameter</th>
<c>ORDER</c> <th align="left">Status</th>
<c>Current</c> <th align="left">Reference</th>
<c>RFCXXXX, <xref target="parameter_order"/></c> </tr>
</thead>
<c>SCHEMA</c> <tbody>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="parameter_schema" /></c> <td align="left">ORDER</td>
</texttable> <td align="left">Current</td>
<td align="left">RFC 9073, <xref target="parameter_order" format
="default"/></td>
</tr>
<tr>
<td align="left">SCHEMA</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="parameter_schema" forma
t="default"/></td>
</tr>
<tr>
<td align="left">DERIVED</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="parameter_derived" form
at="default"/></td>
</tr>
</tbody>
</table>
</section> </section>
<section anchor="component_registrations" numbered="true" toc="default">
<section anchor="component_registrations" <name>Components</name>
title="Components" >
<t> <t>
This document defines the following new iCalendar components to be This document defines the following iCalendar components that have b
added to the registry defined in Section 8.3.1 of <xref target='RFC5 een
545'/>: added to the "Components" registry defined in <xref target="RFC5545"
format="default" sectionFormat="of" section="8.3.1"/>:
</t> </t>
<texttable> <table align="center">
<ttcol align="left">Component</ttcol> <name>Additions to the Components Registry</name>
<ttcol align="left">Status</ttcol> <thead>
<ttcol align="left">Reference</ttcol> <tr>
<th align="left">Component</th>
<c>PARTICIPANT</c> <th align="left">Status</th>
<c>Current</c> <th align="left">Reference</th>
<c>RFCXXXX, <xref target="participant"/></c> </tr>
</thead>
<c>VLOCATION</c> <tbody>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="vlocation"/></c> <td align="left">PARTICIPANT</td>
<td align="left">Current</td>
<c>VRESOURCE</c> <td align="left">RFC 9073, <xref target="participant" format="de
<c>Current</c> fault"/></td>
<c>RFCXXXX, <xref target="vresource"/></c> </tr>
</texttable> <tr>
<td align="left">VLOCATION</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="vlocation" format="defa
ult"/></td>
</tr>
<tr>
<td align="left">VRESOURCE</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="vresource" format="defa
ult"/></td>
</tr>
</tbody>
</table>
</section> </section>
</section> </section>
<section anchor="new_registration-tables" numbered="true" toc="default">
<section anchor="new_registration-tables" <name>Participant Types and Resource Types Registries</name>
title="New Registration Tables">
<t> <t>
This section defines new registration tables for PARTICIPANT-TYPE This section defines new registration tables for PARTICIPANT-TYPE
and RESOURCE-TYPE values. These tables are updated using the same and RESOURCE-TYPE values. These tables are updated using the same
approaches laid down in Section 8.2.1 of <xref target="RFC5545" /> approaches laid down in <xref target="RFC5545" format="default" sectio nFormat="of" section="8.2.1"/>.
</t> </t>
<t> <t>
This document creates new IANA registries for participant and resource This document creates new IANA registries for participant and resource
types. types.
IANA will maintain these registries and, following the policies IANA will maintain these registries and, following the policies
outlined in <xref target="RFC8126" />, new tokens are outlined in <xref target="RFC8126" format="default"/>, new tokens are
assigned after Expert Review. The Expert Reviewer will generally assigned after Expert Review. The Expert Reviewer will generally
consult the IETF GeoPRIV working group mailing list or its designated consult the IETF GEOPRIV Working Group mailing list or its designated
successor. Updates or deletions of tokens from the registration successor. Updates or deletions of tokens from the registration
follow the same procedures. follow the same procedures.
The expert review should be guided by a few common sense The Expert Review should be guided by a few common-sense
considerations. For example, tokens should not be specific to a considerations. For example, tokens should not be specific to a
country, region, organization, or company; they should be well- country, region, organization, or company; they should be well
defined and widely recognized. The expert's support of IANA will defined and widely recognized. The Expert's support of IANA will
include providing IANA with the new token(s) when the update is include providing IANA with the new token(s) when the update is
provided only in the form of a schema, and providing IANA with the provided only in the form of a schema and providing IANA with the
new schema element(s) when the update is provided only in the form of new schema element(s) when the update is provided only in the form of
a token. a token.
To ensure widespread usability across protocols, tokens MUST follow To ensure widespread usability across protocols, tokens <bcp14>MUST</b
the character set restrictions for XML Names [3]. cp14> follow
the character set restrictions for XML Names <xref target="W3C.REC-xml
-20040204"/>.
Each registration must include the name of the token and a brief Each registration must include the name of the token and a brief
description similar to the ones offered herein for the initial description similar to the ones offered herein for the initial
registrations contained this document: registrations contained this document.
</t> </t>
<section anchor="participant_types_registry" numbered="true" toc="defaul
t">
<name>Participant Types</name>
<section anchor="participant_types_registry" <table align="center">
title="Participant Types" > <name>Initial Contents of the Participant Types Registry</name>
<t> <thead>
The following table has been used to initialize the <tr>
participant types registry. <th align="left">Participant Type</th>
</t> <th align="left">Status</th>
<texttable> <th align="left">Reference</th>
<ttcol align="left">Participant Type</ttcol> </tr>
<ttcol align="left">Status</ttcol> </thead>
<ttcol align="left">Reference</ttcol> <tbody>
<tr>
<c>ACTIVE</c> <td align="left">ACTIVE</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">RFC 9073, <xref target="participant-type" forma
t="default"/></td>
<c>INACTIVE</c> </tr>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">INACTIVE</td>
<td align="left">Current</td>
<c>SPONSOR</c> <td align="left">RFC 9073, <xref target="participant-type" forma
<c>Current</c> t="default"/></td>
<c>RFCXXXX, <xref target="participant-type"/></c> </tr>
<tr>
<c>CONTACT</c> <td align="left">SPONSOR</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">RFC 9073, <xref target="participant-type" forma
t="default"/></td>
<c>BOOKING-CONTACT</c> </tr>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">CONTACT</td>
<td align="left">Current</td>
<c>EMERGENCY-CONTACT</c> <td align="left">RFC 9073, <xref target="participant-type" forma
<c>Current</c> t="default"/></td>
<c>RFCXXXX, <xref target="participant-type"/></c> </tr>
<tr>
<c>PUBLICITY-CONTACT</c> <td align="left">BOOKING-CONTACT</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">RFC 9073, <xref target="participant-type" forma
t="default"/></td>
<c>PLANNER-CONTACT</c> </tr>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">EMERGENCY-CONTACT</td>
<td align="left">Current</td>
<c>PERFORMER</c> <td align="left">RFC 9073, <xref target="participant-type" forma
<c>Current</c> t="default"/></td>
<c>RFCXXXX, <xref target="participant-type"/></c> </tr>
<tr>
<c>SPEAKER</c> <td align="left">PUBLICITY-CONTACT</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="participant-type"/></c> <td align="left">RFC 9073, <xref target="participant-type" forma
</texttable> t="default"/></td>
</tr>
<tr>
<td align="left">PLANNER-CONTACT</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="participant-type" forma
t="default"/></td>
</tr>
<tr>
<td align="left">PERFORMER</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="participant-type" forma
t="default"/></td>
</tr>
<tr>
<td align="left">SPEAKER</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="participant-type" forma
t="default"/></td>
</tr>
</tbody>
</table>
</section> </section>
<section anchor="resource_types_registry" numbered="true" toc="default">
<name>Resource Types</name>
<section anchor="resource_types_registry" <table align="center">
title="Resource Types" > <name>Initial Contents of the Resource Types Registry</name>
<t> <thead>
The following table has been used to initialize the resource <tr>
types registry. <th align="left">Resource Type</th>
</t> <th align="left">Status</th>
<texttable> <th align="left">Reference</th>
<ttcol align="left">Resource Type</ttcol> </tr>
<ttcol align="left">Status</ttcol> </thead>
<ttcol align="left">Reference</ttcol> <tbody>
<tr>
<c>PROJECTOR</c> <td align="left">PROJECTOR</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="restype"/></c> <td align="left">RFC 9073, <xref target="restype" format="defaul
t"/></td>
<c>ROOM</c> </tr>
<c>Current</c> <tr>
<c>RFCXXXX, <xref target="restype"/></c> <td align="left">ROOM</td>
<td align="left">Current</td>
<c>REMOTE-CONFERENCE-AUDIO</c> <td align="left">RFC 9073, <xref target="restype" format="defaul
<c>Current</c> t"/></td>
<c>RFCXXXX, <xref target="restype"/></c> </tr>
<tr>
<c>REMOTE-CONFERENCE-VIDEO</c> <td align="left">REMOTE-CONFERENCE-AUDIO</td>
<c>Current</c> <td align="left">Current</td>
<c>RFCXXXX, <xref target="restype"/></c> <td align="left">RFC 9073, <xref target="restype" format="defaul
</texttable> t"/></td>
</tr>
<tr>
<td align="left">REMOTE-CONFERENCE-VIDEO</td>
<td align="left">Current</td>
<td align="left">RFC 9073, <xref target="restype" format="defaul
t"/></td>
</tr>
</tbody>
</table>
</section> </section>
</section> </section>
</section> </section>
<section title="Acknowledgements">
<t>
The author would like to thank Chuck Norris of eventful.com for his work
which led to the development of this RFC.
</t>
<t>
The author would also like to thank the members of CalConnect,
The Calendaring and Scheduling Consortium,
the Event Publication technical committee and the following
individuals for contributing their ideas and support:
</t>
<t>
Cyrus Daboo, John Haug, Dan Mendell, Ken Murchison, Scott Otis.
</t>
</section>
</middle> </middle>
<!-- *****BACK MATTER ***** -->
<back> <back>
<!-- References split into informative and normative --> <references>
<name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.6350.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.3986.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.4589.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.5234.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.5545.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.5546.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.7986.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.8126.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.8259.xml"/>
<!-- There are 2 ways to insert reference entries from the citation librarie <reference anchor="W3C.REC-html51-20171003" target="https://www.w3.org/TR/
s: 2017/REC-html51-20171003">
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here <front>
(as shown) <title>HTML 5.1 2nd Edition</title>
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xm <author initials="S." surname="Faulkner" fullname="Steve Faulkner" rol
l"?> here e="editor">
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis. <organization/>
xml") </author>
<author initials="A." surname="Eicholz" fullname="Arron Eicholz" role=
"editor">
<organization/>
</author>
<author initials="T." surname="Leithead" fullname="Travis Leithead" ro
le="editor">
<organization/>
</author>
<author initials="A." surname="Danilo" fullname="Alex Danilo" role="ed
itor">
<organization/>
</author>
<date month="October" year="2017"/>
</front>
<seriesInfo name="World Wide Web Consortium Recommendation" value="REC-h
tml51-20171003"/>
</reference>
Both are cited textually in the same manner: by using xref elements. <reference anchor="W3C.REC-xml-20081126" target="https://www.w3.org/TR/200
If you use the PI option, xml2rfc will, by default, try to find included fi 8/REC-xml-20081126">
les in the same <front>
directory as the including file. You can also define the XML_LIBRARY enviro <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
nment variable <author initials="T." surname="Bray" fullname="Tim Bray" role="editor"
with a value containing a set of directories to search. These can be eithe >
r in the local <organization/>
filing system or remote ones accessed by http (http://domain/dir/... ).--> </author>
<author initials="J." surname="Paoli" fullname="Jean Paoli" role="edit
or">
<organization/>
</author>
<author initials="M." surname="Sperberg-McQueen" fullname="Michael Spe
rberg-McQueen" role="editor">
<organization/>
</author>
<author initials="E." surname="Maler" fullname="Eve Maler" role="edito
r">
<organization/>
</author>
<author initials="F." surname="Yergeau" fullname="François Yergeau" ro
le="editor">
<organization/>
</author>
<date month="November" year="2008"/>
</front>
<seriesInfo name="World Wide Web Consortium Recommendation" value="REC-x
ml-20081126"/>
</reference>
<references title="Normative References"> <reference anchor="W3C.REC-xml-20040204" target="https://www.w3.org/TR/200
&RFC2119; 4/REC-xml-20040204">
&RFC2426; <front>
&RFC3986; <title>Extensible Markup Language (XML) 1.0 (Third Edition)</title>
&RFC4589; <author initials="M." surname="Sperberg-McQueen" fullname="Michael Spe
&RFC5545; rberg-McQueen">
&RFC5546; <organization/>
&RFC7986; </author>
&RFC8126;
&RFC8174;
&RFC8259;
&W3C.REC-html51-20171003;
&W3C.REC-xml-20081126;
</references>
<section title="Open issues"> <author initials="E." surname="Maler" fullname="Eve Maler">
<t> <organization/>
None at the moment </author>
</t>
</section>
<section title="Change log"> <author initials="T." surname="Bray" fullname="Tim Bray">
<t>To be deleted on publication</t> <organization/>
</author>
<author initials="J." surname="Paoli" fullname="Jean Paoli">
<organization/>
</author>
<t> <author initials="F." surname="Yergeau" fullname="François Yergeau">
calext-v18 2021-??-?? MD <organization/>
<list style='symbols'> </author>
<t> <date month="February" year="2004"/>
Fix incorrect participant type property name in PARTICIPANT. </front>
</t> <seriesInfo name="World Wide Web Consortium Recommendation" value="REC-x
<t> ml-20040204"/>
Allow parameters on LOCATION-TYPE. </reference>
</t>
</list>
</t>
<t> </references>
calext-v17 2021-01-03 MD
<list style='symbols'>
<t>
Remove STRUCTURED-LOCATION property, add VLOCATION component.
</t>
<t>
Remove STRUCTURED-RESOURCE property, add VRESOURCE component.
</t>
<t>
Make LOCATION-TYPE multi-valued property for location.
</t>
<t>
Make RESOURCE-TYPE multi-valued property for resource.
</t>
<t>
Tidy up abnf.
</t>
</list>
</t>
<section numbered="false" toc="default">
<name>Acknowledgements</name>
<t> <t>
calext-v16 2019-10-09 MD The author would like to thank <contact fullname="Chuck Norris"/> of eve
<list style='symbols'> ntful.com for his work,
<t> which led to the development of this RFC.
Make LOCTYPE multi-valued.
</t>
<t>
Add all ATTENDEE scheduling parameters to CALENDAR-ADDRESS.
</t>
</list>
</t>
<t>
calext-v15 2019-10-08 MD
<list style='symbols'>
<t>
Address various DICUSS points.
</t>
</list>
</t>
<t>
calext-v14 2019-06-11 MD
<list style='symbols'>
<t>
Definition of event and social calendaring.
</t>
<t>
Remove redefinition of SOURCE - use STRUCTURED-DATA.
</t>
</list>
</t>
<t>
calext-v13 2019-05-26 MD
<list style='symbols'>
<t>
Respond to various issues.
</t>
</list>
</t>
<t>
calext-v12 2019-02-28 MD
<list style='symbols'>
<t>
Fix styled-description example. Respond to various AD issues.
Some typos.
</t>
</list>
</t>
<t>
calext-v11 2019-02-27 MD
<list style='symbols'>
<t>
Add DERIVED parameter for styled-description, RELATED parameter
for structured-location
</t>
</list>
</t>
<t>
calext-v09 2018-08-30 MD
<list style='symbols'>
<t>
Sorted out inconsistencies in refs to 5546
</t>
</list>
</t>
<t>
calext-v08 2018-07-06 MD
<list style='symbols'>
<t>
Add some text for equal ORDER values
</t>
<t>
Switched scheduleaddress to calendaraddress in participant
abnf. Also added more properties
</t>
<t>
Fixed PARTICIPANT abnf
</t>
</list>
</t>
<t>
calext-v04 2017-10-11 MD
<list style='symbols'>
<t>
Change SCHEDULE-ADDRESS to CALENDAR-ADDRESS
</t>
<t>
Explicitly broaden scope of SOURCE
</t>
<t>
Add initial registry for RESTYPE and move new tables into
separate section.
</t>
<t>
Fix PARTTYPE/PARTICIPANT-TYPE inconsistency
</t>
</list>
</t>
<t>
calext-v03 2017-10-09 MD
<list style='symbols'>
<t>
Mostly typographical and other minor changes
</t>
</list>
</t>
<t>
calext-v02 2017-04-20 MD
<list style='symbols'>
<t>
Add SCHEDULE-ADDRESS property
</t>
<t>
PARTICIPANT becomes a component rather than a property. Turn
many of the former parameters into properties.
</t>
<t>
Use existing ATTENDEE property for scheduling.
</t>
</list>
</t>
<t>
calext-v01 2017-02-18 MD
<list style='symbols'>
<t>
Change ASSOCIATE back to PARTICIPANT
</t>
<t>
PARTICIPANT becomes a component rather than a property. Turn
many of the former parameters into properties.
</t>
</list>
</t>
<t>
calext-v00 2016-08-?? MD
<list style='symbols'>
<t>
Name changed - taken up by calext working group
</t>
</list>
</t>
<t>
v06 2016-06-26 MD
<list style='symbols'>
<t>
Fix up abnf
</t>
<t>
change ref to ietf from daboo
</t>
<t>
take out label spec - use Cyrus spec
</t>
</list>
</t>
<t>
v05 2016-06-14 MD
<list style='symbols'>
<t>
Remove GROUP and HASH. they can be dealt with elsewhere if desired
</t>
<t>
Change ORDER to integer >= 1.
</t>
<t>
Incorporate Structured-Data into this specification.
</t>
</list>
</t>
<t>
v04 2014-02-01 MD
<list style='symbols'>
<t>
Added updates attribute.
</t>
<t>
Minor typos.
</t>
<t>
Resubmitted mostly to refresh the draft.
</t>
</list>
</t>
<t>
v03 2013-03-06 MD
<list style='symbols'>
<t>
Replace PARTICIPANT with ASSOCIATE plus related changes.
</t>
<t>
Added section showing modifications to components.
</t>
<t>
Replace ID with GROUP and modify HASH.
</t>
<t>
Replace TITLE param with LABEL.
</t>
<t>
Fixed STYLED-DESCRIPTION in various ways, correct example.
</t>
</list>
</t>
<t>
v02 2012-11-02 MD
<list style='symbols'>
<t>
Collapse sections with description of properties and the use cases
into a section with sub-sections.
</t>
<t>
New section to describe relating properties.
</t>
<t>
Remove idref and upgrade hash to have the reference
</t>
<t>
No default value types on properties..
</t>
</list>
</t>
<t>
v01 2012-10-18 MD Many changes.
<list style='symbols'>
<t>
SPONSOR and STRUCTURED-CONTACT are now in PARTICIPANT
</t>
<t>
Add a STRUCTURED-RESOURCE property
</t>
<t>
STYLED-DESCRIPTION to handle rich text
</t>
<t>
Much more...
</t>
</list>
</t> </t>
<t> <t>
2011-01-07 The author would also like to thank the members of CalConnect:
<list style='symbols'> The Calendaring and Scheduling Consortium,
<t> the Event Publication technical committee, and the following
Remove MEDIA - it's going in the Cyrus RFC individuals for contributing their ideas and support:
</t>
<t>
Rename EXTENDED-... to STRUCTURED-...
</t>
<t>
Add TYPE parameter to SPONSOR
</t>
</list>
</t> </t>
<t> <t>
v00 2007-10-19 MD Initial version <contact fullname="Cyrus Daboo"/>, <contact fullname="John Haug"/>, <con tact fullname="Dan Mendell"/>, <contact fullname="Ken Murchison"/>, and <contact fullname="Scott Otis"/>.
</t> </t>
</section> </section>
</back> </back>
</rfc> </rfc>
 End of changes. 300 change blocks. 
1743 lines changed or deleted 1394 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/