rfc9073.original | rfc9073.txt | |||
---|---|---|---|---|
Network Working Group M. Douglass | Internet Engineering Task Force (IETF) M. Douglass | |||
Internet-Draft Bedework | Request for Comments: 9073 Bedework | |||
Updates: 5545 (if approved) January 13, 2021 | Updates: 5545 July 2021 | |||
Intended status: Standards Track | Category: Standards Track | |||
Expires: July 17, 2021 | ISSN: 2070-1721 | |||
Event Publishing Extensions to iCalendar | Event Publishing Extensions to iCalendar | |||
draft-ietf-calext-eventpub-extensions-18 | ||||
Abstract | Abstract | |||
This specification updates RFC5545 by introducing a number of new | This specification updates RFC 5545 by introducing a number of new | |||
iCalendar properties and components which are of particular use for | iCalendar properties and components that are of particular use for | |||
event publishers and in social networking. | event publishers and in social networking. | |||
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 to an | iCalendar (RFC 5545) to allow for data that is directly pertinent to | |||
event or task to be included with the calendar data. | an event or task to be included with the calendar data. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on July 17, 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9073. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Conventions Used in This Document . . . . . . . . . . . . 3 | 1.1. Conventions Used in This Document | |||
1.2. Terms Used in This Document . . . . . . . . . . . . . . . 3 | 1.2. Terms Used in This Document | |||
2. Components and properties . . . . . . . . . . . . . . . . . . 4 | 2. Components and Properties | |||
3. Typed References . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Typed References | |||
3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Use Cases | |||
3.1.1. Piano Concert Performance . . . . . . . . . . . . . . 5 | 3.1.1. Piano Concert Performance | |||
3.1.2. Itineraries . . . . . . . . . . . . . . . . . . . . . 5 | 3.1.2. Itineraries | |||
3.1.2.1. Reserving facilities . . . . . . . . . . . . . . 6 | 3.1.2.1. Reserving Facilities | |||
4. Modifications to Calendar Components . . . . . . . . . . . . 6 | 4. Modifications to Calendar Components | |||
5. New Property Parameters . . . . . . . . . . . . . . . . . . . 7 | 5. New Property Parameters | |||
5.1. Order . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.1. Order | |||
5.2. Schema . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.2. Schema | |||
5.3. Derived . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.3. Derived | |||
6. New Properties . . . . . . . . . . . . . . . . . . . . . . . 10 | 6. New Properties | |||
6.1. Location Type . . . . . . . . . . . . . . . . . . . . . . 10 | 6.1. Location Type | |||
6.2. Participant Type . . . . . . . . . . . . . . . . . . . . 11 | 6.2. Participant Type | |||
6.3. Resource Type . . . . . . . . . . . . . . . . . . . . . . 13 | 6.3. Resource Type | |||
6.4. Calendar Address . . . . . . . . . . . . . . . . . . . . 14 | 6.4. Calendar Address | |||
6.5. Styled-Description . . . . . . . . . . . . . . . . . . . 14 | 6.5. Styled-Description | |||
6.6. Structured-Data . . . . . . . . . . . . . . . . . . . . . 16 | 6.6. Structured-Data | |||
7. New Components . . . . . . . . . . . . . . . . . . . . . . . 18 | 7. New Components | |||
7.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 18 | 7.1. Participant | |||
7.1.1. Schedulable Participant . . . . . . . . . . . . . . . 22 | 7.1.1. Schedulable Participant | |||
7.2. Location . . . . . . . . . . . . . . . . . . . . . . . . 22 | 7.2. Location | |||
7.3. Resource . . . . . . . . . . . . . . . . . . . . . . . . 23 | 7.3. Resource | |||
8. Extended examples . . . . . . . . . . . . . . . . . . . . . . 25 | 8. Extended Examples | |||
8.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 25 | 8.1. Example 1 | |||
8.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 26 | 8.2. Example 2 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | 9. Security Considerations | |||
9.1. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 9.1. URIs | |||
9.2. Malicious Content . . . . . . . . . . . . . . . . . . . . 28 | 9.2. Malicious Content | |||
9.3. HTML Content . . . . . . . . . . . . . . . . . . . . . . 28 | 9.3. HTML Content | |||
10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 28 | 10. Privacy Considerations | |||
10.1. Tracking . . . . . . . . . . . . . . . . . . . . . . . . 28 | 10.1. Tracking | |||
10.2. Revealing Locations . . . . . . . . . . . . . . . . . . 28 | 10.2. Revealing Locations | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | 11. IANA Considerations | |||
11.1. Additional iCalendar Registrations . . . . . . . . . . . 29 | 11.1. Additional iCalendar Registrations | |||
11.1.1. Properties . . . . . . . . . . . . . . . . . . . . . 29 | 11.1.1. Properties | |||
11.1.2. Parameters . . . . . . . . . . . . . . . . . . . . . 29 | 11.1.2. Parameters | |||
11.1.3. Components . . . . . . . . . . . . . . . . . . . . . 30 | 11.1.3. Components | |||
11.2. New Registration Tables . . . . . . . . . . . . . . . . 30 | 11.2. Participant Types and Resource Types Registries | |||
11.2.1. Participant Types . . . . . . . . . . . . . . . . . 30 | 11.2.1. Participant Types | |||
11.2.2. Resource Types . . . . . . . . . . . . . . . . . . . 31 | 11.2.2. Resource Types | |||
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31 | 12. Normative References | |||
13. Normative References . . . . . . . . . . . . . . . . . . . . 31 | Acknowledgements | |||
Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 33 | Author's Address | |||
Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 33 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 36 | ||||
1. Introduction | 1. Introduction | |||
The currently existing iCalendar standard [RFC5545] lacks useful | The currently existing iCalendar standard [RFC5545] lacks useful | |||
methods for referencing additional, external information relating to | methods for referencing additional, external information relating to | |||
calendar components. Additionally there is no standard way to | calendar components. Additionally, there is no standard way to | |||
provide rich text descriptions or meta-data associated with the | provide rich-text descriptions or metadata associated with the event. | |||
event. | ||||
Current practice is to embed this information as links in the | Current practice is to embed this information as links in the | |||
description or to add non-standard properties as defined in [RFC5545] | description or to add nonstandard properties, as defined in | |||
section 3.8.8.2. | Section 3.8.8.2 of [RFC5545]. | |||
This document updates [RFC5545] to define a number of properties and | This document updates [RFC5545] to define a number of properties and | |||
components referencing such external information that can provide | components referencing such external information that can provide | |||
additional information about an iCalendar component. The intent is | additional information about an iCalendar component. The intent is | |||
to allow interchange of such information between applications or | to allow the interchange of such information between applications or | |||
systems (e.g., between clients, between client and server, and | systems (e.g., between clients, between client and server, and | |||
between servers). Formats such as vCard [RFC2426] are likely to be | between servers). Formats, such as vCard [RFC6350], are likely to be | |||
most useful to the receivers of such events as they may be used in | most useful to the receivers of such events as they may be used in | |||
other applications - such as address books. | other applications -- such as address books. | |||
1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
The notation used in this memo is the ABNF notation of [RFC5234] as | ||||
used by iCalendar [RFC5545]. Any syntax elements shown below that | ||||
are not explicitly defined in this specification come from iCalendar | ||||
[RFC5545]. | ||||
1.2. Terms Used in This Document | 1.2. Terms Used in This Document | |||
Event: When the (perhaps with a capitalised 'E') word 'event' is | Event: When the word 'event' (perhaps with a capitalized 'E') is | |||
used we are referring to gatherings, formal or informal. For | used, we are referring to gatherings, formal or informal (for | |||
example a sports event, a party or a concert. | example, a sports event, a party, or a concert). | |||
Social Calendaring: Historically, calendar data and scheduling has | Social Calendaring: Historically, calendar data and scheduling has | |||
been heavily biased towards meetings in a corporate environment. | been heavily biased towards meetings in a corporate environment. | |||
Some of the features defined in this document are to support a | Some of the features defined in this document are to support a | |||
more informal, i.e. social, model. For example, we may want to | more 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. | |||
2. Components and properties | 2. Components and Properties | |||
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 [RFC5545]. | nested deeper than those defined in [RFC5545]. | |||
In a break with this 'tradition' this specification defines a number | In a break with this 'convention', this specification defines a | |||
of components rather than properties. This is a better match for the | number of components rather than properties. This is a better match | |||
way [W3C.REC-xml-20081126] and JSON [RFC8259] handle such structures | for the way [W3C.REC-xml-20081126] and JSON [RFC8259] handle such | |||
and allows richer definitions. | structures and allows richer definitions. | |||
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. | |||
3. Typed References | 3. Typed References | |||
The properties and components defined here can all reference external | The properties and components defined here can all reference external | |||
meta-data which may be used by applications to provide further | metadata, which may be used by applications to provide further | |||
information to users. By providing type information, clients and | information to users. By providing type information, clients and | |||
servers are able to discover interesting references and make use of | servers are able to discover interesting references and make use of | |||
them, perhaps for indexing or the presenting of additional related | them, perhaps for indexing or presenting additional, related | |||
information for the user. | information for the user. | |||
As always, clients should exercise caution in following references to | As always, clients should exercise caution in following references to | |||
external data. | external data. | |||
The [RFC5545] LOCATION property provides only an unstructured single | The "LOCATION" property [RFC5545] provides only an unstructured | |||
text value for specifying the location where an event (or task) will | single text value for specifying the location where an event (or | |||
occur. This is inadequate for use cases where structured location | task) will occur. This is inadequate for use cases where structured | |||
information (e.g. address, region, country, postal code) is required | location information (e.g., address, region, country, or postal code) | |||
or preferred, and limits widespread adoption of iCalendar in those | is required or preferred and limits widespread adoption of iCalendar | |||
settings. | in those settings. | |||
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, for | locations can be communicated in a "STRUCTURED-DATA" property; | |||
example, address, region, country, postal code as well as other | examples include address, region, country, postal code, parking | |||
information such as parking availability, nearby restaurants and the | availability, nearby restaurants, and the venue, among others. | |||
venue. Servers and clients can retrieve the objects when storing the | Servers and clients can retrieve the objects when storing the event | |||
event and use them to index by geographic location. | and use them to index by geographic location. | |||
When a calendar client receives a calendar component it can search | When a calendar client receives a calendar component, it can search | |||
the set of locations looking for those of particular interest. The | the set of locations looking for those of particular interest. The | |||
LOCATION-TYPE property and STRUCTURED-DATA FMTTYPE parameter, if | "LOCATION-TYPE" property and "FMTTYPE" parameter applied to the | |||
supplied, can be used to help the selection. | "STRUCTURED-DATA" property, if supplied, can be used to help the | |||
selection. | ||||
The PARTICIPANT component is designed to handle common use cases in | The "PARTICIPANT" component is designed to handle common use cases in | |||
event publication. It is generally important to provide information | event publication. It is generally important to provide information | |||
about the organizers of such events. Sponsors wish to be referenced | about the organizers of such events. Sponsors wish to be referenced | |||
in a prominent manner. In social calendaring it is often important | in a prominent manner. In social calendaring, it is often important | |||
to identify the active participants in the event, for example a | to identify the active participants (e.g,, a school sports team) and | |||
school sports team, and the inactive participants, for example the | the inactive participants (e.g., the parents) in the event. | |||
parents. | ||||
The PARTICIPANT component can be used to provide useful extra data | The "PARTICIPANT" component can be used to provide useful extra data | |||
about an attendee. For example a location inside the PARTICIPANT | about an attendee. For example, a location inside the PARTICIPANT | |||
gives the actual location of a remote attendee. (But see the note | gives the actual location of a remote attendee. (But see the note | |||
about privacy.) | about privacy.) | |||
Alternatively the PARTICIPANT component can be used to provide a | Alternatively, the "PARTICIPANT" component can be used to provide a | |||
reference - perhaps the address for mailing lists. | reference -- perhaps the address for mailing lists. | |||
3.1. Use Cases | 3.1. Use Cases | |||
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 | there are opportunities for use elsewhere. The following use cases | |||
will describe some possible scenarios. | will describe some possible scenarios. | |||
3.1.1. Piano Concert Performance | 3.1.1. Piano Concert Performance | |||
In putting together a concert there are many participants: piano | In putting together a concert, there are many participants: piano | |||
tuner, performer, stage hands etc. In addition there are sponsors | tuner, performer, stage hands, etc. In addition, there are sponsors | |||
and various contacts to be provided. There will also be a number of | and various contacts to be provided. There will also be a number of | |||
related locations. A number of events can be created, all of which | related locations. A number of events can be created, all of which | |||
relate to the performance in different ways. | relate to the performance in different ways. | |||
There may be an iTip [RFC5546] meeting request for the piano tuner | There may be an iCalendar Transport-independent Interoperability | |||
who will arrive before the performance. Other members of staff may | Protocol (iTIP) [RFC5546] meeting request for the piano tuner, who | |||
also receive meeting requests. | will arrive before the performance. Other members of staff may also | |||
receive meeting requests. | ||||
An event can also be created for publication which will have a | An event can also be created for publication, which will have a | |||
PARTICIPANT component for the pianist providing a reference to vCard | "PARTICIPANT" component for the pianist providing a reference to | |||
[RFC2426] information about the performer. This event would also | vCard information ([RFC6350]) about the performer. This event would | |||
hold information about parking, local subway stations and the venue | also hold information about parking, local subway stations, and the | |||
itself. In addition, there may be sponsorship information for | venue itself. In addition, there may be sponsorship information for | |||
sponsors of the event and perhaps paid sponsorship properties | sponsors of the event and perhaps paid sponsorship properties, | |||
essentially advertising local establishments. | essentially advertising local establishments. | |||
3.1.2. Itineraries | 3.1.2. Itineraries | |||
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 | When booking a flight, the "PARTICIPANT" component can be used to | |||
provide references to businesses at the airports and to car hire | provide references to businesses at the airports and to rental car | |||
businesses at the destination. | businesses at the destination. | |||
The embedded location information can guide the traveler at the | The embedded location information can guide the traveler around the | |||
airport or to their final destination. The contact information can | airport itself or to their final destination. The contact | |||
provide detailed information about the booking agent, the airlines, | information can provide detailed information about the booking agent, | |||
car hire companies and the hotel. | airlines, car hire companies, and hotel. | |||
3.1.2.1. Reserving facilities | 3.1.2.1. Reserving Facilities | |||
For a meeting, the size of a room and the equipment needed depends to | For a meeting, the size of a room and the equipment needed depends, | |||
some extent on the number of attendees actually in the room. | to some extent, on the number of attendees actually in the room. | |||
A meeting may have many attendees none of which are co-located. The | A meeting may have many attendees, none of which are co-located. The | |||
current ATTENDEE property does not allow for the addition of such | current "ATTENDEE" property does not allow for the addition of such | |||
meta-data. The PARTICIPANT component allows attendees to specify | metadata. The "PARTICIPANT" component allows attendees to specify | |||
their location. | their location. | |||
4. Modifications to Calendar Components | 4. Modifications to Calendar Components | |||
The following changes to the syntax defined in iCalendar [RFC5545] | The following changes to the syntax defined in iCalendar [RFC5545] | |||
are made here. New elements are defined in subsequent sections. | are made here. New elements are defined in subsequent sections. | |||
; Addition of PARTICIPANT, VLOCATION and VRESOURCE | ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE | |||
; as valid components | ; as valid components | |||
eventc = "BEGIN" ":" "VEVENT" CRLF | eventc = "BEGIN" ":" "VEVENT" CRLF | |||
eventprop *alarmc *participantc *locationc *resourcec | eventprop *alarmc *participantc *locationc *resourcec | |||
"END" ":" "VEVENT" CRLF | "END" ":" "VEVENT" CRLF | |||
; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA | ; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA | |||
eventprop =/ *styleddescription | eventprop =/ *styleddescription | |||
*sdataprop | *sdataprop | |||
; Addition of PARTICIPANT, VLOCATION and VRESOURCE | ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE | |||
; as valid components | ; as valid components | |||
todoc = "BEGIN" ":" "VTODO" CRLF | todoc = "BEGIN" ":" "VTODO" CRLF | |||
todoprop *alarmc *participantc *locationc *resourcec | todoprop *alarmc *participantc *locationc *resourcec | |||
"END" ":" "VTODO" CRLF | "END" ":" "VTODO" CRLF | |||
; Addition of properties STYLED-DESCRIPTION, STRUCTURED-DATA | ; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA | |||
todoprop =/ *styleddescription | todoprop =/ *styleddescription | |||
*sdataprop | *sdataprop | |||
; Addition of PARTICIPANT, VLOCATION and VRESOURCE | ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE | |||
; as valid components | ; as valid components | |||
journalc = "BEGIN" ":" "VJOURNAL" CRLF | journalc = "BEGIN" ":" "VJOURNAL" CRLF | |||
jourprop *participantc *locationc *resourcec | jourprop *participantc *locationc *resourcec | |||
"END" ":" "VJOURNAL" CRLF | "END" ":" "VJOURNAL" CRLF | |||
; Addition of properties STYLED-DESCRIPTION, STRUCTURED-DATA | ; Addition of properties STYLED-DESCRIPTION and STRUCTURED-DATA | |||
jourprop =/ *styleddescription | jourprop =/ *styleddescription | |||
*sdataprop | *sdataprop | |||
; Addition of PARTICIPANT, VLOCATION and VRESOURCE | ; Addition of PARTICIPANT, VLOCATION, and VRESOURCE | |||
; as valid components | ; as valid components | |||
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF | freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF | |||
fbprop *participantc *locationc *resourcec | fbprop *participantc *locationc *resourcec | |||
"END" ":" "VFREEBUSY" CRLF | "END" ":" "VFREEBUSY" CRLF | |||
; Addition of property STYLED-DESCRIPTION | ; Addition of property STYLED-DESCRIPTION | |||
fbprop =/ *styleddescription | fbprop =/ *styleddescription | |||
5. New Property Parameters | 5. New Property Parameters | |||
5.1. Order | 5.1. Order | |||
Parameter name: ORDER | Parameter name: ORDER | |||
Purpose: To define ordering for the associated property. | Purpose: This parameter defines ordering for the associated | |||
property. | ||||
Format Definition: | ||||
This parameter is defined by the following notation: | Format Definition: This parameter is defined by the following | |||
notation: | ||||
orderparam = "ORDER" "=" integer | orderparam = "ORDER" "=" integer | |||
; Must be greater than or equal to 1 | ; Must be greater than or equal to 1 | |||
Description: The ORDER parameter is OPTIONAL and is used to indicate | Description: The "ORDER" parameter is OPTIONAL and is used to | |||
the relative ordering of the corresponding instance of a property. | indicate the relative ordering of the corresponding instance of a | |||
Its value MUST be an integer greater than or equal to 1 that | property. Its value MUST be an integer greater than or equal to 1 | |||
specifies the order with 1 being the first in the ordering. | that specifies the order, with 1 being the first in the ordering. | |||
When the parameter is absent, the default MUST be to interpret the | When the parameter is absent, the default MUST be to interpret the | |||
property instance as being ordered last, that is, the property | property instance as being ordered last, that is, the property | |||
will appear after any other instances of the same property with | will appear after any other instances of the same property with | |||
any value of ORDER. | any value of ORDER. | |||
When any ORDER parameters have the same value all the associated | When any "ORDER" parameters have the same value, all the | |||
properties appear as a group within which there is no defined | associated properties appear as a group within which there is no | |||
order. | defined order. | |||
Note that the value of this parameter is to be interpreted only in | 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. | |||
This parameter MUST NOT be applied to a property that does not | This parameter MUST NOT be applied to a property that does not | |||
allow multiple instances. | allow multiple instances. | |||
Example uses: The ORDER may be applied to the PARTICIPANT-TYPE | Example uses: The ORDER may be applied to the "PARTICIPANT-TYPE" | |||
property to indicate the relative importance of the participant, | property to indicate the relative importance of the participant, | |||
for example as a sponsor or a performer. For example, ORDER=1 | for example, as a sponsor or a performer. For example, ORDER=1 | |||
could define the principal performer or soloist. | could define the principal performer or soloist. | |||
5.2. Schema | 5.2. Schema | |||
Parameter Name: SCHEMA | Parameter Name: SCHEMA | |||
Purpose: To specify the schema used for the content of a | Purpose: This parameter specifies the schema used for the content of | |||
"STRUCTURED-DATA" property value. | a "STRUCTURED-DATA" property value. | |||
Format Definition: | ||||
This parameter is defined by the following notation: | Format Definition: This parameter is defined by the following | |||
notation: | ||||
schemaparam = "SCHEMA" "=" DQUOTE uri DQUOTE | schemaparam = "SCHEMA" "=" DQUOTE uri DQUOTE | |||
Description: This property parameter SHOULD be specified on | Description: This property parameter SHOULD be specified on | |||
"STRUCTURED-DATA" properties. When present it provides | "STRUCTURED-DATA" properties. When present, it provides | |||
identifying information about the nature of the content of the | identifying information about the nature of the content of the | |||
corresponding "STRUCTURED-DATA" property value. This can be used | corresponding "STRUCTURED-DATA" property value. This can be used | |||
to supplement the media type information provided by the "FMTTYPE" | to supplement the media type information provided by the "FMTTYPE" | |||
parameter on the corresponding property. | parameter on the corresponding property. | |||
Example: | Example: | |||
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 | yMyIsCiAgICAgICJzZWN1cml0eVNjcmVlbmluZyI6ICJUU0EgUHJlQ2h | |||
yMyIsCiAgICAgICJzZWN1cml0eVNjcmVlbmluZyI6ICJUU0EgUHJlQ2h | lY2siLAogICAgICAidW5kZXJOYW1lIjogewogICAgICAgICJAdHlwZSI | |||
lY2siLAogICAgICAidW5kZXJOYW1lIjogewogICAgICAgICJAdHlwZSI | 6ICJQZXJzb24iLAogICAgICAgICJuYW1lIjogIkV2YSBHcmVlbiIKICA | |||
6ICJQZXJzb24iLAogICAgICAgICJuYW1lIjogIkV2YSBHcmVlbiIKICA | gICAgfSwKICAgICAgInJlc2VydmF0aW9uRm9yIjogewogICAgICAgICJ | |||
gICAgfSwKICAgICAgInJlc2VydmF0aW9uRm9yIjogewogICAgICAgICJ | AdHlwZSI6ICJGbGlnaHQiLAogICAgICAgICJmbGlnaHROdW1iZXIiOiA | |||
AdHlwZSI6ICJGbGlnaHQiLAogICAgICAgICJmbGlnaHROdW1iZXIiOiA | iVUExMTAiLAogICAgICAgICJwcm92aWRlciI6IHsKICAgICAgICAgICJ | |||
iVUExMTAiLAogICAgICAgICJwcm92aWRlciI6IHsKICAgICAgICAgICJ | AdHlwZSI6ICJBaXJsaW5lIiwKICAgICAgICAgICJuYW1lIjogIkNvbnR | |||
AdHlwZSI6ICJBaXJsaW5lIiwKICAgICAgICAgICJuYW1lIjogIkNvbnR | pbmVudGFsIiwKICAgICAgICAgICJpYXRhQ29kZSI6ICJDTyIsCiAgICA | |||
pbmVudGFsIiwKICAgICAgICAgICJpYXRhQ29kZSI6ICJDTyIsCiAgICA | gICAgICAiYm9hcmRpbmdQb2xpY3kiOiAiaHR0cDovL3NjaGVtYS5vcmc | |||
gICAgICAiYm9hcmRpbmdQb2xpY3kiOiAiaHR0cDovL3NjaGVtYS5vcmc | vWm9uZUJvYXJkaW5nUG9saWN5IgogICAgICAgIH0sCiAgICAgICAgInN | |||
vWm9uZUJvYXJkaW5nUG9saWN5IgogICAgICAgIH0sCiAgICAgICAgInN | lbGxlciI6IHsKICAgICAgICAgICJAdHlwZSI6ICJBaXJsaW5lIiwKICA | |||
lbGxlciI6IHsKICAgICAgICAgICJAdHlwZSI6ICJBaXJsaW5lIiwKICA | gICAgICAgICJuYW1lIjogIlVuaXRlZCIsCiAgICAgICAgICAiaWF0YUN | |||
gICAgICAgICJuYW1lIjogIlVuaXRlZCIsCiAgICAgICAgICAiaWF0YUN | vZGUiOiAiVUEiCiAgICAgICAgfSwKICAgICAgICAiZGVwYXJ0dXJlQWl | |||
vZGUiOiAiVUEiCiAgICAgICAgfSwKICAgICAgICAiZGVwYXJ0dXJlQWl | ycG9ydCI6IHsKICAgICAgICAgICJAdHlwZSI6ICJBaXJwb3J0IiwKICA | |||
ycG9ydCI6IHsKICAgICAgICAgICJAdHlwZSI6ICJBaXJwb3J0IiwKICA | gICAgICAgICJuYW1lIjogIlNhbiBGcmFuY2lzY28gQWlycG9ydCIsCiA | |||
gICAgICAgICJuYW1lIjogIlNhbiBGcmFuY2lzY28gQWlycG9ydCIsCiA | gICAgICAgICAiaWF0YUNvZGUiOiAiU0ZPIgogICAgICAgIH0sCiAgICA | |||
gICAgICAgICAiaWF0YUNvZGUiOiAiU0ZPIgogICAgICAgIH0sCiAgICA | gICAgImRlcGFydHVyZVRpbWUiOiAiMjAxNy0wMy0wNFQyMDoxNTowMC0 | |||
gICAgImRlcGFydHVyZVRpbWUiOiAiMjAxNy0wMy0wNFQyMDoxNTowMC0 | wODowMCIsCiAgICAgICAgImFycml2YWxBaXJwb3J0IjogewogICAgICA | |||
wODowMCIsCiAgICAgICAgImFycml2YWxBaXJwb3J0IjogewogICAgICA | gICAgIkB0eXBlIjogIkFpcnBvcnQiLAogICAgICAgICAgIm5hbWUiOiA | |||
gICAgIkB0eXBlIjogIkFpcnBvcnQiLAogICAgICAgICAgIm5hbWUiOiA | iSm9obiBGLiBLZW5uZWR5IEludGVybmF0aW9uYWwgQWlycG9ydCIsCiA | |||
iSm9obiBGLiBLZW5uZWR5IEludGVybmF0aW9uYWwgQWlycG9ydCIsCiA | gICAgICAgICAiaWF0YUNvZGUiOiAiSkZLIgogICAgICAgIH0sCiAgICA | |||
gICAgICAgICAiaWF0YUNvZGUiOiAiSkZLIgogICAgICAgIH0sCiAgICA | gICAgImFycml2YWxUaW1lIjogIjIwMTctMDMtMDVUMDY6MzA6MDAtMDU | |||
gICAgImFycml2YWxUaW1lIjogIjIwMTctMDMtMDVUMDY6MzA6MDAtMDU | 6MDAiCiAgICAgIH0KICAgIH0KICAgIDwvc2NyaXB0Pg== | |||
6MDAiCiAgICAgIH0KICAgIH0KICAgIDwvc2NyaXB0Pg== | ||||
5.3. Derived | 5.3. Derived | |||
Parameter Name: DERIVED | Parameter Name: DERIVED | |||
Purpose: To specify that the value of the associated property is | Purpose: This parameter specifies that the value of the associated | |||
derived from some other property value or values. | property is derived from some other property value or values. | |||
Format Definition: | ||||
This parameter is defined by the following notation: | Format Definition: This parameter is defined by the following | |||
notation: | ||||
derivedparam = "DERIVED" "=" ("TRUE" / "FALSE") | derivedparam = "DERIVED" "=" ("TRUE" / "FALSE") | |||
; Default is FALSE | ; Default is FALSE | |||
Description: This property parameter MAY be specified on any | Description: This property parameter MAY be specified on any | |||
property when the value is derived from some other property or | property when the value is derived from some other property or | |||
properties. When present with a value of TRUE clients MUST NOT | properties. When present with a value of TRUE, clients MUST NOT | |||
update the property. | update the property. | |||
As an example, if a STYLED-DESCRIPTION property is present with | As an example, if a "STYLED-DESCRIPTION" property is present with | |||
FMTTYPE="application/rtf" then there may be an additional STYLED- | FMTTYPE="application/rtf", then there may be an additional | |||
DESCRIPTION property with FMTTYPE="text/html" and DERIVED=TRUE and | "STYLED-DESCRIPTION" property with FMTTYPE="text/html" and | |||
a value created from the rtf value. | DERIVED=TRUE, as well as a value created from the rtf value. | |||
Example: | Example: | |||
STYLED-DESCRIPTION;FMTTYPE=text/html; | ||||
STYLED-DESCRIPTION;FMTTYPE=text/html; | DERIVED=TRUE:<html>...</html> | |||
DERIVED=TRUE:<html>...</html> | ||||
6. New Properties | 6. New Properties | |||
This specification makes use of the NAME property which is defined in | This specification makes use of the "NAME" property, which is defined | |||
[RFC7986] | in [RFC7986]. | |||
6.1. Location Type | 6.1. Location Type | |||
Property name: LOCATION-TYPE | Property Name: LOCATION-TYPE | |||
Purpose: To specify the type(s) of a location. | Purpose: This property specifies the type(s) of a location. | |||
Value type: The value type for this property is TEXT. The allowable | Value Type: The value type for this property is TEXT. The allowable | |||
values are defined below. | values are defined below. | |||
Description: This property MAY be specified in VLOCATION components | Description: This property MAY be specified in "VLOCATION" | |||
and provides a way to differentiate multiple locations. For | components and provides a way to differentiate multiple locations. | |||
example, it allows event producers to provide location information | For example, it allows event producers to provide location | |||
for the venue and the parking. | information for the venue and the parking. | |||
Format Definition: | ||||
This property is defined by the following notation: | Format Definition: This property is defined by the following | |||
notation: | ||||
loctype = "LOCATION-TYPE" loctypeparam ":" | loctype = "LOCATION-TYPE" loctypeparam ":" | |||
text *("," text) | text *("," text) | |||
CRLF | CRLF | |||
loctypeparam = *(";" other-param) | loctypeparam = *(";" other-param) | |||
Multiple values may be used if the location has multiple purposes, | Multiple values may be used if the location has multiple purposes, | |||
for example a hotel and a restaurant. | for example, a hotel and a restaurant. | |||
Values for this parameter are taken from the values defined in | Values for this parameter are taken from the values defined in | |||
[RFC4589] section 3. New location types SHOULD be registered in | Section 3 of [RFC4589]. New location types SHOULD be registered | |||
the manner laid down in section 5 of that specification. | in the manner laid down in Section 5 of [RFC4589]. | |||
6.2. Participant Type | 6.2. Participant Type | |||
Property name: PARTICIPANT-TYPE | Property Name: PARTICIPANT-TYPE | |||
Purpose: To specify the type of participant. | Purpose: This property specifies the type of participant. | |||
Value type: The value type for this property is TEXT. The allowable | Value Type: The value type for this property is TEXT. The allowable | |||
values are defined below. | values are defined below. | |||
Property Parameters: Non-standard parameters can be specified on | Property Parameters: Nonstandard parameters can be specified on this | |||
this property. | property. | |||
Conformance: This property MUST be specified once within a | Conformance: This property MUST be specified once within a | |||
PARTICIPANT component. | "PARTICIPANT" component. | |||
Description: This property defines the type of participation in | Description: This property defines the type of participation in | |||
events or tasks. Participants can be individuals or | events or tasks. Participants can be individuals or | |||
organizations, for example a soccer team, the spectators, or the | organizations, for example, a soccer team, the spectators, or the | |||
musicians. | musicians. | |||
Format Definition: | Format Definition: This property is defined by the following | |||
notation: | ||||
This property is defined by the following notation: | ||||
participanttype = "PARTICIPANT-TYPE" partvalueparam ":" | ||||
partvalue CRLF | ||||
partvalue = ("ACTIVE" | participanttype = "PARTICIPANT-TYPE" partvalueparam ":" | |||
/ "INACTIVE" | partvalue CRLF | |||
/ "SPONSOR" | ||||
/ "CONTACT" | ||||
/ "BOOKING-CONTACT" | ||||
/ "EMERGENCY-CONTACT" | ||||
/ "PUBLICITY-CONTACT" | ||||
/ "PLANNER-CONTACT" | ||||
/ "PERFORMER" | ||||
/ "SPEAKER" | ||||
/ iana-token) ; Other IANA-registered | ||||
; values | ||||
partvalueparam = *(";" other-param) | partvalue = ("ACTIVE" | |||
/ "INACTIVE" | ||||
/ "SPONSOR" | ||||
/ "CONTACT" | ||||
/ "BOOKING-CONTACT" | ||||
/ "EMERGENCY-CONTACT" | ||||
/ "PUBLICITY-CONTACT" | ||||
/ "PLANNER-CONTACT" | ||||
/ "PERFORMER" | ||||
/ "SPEAKER" | ||||
/ iana-token) ; Other IANA-registered | ||||
; values | ||||
Example: | partvalueparam = *(";" other-param) | |||
The following is an example of this property: | Example: The following is an example of this property. | |||
PARTICIPANT-TYPE:SPEAKER | PARTICIPANT-TYPE:SPEAKER | |||
The registered values for the PARTICIPANT-TYPE property have the | The registered values for the "PARTICIPANT-TYPE" property have the | |||
meanings described here: | meanings described here: | |||
ACTIVE: A participant taking an active role - for example a team | ACTIVE: A participant taking an active role -- for example, a team | |||
member. | member. | |||
INACTIVE: A participant taking an inactive role - for example an | INACTIVE: A participant taking an inactive role -- for example, an | |||
audience member. | audience member. | |||
SPONSOR: A sponsor of the event. The ORDER parameter may be used | SPONSOR: A sponsor of the event. The "ORDER" parameter may be used | |||
with this participant type to define the relative order of | with this participant type to define the relative order of | |||
multiple sponsors. | multiple sponsors. | |||
CONTACT: Contact information for the event. The ORDER parameter may | CONTACT: Contact information for the event. The "ORDER" parameter | |||
be used with this participant type to define the relative order of | may be used with this participant type to define the relative | |||
multiple contacts. | order of multiple contacts. | |||
BOOKING-CONTACT: Contact information for reservations or payment | BOOKING-CONTACT: Contact information for reservations or payment. | |||
EMERGENCY-CONTACT: Contact in case of emergency | EMERGENCY-CONTACT: Contact in case of emergency. | |||
PUBLICITY-CONTACT: Contact for publicity | PUBLICITY-CONTACT: Contact for publicity. | |||
PLANNER-CONTACT: Contact for the event planner or organizer | ||||
PERFORMER: A performer - for example the soloist or the accompanist. | PLANNER-CONTACT: Contact for the event planner or organizer. | |||
The ORDER parameter may be used with this participant type to | ||||
define the relative order of multiple performers. For example, | ||||
ORDER=1 could define the principal performer or soloist. | ||||
SPEAKER: Speaker at an event | PERFORMER: A performer -- for example, the soloist or the | |||
accompanist. The "ORDER" parameter may be used with this | ||||
participant type to define the relative order of multiple | ||||
performers. For example, ORDER=1 could define the principal | ||||
performer or soloist. | ||||
SPEAKER: Speaker at an event. | ||||
6.3. Resource Type | 6.3. Resource Type | |||
Property name: RESOURCE-TYPE | Property Name: RESOURCE-TYPE | |||
Purpose: To specify the type of resource. | Purpose: This property specifies the type of resource. | |||
Value type: The value type for this property is TEXT. The allowable | Value Type: The value type for this property is TEXT. The allowable | |||
values are defined below. | values are defined below. | |||
Format Definition: | Format Definition: This property is defined by the following | |||
notation: | ||||
This property is defined by the following notation: | ||||
restypeprop = "RESOURCE-TYPE" restypeparam ":" | restypeprop = "RESOURCE-TYPE" restypeparam ":" | |||
restypevalue CRLF | restypevalue CRLF | |||
restypevalue = ("ROOM" | restypevalue = ("ROOM" | |||
/ "PROJECTOR" | / "PROJECTOR" | |||
/ "REMOTE-CONFERENCE-AUDIO" | / "REMOTE-CONFERENCE-AUDIO" | |||
/ "REMOTE-CONFERENCE-VIDEO" | / "REMOTE-CONFERENCE-VIDEO" | |||
/ iana-token) ; Other IANA-registered | / iana-token) ; Other IANA-registered | |||
; values | ; values | |||
restypeparam = *(";" other-param) | restypeparam = *(";" other-param) | |||
Description: This property MAY be specified in VRESOURCE components | Description: This property MAY be specified in "VRESOURCE" | |||
and provides a way to differentiate multiple resources. | components and provides a way to differentiate multiple resources. | |||
The registered values are described below. New resource types | The registered values are described below. New resource types | |||
SHOULD be registered in the manner laid down in this | SHOULD be registered in the manner laid down in this | |||
specification. | specification. | |||
ROOM: A room for the event/meeting. | ROOM: A room for the event/meeting. | |||
PROJECTOR: Projection equipment. | PROJECTOR: Projection equipment. | |||
REMOTE-CONFERENCE-AUDIO: Audio remote conferencing facilities. | REMOTE-CONFERENCE-AUDIO: Audio remote conferencing facilities. | |||
REMOTE-CONFERENCE-VIDEO: Video remote conferencing facilities. | REMOTE-CONFERENCE-VIDEO: Video remote conferencing facilities. | |||
6.4. Calendar Address | 6.4. Calendar Address | |||
Property name: CALENDAR-ADDRESS | Property Name: CALENDAR-ADDRESS | |||
Purpose: To specify the calendar address for a participant. | Purpose: This property specifies the calendar address for a | |||
participant. | ||||
Value type: CAL-ADDRESS | Value Type: CAL-ADDRESS | |||
Property Parameters: IANA-registered, or non-standard property | Property Parameters: IANA-registered or nonstandard property | |||
parameters can be specified on this property. | parameters can be specified on this property. | |||
Conformance: This property MAY be specified once within a | Conformance: This property MAY be specified once within a | |||
PARTICIPANT component. | "PARTICIPANT" component. | |||
Description: This property provides a calendar user address for the | Description: This property provides a calendar user address for the | |||
participant. If there is an ATTENDEE property with the same value | participant. If there is an "ATTENDEE" property with the same | |||
then the participant is schedulable. | value, then the participant is schedulable. | |||
Format Definition: | ||||
This property is defined by the following notation: | Format Definition: This property is defined by the following | |||
notation: | ||||
calendaraddress = "CALENDAR-ADDRESS" caladdressparam ":" | calendaraddress = "CALENDAR-ADDRESS" caladdressparam ":" | |||
cal-address CRLF | cal-address CRLF | |||
caladdressparam = *(";" other-param) | caladdressparam = *(";" other-param) | |||
6.5. Styled-Description | 6.5. Styled-Description | |||
Property name: STYLED-DESCRIPTION | Property Name: STYLED-DESCRIPTION | |||
Purpose: This property provides for one or more rich-text | Purpose: This property provides for one or more rich-text | |||
descriptions to replace that provided by the DESCRIPTION property. | descriptions to replace that provided by the "DESCRIPTION" | |||
property. | ||||
Value type: 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 | value type can be set to URI or TEXT. Other text-based value | |||
types can be used when defined in the future. Clients MUST ignore | types can be used when defined in the future. Clients MUST ignore | |||
any properties with value types they do not understand. | any properties with value types they do not understand. | |||
Property Parameters: IANA-registered, non-standard, id, alternate | Property Parameters: IANA-registered, nonstandard, id, alternate | |||
text representation, format type, derived and language property | text representation, format type, derived, and language property | |||
parameters can be specified on this property. | parameters can be specified on this property. | |||
Conformance: The property can be specified multiple times in the | Conformance: The property can be specified multiple times in the | |||
"VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", "PARTICIPANT", or | "VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", "PARTICIPANT", or | |||
"VALARM" calendar components. | "VALARM" calendar components. | |||
If it does appear more than once there MUST be exactly one | If it does appear more than once, there MUST be exactly one | |||
instance of the property with no DERIVED parameter or | instance of the property with no "DERIVED" parameter or | |||
DERIVED=FALSE. All others MUST have DERIVED=TRUE. | DERIVED=FALSE. All others MUST have DERIVED=TRUE. | |||
Additionally, if there is one or more STYLED-DESCRIPTION property | Additionally, if there is one or more "STYLED-DESCRIPTION" | |||
then the DESCRIPTION property should be either absent or have the | property, then the "DESCRIPTION" property should either be absent | |||
parameter DERIVED=TRUE. | or have the parameter DERIVED=TRUE. | |||
Description: This property supports rich-text descriptions, for | Description: This property supports rich-text descriptions, for | |||
example HTML. Event publishers typically wish to provide more and | example, HTML. Event publishers typically wish to provide more | |||
better formatted information about the event. | and better-formatted information about the event. | |||
This property is used in the "VEVENT" and "VTODO" to capture | This property is used in the "VEVENT" and "VTODO" components to | |||
lengthy textual descriptions associated with the activity. This | capture lengthy textual descriptions associated with the activity. | |||
property is used in the "VJOURNAL" calendar component to capture | This property is used in the "VJOURNAL" calendar component to | |||
one or more textual journal entries. This property is used in the | capture one or more textual journal entries. This property is | |||
"VALARM" calendar component to capture the display text for a | used in the "VALARM" calendar component to capture the display | |||
DISPLAY category of alarm, and to capture the body text for an | text for a DISPLAY category of alarm and to capture the body text | |||
EMAIL category of alarm. In the PARTICIPANT component it provides | for an EMAIL category of alarm. In the "PARTICIPANT" component, | |||
a detailed description of the participant. | it provides a detailed description of the participant. | |||
VALUE=TEXT is used to provide rich-text inline as the property | VALUE=TEXT is used to provide rich text inline as the property | |||
value. | value. | |||
VALUE=URI is used to provide a link to rich-text content which is | VALUE=URI is used to provide a link to rich-text content, which is | |||
expected to be displayed inline as part of the event. | expected to be displayed inline as part of the event. | |||
In either case the DESCRIPTION property should be absent or | In either case, the "DESCRIPTION" property should be absent or | |||
contain a plain text rendering of the styled text. | contain a plain-text rendering of the styled text. | |||
Applications MAY attempt to guess the media type of the resource | Applications MAY attempt to guess the media type of the resource | |||
via inspection of its content if and only if the media type of the | via inspection of its content if and only if the media type of the | |||
resource is not given by the "FMTTYPE" parameter. If the media | resource is not given by the "FMTTYPE" parameter. If the media | |||
type remains unknown, calendar applications SHOULD treat it as | type remains unknown, calendar applications SHOULD treat it as | |||
type "text/html" and process the content as defined in | type "text/html" and process the content as defined in | |||
[W3C.REC-html51-20171003] | [W3C.REC-html51-20171003]. | |||
Multiple STYLED-DESCRIPTION properties may be used to provide | ||||
different formats or different language variants. However all but | ||||
one MUST have DERIVED=TRUE. | ||||
Format Definition: | ||||
This property is defined by the following notation: | ||||
styleddescription = "STYLED-DESCRIPTION" styleddescparam ":" | ||||
styleddescval CRLF | ||||
styleddescparam = ; the elements herein may appear in any order, | ||||
; and the order is not significant. | ||||
(";" "VALUE" "=" ("URI" / "TEXT")) | Multiple "STYLED-DESCRIPTION" properties may be used to provide | |||
different formats or different language variants. However, all | ||||
but one MUST have DERIVED=TRUE. | ||||
[";" altrepparam] | Format Definition: This property is defined by the following | |||
[";" languageparam] | notation: | |||
[";" fmttypeparam] | ||||
[";" derivedparam] | ||||
*(";" other-param) | styleddescription = "STYLED-DESCRIPTION" styleddescparam ":" | |||
styleddescval CRLF | ||||
styleddescval = ( uri / text ) | styleddescparam = *( | |||
;Value MUST match value type | ; The following is REQUIRED | |||
; but MUST NOT occur more than once. | ||||
; | ||||
(";" "VALUE" "=" ("URI" / "TEXT")) / | ||||
; | ||||
; 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) | ||||
) | ||||
Example: | styleddescval = ( uri / text ) | |||
;Value MUST match value type | ||||
The following is an example of this property. It points to an html | Example: The following is an example of this property. It points to | |||
description. | an HTML description. | |||
STYLED-DESCRIPTION;VALUE=URI:http://example.org/desc001.html | STYLED-DESCRIPTION;VALUE=URI:http://example.org/desc001.html | |||
6.6. Structured-Data | 6.6. Structured-Data | |||
Property Name: STRUCTURED-DATA | Property Name: STRUCTURED-DATA | |||
Purpose: This property specifies ancillary data associated with the | Purpose: This property specifies ancillary data associated with the | |||
calendar component. | calendar component. | |||
Value Type: 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 | value type can be set to TEXT, BINARY, or URI. | |||
Property Parameters: IANA-registered, non-standard, inline encoding | Property Parameters: IANA-registered, nonstandard, inline encoding, | |||
and value data type property parameters can be specified on this | and value data type property parameters can be specified on this | |||
property. The format type and schema parameters can be specified | property. The format type and schema parameters can be specified | |||
on this property and MUST be present for text or inline binary | on this property and MUST be present for text or inline binary | |||
encoded content information. | encoded content information. | |||
Conformance: This property can be specified multiple times in an | Conformance: This property can be specified multiple times in an | |||
iCalendar object. Typically it would be used in "VEVENT", "VTODO" | iCalendar object. Typically, it would be used in the "VEVENT", | |||
or "VJOURNAL" calendar components. | "VTODO", or "VJOURNAL" calendar components. | |||
Description: The existing properties in iCalendar cover key elements | Description: The existing properties in iCalendar cover key elements | |||
of events and tasks such as start time, end time, location, | of events and tasks, such as start time, end time, location, | |||
summary, etc. However, different types of events often have other | summary, etc. However, different types of events often have other | |||
specific "fields" that it is useful to include in the calendar | specific "fields" that are useful to include in the calendar data. | |||
data. For example, an event representing an airline flight could | For example, an event representing an airline flight could include | |||
include the airline, flight number, departure and arrival airport | the airline, flight number, departure and arrival airport codes, | |||
codes, check-in and gate-closing times etc. As another example, a | check-in and gate-closing times, etc. As another example, a | |||
sporting event might contain information about the type of sport, | sporting event might contain information about the type of sport, | |||
the home and away teams, the league the teams are in, information | the home and away teams, the league the teams are in, information | |||
about nearby parking, etc. | about nearby parking, etc. | |||
This property is used to specify ancillary data in some structured | This property is used to specify ancillary data in some structured | |||
format either directly (inline) as a "TEXT" or "BINARY" value or | format, either directly (inline) as a "TEXT" or "BINARY" value or | |||
as a link via a "URI" value. | as a link via a "URI" value. | |||
Rather than define new iCalendar properties for the variety of | Rather than define new iCalendar properties for the variety of | |||
event types that might occur, it would be better to leverage | event types that might occur, it would be better to leverage | |||
existing schemas for such data. For example, schemas available at | existing schemas for such data. For example, schemas available at | |||
https://schema.org include different event types. By using | <https://schema.org> include different event types. By using | |||
standard schemas, interoperability can be improved between | standard schemas, interoperability can be improved between | |||
calendar clients and non-calendaring systems that wish to generate | calendar clients and noncalendaring systems that wish to generate | |||
or process the data. | or process the data. | |||
This property allows the direct inclusion of ancillary data whose | This property allows the direct inclusion of ancillary data whose | |||
schema is defined elsewhere. This property also includes | schema is defined elsewhere. This property also includes | |||
parameters to clearly identify the type of the schema being used | parameters to clearly identify the type of the schema being used | |||
so that clients can quickly and easily spot what is relevant | so that clients can quickly and easily spot what is relevant | |||
within the calendar data and present that to users or process it | within the calendar data and present that to users or process it | |||
within the calendaring system. | within the calendaring system. | |||
iCalendar does support an "ATTACH" property which can be used to | iCalendar does support an "ATTACH" property, which can be used to | |||
include documents or links to documents within the calendar data. | include documents or links to documents within the calendar data. | |||
However, that property does not allow data to be included as a | However, that property does not allow data to be included as a | |||
"TEXT" value (a feature that "STRUCTURED-DATA" does allow), plus | "TEXT" value (a feature that "STRUCTURED-DATA" does allow), plus | |||
attachments are often treated as "opaque" data to be processed by | attachments are often treated as "opaque" data to be processed by | |||
some other system rather than the calendar client. Thus the | some other system rather than the calendar client. Thus, the | |||
existing "ATTACH" property is not sufficient to cover the specific | existing "ATTACH" property is not sufficient to cover the specific | |||
needs of inclusion of schema data. Extending the "ATTACH" | needs of inclusion of schema data. Extending the "ATTACH" | |||
property to support a new value type would likely cause | 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 link | manage attachments by stripping them out and replacing with a link | |||
to the resource. Thus a new property to support inclusion of | to the resource. Thus, a new property to support inclusion of | |||
schema data is warranted. | schema data is warranted. | |||
Format Definition: | Format Definition: This property is defined by the following | |||
notation: | ||||
This property is defined by the following notation: | ||||
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" | sdataprop = "STRUCTURED-DATA" sdataparam | |||
[";" fmttypeparam] | ( | |||
[";" schemaparam] | ";" "VALUE" "=" "TEXT" | |||
":" text | ||||
) / | ||||
( | ||||
";" "ENCODING" "=" "BASE64" | ||||
";" "VALUE" "=" "BINARY" | ||||
";" binary | ||||
) / | ||||
( | ||||
";" "VALUE" "=" "URI" | ||||
":" uri | ||||
) | ||||
CRLF | ||||
sdataval = ( binary / text /uri ) | sdataparam = *( | |||
; value MUST match value type | ; | |||
; The following is OPTIONAL for a URI value, | ||||
; REQUIRED for a TEXT or BINARY value, | ||||
; and MUST NOT occur more than once. | ||||
; | ||||
(";" fmttypeparam) / | ||||
(";" schemaparam) / | ||||
; | ||||
; The following is OPTIONAL | ||||
; and MAY occur more than once. | ||||
; | ||||
(";" other-param) | ||||
; | ||||
) | ||||
Example: The following is an example of this property: | Example: The following is an example of this property. | |||
STRUCTURED-DATA;FMTTYPE=application/ld+json; | STRUCTURED-DATA;FMTTYPE=application/ld+json; | |||
SCHEMA="https://schema.org/SportsEvent"; | SCHEMA="https://schema.org/SportsEvent"; | |||
VALUE=TEXT:{\n | VALUE=TEXT:{\n | |||
"@context": "http://schema.org"\,\n | "@context": "http://schema.org"\,\n | |||
"@type": "SportsEvent"\,\n | "@type": "SportsEvent"\,\n | |||
"homeTeam": "Pittsburgh Pirates"\,\n | "homeTeam": "Pittsburgh Pirates"\,\n | |||
"awayTeam": "San Francisco Giants"\n | "awayTeam": "San Francisco Giants"\n | |||
}\n | }\n | |||
7. New Components | 7. New Components | |||
7.1. Participant | 7.1. Participant | |||
Component name: PARTICIPANT | Component name: PARTICIPANT | |||
Purpose: This component provides information about a participant in | Purpose: This component provides information about a participant in | |||
an event or task. | an event or task. | |||
Conformance: This component can be specified multiple times in a | Conformance: This component can be specified multiple times in a | |||
"VEVENT", "VTODO", "VJOURNAL" or "VFREEBUSY" calendar component. | "VEVENT", "VTODO", "VJOURNAL", or "VFREEBUSY" calendar component. | |||
Description: This component provides information about a participant | Description: This component provides information about a participant | |||
in a calendar component. A participant may be an attendee in a | in a calendar component. A participant may be an attendee in a | |||
scheduling sense and the ATTENDEE property may be specified in | scheduling sense, and the "ATTENDEE" property may be specified in | |||
addition. Participants can be individuals or organizations, for | addition. Participants can be individuals or organizations, for | |||
example a soccer team, the spectators or the musicians. | example, a soccer team, the spectators, or the musicians. | |||
STRUCTURED-DATA properties if present may refer to definitions of | ||||
the participant - such as a vCard. | ||||
The CALENDAR-ADDRESS property if present will provide a cal- | "STRUCTURED-DATA" properties, if present, may refer to definitions | |||
address. If an ATTENDEE property has the same value the | of the participant -- such as a vCard. | |||
participant is considered schedulable. The PARTICIPANT component | ||||
can be used to contain additional meta-data related to the | ||||
attendee. | ||||
Format Definition: | The "CALENDAR-ADDRESS" property, if present, will provide a cal- | |||
address. If an "ATTENDEE" property has the same value, the | ||||
participant is considered schedulable. The "PARTICIPANT" | ||||
component can be used to contain additional metadata related to | ||||
the attendee. | ||||
This component is defined by the following notation: | Format Definition: This component is defined by the following | |||
notation: | ||||
participantc = "BEGIN" ":" "PARTICIPANT" CRLF | participantc = "BEGIN" ":" "PARTICIPANT" CRLF | |||
partprop *locationc *resourcec | partprop *locationc *resourcec | |||
"END" ":" "PARTICIPANT" CRLF | "END" ":" "PARTICIPANT" CRLF | |||
partprop = ; the elements herein may appear in any order, | partprop = *( | |||
; and the order is not significant. | ; | |||
; The following are REQUIRED | ||||
uid | ; but MUST NOT occur more than once. | |||
participanttype | ; | |||
participanttype / uid / | ||||
[calendaraddress] | ; | |||
[created] | ; The following are OPTIONAL | |||
[description] | ; but MUST NOT occur more than once. | |||
[dtstamp] | ; | |||
[geo] | calendaraddress / created / description / dtstamp / | |||
[last-mod] | geo / last-mod / priority / seq / | |||
[priority] | status / summary / url / | |||
[seq] | ; | |||
[status] | ; The following are OPTIONAL | |||
[summary] | ; and MAY occur more than once. | |||
[url] | ; | |||
attach / categories / comment | ||||
*attach | contact / location / rstatus / related / | |||
*categories | resources / strucloc / strucres / | |||
*comment | styleddescription / sdataprop / iana-prop | |||
*contact | ; | |||
*location | ) | |||
*rstatus | ||||
*related | ||||
*resources | ||||
*strucloc | ||||
*strucres | ||||
*styleddescription | ||||
*sdataprop | ||||
*iana-prop | ||||
Note: When the PRIORITY is supplied it defines the ordering of | Note: When the "PRIORITY" property is supplied, it defines the | |||
PARTICIPANT components with the same value for the PARTICIPANT- | ordering of "PARTICIPANT" components with the same value for the | |||
TYPE property. | "PARTICIPANT-TYPE" property. | |||
Privacy Issues: When a LOCATION is supplied it provides information | Privacy Issues: When a "LOCATION" property is supplied, it provides | |||
about the location of a participant at a given time or times. | information about the location of a participant at a given time or | |||
This may represent an unacceptable privacy risk for some | times. This may represent an unacceptable privacy risk for some | |||
participants. User agents MUST NOT broadcast this information | participants. User agents MUST NOT broadcast this information | |||
without the participant's express permission. For further | without the express permission of the participants whose location | |||
comments see Section 10 | would be exposed. For further comments, see Section 10. | |||
Example: | ||||
The following is an example of this component. It contains a | Example: The following is an example of this component. It contains | |||
STRUCTURED-DATA property which points to a vCard providing | a "STRUCTURED-DATA" property that points to a vCard providing | |||
information about the event participant. | information about the event participant. | |||
BEGIN:PARTICIPANT | BEGIN:PARTICIPANT | |||
UID: em9lQGZvb2GFtcGxlLmNvbQ | UID: em9lQGZvb2GFtcGxlLmNvbQ | |||
PARTICIPANT-TYPE:PERFORMER | PARTICIPANT-TYPE:PERFORMER | |||
STRUCTURED-DATA;VALUE=URI: | STRUCTURED-DATA;VALUE=URI: | |||
http://dir.example.com/vcard/aviolinist.vcf | http://dir.example.com/vcard/aviolinist.vcf | |||
END:PARTICIPANT | END:PARTICIPANT | |||
Example: | Example: The following is an example for the primary contact. | |||
The following is an example for the primary contact. | ||||
BEGIN:PARTICIPANT | ||||
UID: em9lQGZvb2GFtcGxlLmNvbQ | ||||
STRUCTURED-DATA;VALUE=URI; | ||||
http://dir.example.com/vcard/contacts/contact1.vcf | ||||
PARTICIPANT-TYPE:CONTACT | ||||
DESCRIPTION:A contact | ||||
END:PARTICIPANT | ||||
Example: | BEGIN:PARTICIPANT | |||
UID: em9lQGZvb2GFtcGxlLmNvbQ | ||||
STRUCTURED-DATA;VALUE=URI; | ||||
http://dir.example.com/vcard/contacts/contact1.vcf | ||||
PARTICIPANT-TYPE:CONTACT | ||||
DESCRIPTION:A contact | ||||
END:PARTICIPANT | ||||
The following is an example for a participant with contact and | Example: The following is an example for a participant with contact | |||
location. | and location. | |||
BEGIN:PARTICIPANT | BEGIN:PARTICIPANT | |||
UID: em9lQGZvb2GFtcGxlLmNdrt | UID: em9lQGZvb2GFtcGxlLmNdrt | |||
STRUCTURED-DATA;VALUE=URI; | STRUCTURED-DATA;VALUE=URI; | |||
http://dir.example.com/vcard/contacts/my-card.vcf | http://dir.example.com/vcard/contacts/my-card.vcf | |||
PARTICIPANT-TYPE:SPEAKER | PARTICIPANT-TYPE:SPEAKER | |||
DESCRIPTION:A participant | DESCRIPTION:A participant | |||
BEGIN:VLOCATION | BEGIN:VLOCATION | |||
UID:123456-abcdef-98765432 | UID:123456-abcdef-98765432 | |||
NAME:My home location | NAME:My home location | |||
STRUCTURED-DATA;VALUE=URI: | STRUCTURED-DATA;VALUE=URI: | |||
http://dir.example.com/addresses/my-home.vcf | http://dir.example.com/addresses/my-home.vcf | |||
END:VLOCATION | END:VLOCATION | |||
END:PARTICIPANT | END:PARTICIPANT | |||
7.1.1. Schedulable Participant | 7.1.1. Schedulable Participant | |||
A PARTICIPANT component may represent someone or something that needs | A "PARTICIPANT" component may represent someone or something that | |||
to be scheduled as defined for ATTENDEE in [RFC5545] and [RFC5546]. | needs to be scheduled, as defined for ATTENDEE in [RFC5545] and | |||
The PARTICIPANT component may also represent someone or something | [RFC5546]. The "PARTICIPANT" component may also represent someone or | |||
that is NOT to receive scheduling messages. | something that is NOT to receive scheduling messages. | |||
For backwards compatibility wuth existing clients and servers when | For backwards compatibility with existing clients and servers when | |||
used to schedule events and tasks the ATTENDEE property MUST be used | used to schedule events and tasks, the "ATTENDEE" property MUST be | |||
to specify the sheduling parameters as defined for that property. | used to specify the scheduling parameters as defined for that | |||
property. | ||||
For other, future uses the CALENDAR-ADDRESS property MUST be used to | For other, future uses, the "CALENDAR-ADDRESS" property MUST be used | |||
specify those parameters. | to specify those parameters. | |||
A PARTICIPANT component is defined to be schedulable if | A "PARTICIPANT" component is defined to be schedulable if: | |||
o It contains a CALENDAR-ADDRESS property | * it contains a "CALENDAR-ADDRESS" property and | |||
o That property value is the same as the value for an ATTENDEE | * that property value is the same as the value for an "ATTENDEE" | |||
property. | property. | |||
If both of these conditions apply then the participant defined by the | If both of these conditions apply, then the participant defined by | |||
value of the URL property will take part in scheduling operations as | the value of the URL property will take part in scheduling | |||
defined in [RFC5546]. | operations, as defined in [RFC5546]. | |||
An appropriate use for the PARTICIPANT component in scheduling would | An appropriate use for the "PARTICIPANT" component in scheduling | |||
be to store SEQUENCE and DTSTAMP properties associated with replies | would be to store "SEQUENCE" and "DTSTAMP" properties associated with | |||
from each ATTENDEE. A LOCATION property within the PARTICIPANT | replies from each "ATTENDEE" property. A "LOCATION" property within | |||
component might allow better selection of meeting times when | the "PARTICIPANT" component might allow better selection of meeting | |||
participants are in different timezones. | times when participants are in different time zones. | |||
7.2. Location | 7.2. Location | |||
Component name: VLOCATION | Component name: VLOCATION | |||
Purpose: This component provides rich information about the location | Purpose: This component provides rich information about the location | |||
of an event using the structured data property or optionally a | of an event using the structured data property or, optionally, a | |||
plain text typed value. | plain-text typed value. | |||
Conformance: This component can be specified multiple times in a | Conformance: This component can be specified multiple times in a | |||
"VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY" or "PARTICIPANT" | "VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", or "PARTICIPANT" | |||
calendar component. | calendar component. | |||
Description: There may be a number of locations associated with an | Description: There may be a number of locations associated with an | |||
event. This component provides detailed information about a | event. This component provides detailed information about a | |||
location. | location. | |||
When used in a component the value of this property provides | When used in a component, the value of this property provides | |||
information about the event venue or of related services such as | information about the event venue or of related services, such as | |||
parking, dining, stations etc.. | parking, dining, stations, etc. | |||
STRUCTURED-DATA properties if present may refer to representations | ||||
of the location - such as a vCard. | ||||
Format Definition: | "STRUCTURED-DATA" properties, if present, may refer to | |||
representations of the location -- such as a vCard. | ||||
This component is defined by the following notation: | Format Definition: This component is defined by the following | |||
notation: | ||||
locationc = "BEGIN" ":" "VLOCATION" CRLF | locationc = "BEGIN" ":" "VLOCATION" CRLF | |||
locprop | locprop | |||
"END" ":" "VLOCATION" CRLF | "END" ":" "VLOCATION" CRLF | |||
locprop = ; the elements herein may appear in any order, | locprop = *( | |||
; and the order is not significant. | ; | |||
; The following are REQUIRED | ||||
uid | ; but MUST NOT occur more than once. | |||
; | ||||
[name] | uid / | |||
[description] | ; | |||
[geo] | ; The following are OPTIONAL | |||
[loctype] | ; but MUST NOT occur more than once. | |||
; | ||||
*sdataprop | description / geo / loctype / name | |||
*iana-prop | ; | |||
; The following are OPTIONAL | ||||
The NAME property is defined in [RFC7986] | ; and MAY occur more than once. | |||
; | ||||
sdataprop / iana-prop | ||||
) | ||||
Example: | The "NAME" property is defined in [RFC7986]. | |||
The following is an example of this component. It points to a venue. | Example: The following is an example of this component. It points | |||
to a venue. | ||||
BEGIN:VLOCATION | BEGIN:VLOCATION | |||
UID:123456-abcdef-98765432 | UID:123456-abcdef-98765432 | |||
NAME:The venue | NAME:The venue | |||
STRUCTURED-DATA;VALUE=URI: | STRUCTURED-DATA;VALUE=URI: | |||
http://dir.example.com/venues/big-hall.vcf | http://dir.example.com/venues/big-hall.vcf | |||
END:VLOCATION | END:VLOCATION | |||
7.3. Resource | 7.3. Resource | |||
Component name: VRESOURCE | Component name: VRESOURCE | |||
Purpose: This component provides a typed reference to external | Purpose: This component provides a typed reference to external | |||
information about a resource or optionally a plain text typed | information about a resource or, optionally, a plain-text typed | |||
value. Typically a resource is anything that might be required or | value. Typically, a resource is anything that might be required | |||
used by a calendar entity and possibly has a directory entry. | or used by a calendar entity and possibly has a directory entry. | |||
Conformance: This component can be specified multiple times in a | Conformance: This component can be specified multiple times in a | |||
"VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY" or "PARTICIPANT" | "VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", or "PARTICIPANT" | |||
calendar component. | calendar component. | |||
Description: When used in a component this component provides | Description: When used in a component, this component provides | |||
information about resources used for the event such as rooms, | information about resources used for the event, such as rooms, | |||
projectors, conferencing capabilities. | projectors, and conferencing capabilities. | |||
The RESOURCE-TYPE value registry provides a place in which | The RESOURCE-TYPE value registry provides a place in which | |||
resource types may be registered. | resource types may be registered. | |||
STRUCTURED-DATA properties if present may refer to representations | "STRUCTURED-DATA" properties, if present, may refer to | |||
of the resource - such as a vCard. | representations of the resource -- such as a vCard. | |||
Format Definition: | ||||
This component is defined by the following notation: | Format Definition: This component is defined by the following | |||
notation: | ||||
resourcec = "BEGIN" ":" "VRESOURCE" CRLF | resourcec = "BEGIN" ":" "VRESOURCE" CRLF | |||
resprop | resprop | |||
"END" ":" "VRESOURCE" CRLF | "END" ":" "VRESOURCE" CRLF | |||
resprop = ; the elements herein may appear in any order, | resprop = *( | |||
; and the order is not significant. | ; | |||
; The following are REQUIRED | ||||
uid | ; but MUST NOT occur more than once. | |||
; | ||||
[name] | uid / | |||
[description] | ; | |||
[geo] | ; The following are OPTIONAL | |||
[restype] | ; but MUST NOT occur more than once. | |||
; | ||||
*sdataprop | description / geo / name / restype / | |||
*iana-prop | ; | |||
; The following are OPTIONAL | ||||
The NAME property is defined in [RFC7986] | ; and MAY occur more than once. | |||
; | ||||
sdataprop / iana-prop | ||||
) | ||||
Example: | The "NAME" property is defined in [RFC7986]. | |||
The following is an example of this component. It refers to a | Example: The following is an example of this component. It refers | |||
projector. | to a projector. | |||
BEGIN:VRESOURCE | BEGIN:VRESOURCE | |||
UID:456789-abcdef-98765432 | UID:456789-abcdef-98765432 | |||
NAME:The projector | NAME:The projector | |||
RESOURCE-TYPE:projector | RESOURCE-TYPE:projector | |||
STRUCTURED-DATA;VALUE=URI:http://dir.example.com/projectors/3d.vcf | STRUCTURED-DATA;VALUE=URI:http://dir.example.com/projectors/3d.vcf | |||
END:VRESOURCE | END:VRESOURCE | |||
8. Extended examples | 8. Extended Examples | |||
The following are some examples of the use of the properties defined | The following are some examples of the use of the properties defined | |||
in this specification. They include additional properties defined in | in this specification. They include additional properties defined in | |||
[RFC7986] which includes IMAGE. | [RFC7986], which includes "IMAGE". | |||
8.1. Example 1 | 8.1. Example 1 | |||
The following is an example of a VEVENT describing a concert. It | ||||
includes location information for the venue itself as well as | The following is an example of a "VEVENT" describing a concert. It | |||
includes location information for the venue itself, as well as | ||||
references to parking and restaurants. | references to parking and restaurants. | |||
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 | |||
skipping to change at page 27, line 4 ¶ | skipping to change at line 1111 ¶ | |||
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 | |||
8.2. Example 2 | 8.2. Example 2 | |||
The following is an example of a VEVENT describing a meeting. One of | ||||
the attendees is a remote participant. | The following is an example of a "VEVENT" describing a meeting. One | |||
of the attendees is a remote participant. | ||||
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 | |||
skipping to change at page 27, line 30 ¶ | skipping to change at line 1138 ¶ | |||
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 | |||
9. Security Considerations | 9. Security Considerations | |||
This specification extends [RFC5545] and makes further use of | This specification extends [RFC5545] 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 and | regard, it is worth reminding implementors of some of the dangers and | |||
safeguards. | safeguards. | |||
9.1. URIs | 9.1. URIs | |||
See [RFC3986] for a discussion of the security considerations | See [RFC3986] for a discussion of the security considerations | |||
relating to URIs. Because of the issues discussed there and below, | relating to URIs. Because of the issues discussed there and below, | |||
clients SHOULD NOT follow URIs and fetch content automatically, and | clients SHOULD NOT follow URIs and fetch content automatically and | |||
should only do so at the explicit request of the user. | should only do so at the explicit request of the user. | |||
Fetching remote resources carries inherent risks. Connections must | Fetching remote resources carries inherent risks. Connections must | |||
only be allowed on well known ports, using allowed protocols | only be allowed on well-known ports, using allowed protocols | |||
(generally just HTTP/HTTPS on their default ports). The URL must be | (generally just HTTP/HTTPS on 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 generally | Connecting to an external source reveals IP (and therefore generally | |||
location) information. | location) information. | |||
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. | |||
9.2. Malicious Content | 9.2. Malicious Content | |||
For the "STRUCTURED-DATA" property, agents need to be aware that a | For the "STRUCTURED-DATA" property, agents need to be aware that a | |||
client could attack underlying storage by sending extremely large | client could attack underlying storage by sending extremely large | |||
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. | |||
Agents should set reasonable limits on storage size and number of | Agents should set reasonable limits on storage size and number of | |||
instances and apply those constraints. Calendar protocols should | 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. | |||
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 | of the "STRUCTURED-DATA" property and propagated to many end users | |||
via scheduling. Servers SHOULD check this property for malicious or | via scheduling. Servers SHOULD check this property for malicious or | |||
inappropriate content. Upon detecting such content, servers SHOULD | inappropriate content. Upon detecting such content, servers SHOULD | |||
remove the property, | remove the property. | |||
9.3. HTML Content | 9.3. HTML Content | |||
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 | many security and privacy issues, as described in the IANA | |||
considerations section of [W3C.REC-html51-20171003] | Considerations section of [W3C.REC-html51-20171003]. | |||
10. Privacy Considerations | 10. Privacy Considerations | |||
10.1. Tracking | 10.1. Tracking | |||
Properties with a "URI" value type can expose their users to privacy | Properties with a "URI" value type can expose their users to privacy | |||
leaks as any network access of the URI data can be tracked both by a | leaks, as any network access of the URI data can be tracked both by a | |||
network observer and by the entity hosting the remote resource. | network observer and by the entity hosting the remote resource. | |||
Clients SHOULD NOT automatically download data referenced by the URI | Clients SHOULD NOT automatically download data referenced by the URI | |||
without explicit instruction from users. | without explicit instruction from users. | |||
To help alleviate some of the concerns protocols and services could | To help alleviate some of the concerns, protocols and services could | |||
provide proxy services for downloading referenced data. | provide proxy services for downloading referenced data. | |||
10.2. Revealing Locations | 10.2. Revealing Locations | |||
The addition of location information to the new participant component | The addition of location information to the new participant component | |||
provides information about the location of participants at a given | provides information about the location of participants at a given | |||
time. This information MUST NOT be distributed to other participants | time. This information MUST NOT be distributed to other participants | |||
without those participant's express permission. Note that there may | without those participant's express permission. Note that there may | |||
be a number of participants who may be unaware of their inclusion in | be a number of participants who may be unaware of their inclusion in | |||
the data. | the data. | |||
skipping to change at page 29, line 15 ¶ | skipping to change at line 1218 ¶ | |||
Agents processing and distributing calendar data must be aware that | Agents processing and distributing calendar data must be aware that | |||
it has the property of providing information about a future time when | it has the property of providing information about a future time when | |||
a given individual may be at a particular location, which could | a given individual may be at a particular location, which could | |||
enable targeted attacks against that individual. | enable targeted attacks against that individual. | |||
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 as is | participant component. In general, revealing only as much as is | |||
absolutely necessary should be the approach taken. | absolutely necessary should be the approach taken. | |||
For example, there may be some privacy considerations relating to the | For example, there may be some privacy considerations relating to the | |||
ORDER parameter, as it provides an indication of the organizer's | "ORDER" parameter, as it provides an indication of the organizer's | |||
perception of the relative importance of other participants. | perception of the relative importance of other participants. | |||
11. IANA Considerations | 11. IANA Considerations | |||
11.1. Additional iCalendar Registrations | 11.1. Additional iCalendar Registrations | |||
11.1.1. Properties | 11.1.1. Properties | |||
This document defines the following new iCalendar properties to be | This document defines the following iCalendar properties that have | |||
added to the registry defined in Section 8.2.3 of [RFC5545]: | been added to the "Properties" registry defined in Section 8.2.3 of | |||
[RFC5545]: | ||||
+--------------------+---------+----------------------+ | +====================+=========+=======================+ | |||
| Property | Status | Reference | | | Property | Status | Reference | | |||
+--------------------+---------+----------------------+ | +====================+=========+=======================+ | |||
| CALENDAR-ADDRESS | Current | RFCXXXX, Section 6.4 | | | CALENDAR-ADDRESS | Current | RFC 9073, Section 6.4 | | |||
| LOCATION-TYPE | Current | RFCXXXX, Section 6.1 | | +--------------------+---------+-----------------------+ | |||
| PARTICIPANT-TYPE | Current | RFCXXXX, Section 6.2 | | | LOCATION-TYPE | Current | RFC 9073, Section 6.1 | | |||
| RESOURCE-TYPE | Current | RFCXXXX, Section 6.3 | | +--------------------+---------+-----------------------+ | |||
| STRUCTURED-DATA | Current | RFCXXXX, Section 6.6 | | | PARTICIPANT-TYPE | Current | RFC 9073, Section 6.2 | | |||
| STYLED-DESCRIPTION | Current | RFCXXXX, Section 6.5 | | +--------------------+---------+-----------------------+ | |||
+--------------------+---------+----------------------+ | | RESOURCE-TYPE | Current | RFC 9073, Section 6.3 | | |||
+--------------------+---------+-----------------------+ | ||||
| STRUCTURED-DATA | Current | RFC 9073, Section 6.6 | | ||||
+--------------------+---------+-----------------------+ | ||||
| STYLED-DESCRIPTION | Current | RFC 9073, Section 6.5 | | ||||
+--------------------+---------+-----------------------+ | ||||
Table 1: Additions to the Properties Registry | ||||
11.1.2. Parameters | 11.1.2. Parameters | |||
This document defines the following new iCalendar property parameters | This document defines the following iCalendar property parameters | |||
to be added to the registry defined in Section 8.2.4 of [RFC5545]: | that have been added to the "Parameters" registry defined in | |||
Section 8.2.4 of [RFC5545]: | ||||
+--------------------+---------+----------------------+ | +===========+=========+=======================+ | |||
| Property Parameter | Status | Reference | | | Parameter | Status | Reference | | |||
+--------------------+---------+----------------------+ | +===========+=========+=======================+ | |||
| ORDER | Current | RFCXXXX, Section 5.1 | | | ORDER | Current | RFC 9073, Section 5.1 | | |||
| SCHEMA | Current | RFCXXXX, Section 5.2 | | +-----------+---------+-----------------------+ | |||
+--------------------+---------+----------------------+ | | SCHEMA | Current | RFC 9073, Section 5.2 | | |||
+-----------+---------+-----------------------+ | ||||
| DERIVED | Current | RFC 9073, Section 5.3 | | ||||
+-----------+---------+-----------------------+ | ||||
Table 2: Additions to the Parameters Registry | ||||
11.1.3. Components | 11.1.3. Components | |||
This document defines the following new iCalendar components to be | This document defines the following iCalendar components that have | |||
added to the registry defined in Section 8.3.1 of [RFC5545]: | been added to the "Components" registry defined in Section 8.3.1 of | |||
[RFC5545]: | ||||
+-------------+---------+----------------------+ | +=============+=========+=======================+ | |||
| Component | Status | Reference | | | Component | Status | Reference | | |||
+-------------+---------+----------------------+ | +=============+=========+=======================+ | |||
| PARTICIPANT | Current | RFCXXXX, Section 7.1 | | | PARTICIPANT | Current | RFC 9073, Section 7.1 | | |||
| VLOCATION | Current | RFCXXXX, Section 7.2 | | +-------------+---------+-----------------------+ | |||
| VRESOURCE | Current | RFCXXXX, Section 7.3 | | | VLOCATION | Current | RFC 9073, Section 7.2 | | |||
+-------------+---------+----------------------+ | +-------------+---------+-----------------------+ | |||
| VRESOURCE | Current | RFC 9073, Section 7.3 | | ||||
+-------------+---------+-----------------------+ | ||||
11.2. New Registration Tables | Table 3: Additions to the Components Registry | |||
11.2. Participant Types and Resource Types Registries | ||||
This section defines new registration tables for PARTICIPANT-TYPE and | This section defines new registration tables for PARTICIPANT-TYPE and | |||
RESOURCE-TYPE values. These tables are updated using the same | RESOURCE-TYPE values. These tables are updated using the same | |||
approaches laid down in Section 8.2.1 of [RFC5545] | approaches laid down in Section 8.2.1 of [RFC5545]. | |||
This document creates new IANA registries for participant and | This document creates new IANA registries for participant and | |||
resource types. IANA will maintain these registries and, following | resource types. IANA will maintain these registries and, following | |||
the policies outlined in [RFC8126], new tokens are assigned after | the policies outlined in [RFC8126], new tokens are assigned after | |||
Expert Review. The Expert Reviewer will generally consult the IETF | Expert Review. The Expert Reviewer will generally consult the IETF | |||
GeoPRIV working group mailing list or its designated successor. | GEOPRIV Working Group mailing list or its designated successor. | |||
Updates or deletions of tokens from the registration follow the same | Updates or deletions of tokens from the registration follow the same | |||
procedures. The expert review should be guided by a few common sense | procedures. 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 | |||
new schema element(s) when the update is provided only in the form of | schema element(s) when the update is provided only in the form of a | |||
a token. To ensure widespread usability across protocols, tokens | token. To ensure widespread usability across protocols, tokens MUST | |||
MUST follow the character set restrictions for XML Names [3]. Each | follow the character set restrictions for XML Names | |||
registration must include the name of the token and a brief | [W3C.REC-xml-20040204]. Each registration must include the name of | |||
description similar to the ones offered herein for the initial | the token and a brief description similar to the ones offered herein | |||
registrations contained this document: | for the initial registrations contained this document. | |||
11.2.1. Participant Types | 11.2.1. Participant Types | |||
The following table has been used to initialize the participant types | +===================+=========+=======================+ | |||
registry. | | Participant Type | Status | Reference | | |||
+===================+=========+=======================+ | ||||
| ACTIVE | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| INACTIVE | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| SPONSOR | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| CONTACT | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| BOOKING-CONTACT | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| EMERGENCY-CONTACT | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| PUBLICITY-CONTACT | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| PLANNER-CONTACT | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| PERFORMER | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
| SPEAKER | Current | RFC 9073, Section 6.2 | | ||||
+-------------------+---------+-----------------------+ | ||||
+-------------------+---------+----------------------+ | Table 4: Initial Contents of the Participant Types | |||
| Participant Type | Status | Reference | | Registry | |||
+-------------------+---------+----------------------+ | ||||
| ACTIVE | Current | RFCXXXX, Section 6.2 | | ||||
| INACTIVE | Current | RFCXXXX, Section 6.2 | | ||||
| SPONSOR | Current | RFCXXXX, Section 6.2 | | ||||
| CONTACT | Current | RFCXXXX, Section 6.2 | | ||||
| BOOKING-CONTACT | Current | RFCXXXX, Section 6.2 | | ||||
| EMERGENCY-CONTACT | Current | RFCXXXX, Section 6.2 | | ||||
| PUBLICITY-CONTACT | Current | RFCXXXX, Section 6.2 | | ||||
| PLANNER-CONTACT | Current | RFCXXXX, Section 6.2 | | ||||
| PERFORMER | Current | RFCXXXX, Section 6.2 | | ||||
| SPEAKER | Current | RFCXXXX, Section 6.2 | | ||||
+-------------------+---------+----------------------+ | ||||
11.2.2. Resource Types | 11.2.2. Resource Types | |||
The following table has been used to initialize the resource types | +=========================+=========+=======================+ | |||
registry. | | Resource Type | Status | Reference | | |||
+=========================+=========+=======================+ | ||||
+-------------------------+---------+----------------------+ | | PROJECTOR | Current | RFC 9073, Section 6.3 | | |||
| Resource Type | Status | Reference | | +-------------------------+---------+-----------------------+ | |||
+-------------------------+---------+----------------------+ | | ROOM | Current | RFC 9073, Section 6.3 | | |||
| PROJECTOR | Current | RFCXXXX, Section 6.3 | | +-------------------------+---------+-----------------------+ | |||
| ROOM | Current | RFCXXXX, Section 6.3 | | | REMOTE-CONFERENCE-AUDIO | Current | RFC 9073, Section 6.3 | | |||
| REMOTE-CONFERENCE-AUDIO | Current | RFCXXXX, Section 6.3 | | +-------------------------+---------+-----------------------+ | |||
| REMOTE-CONFERENCE-VIDEO | Current | RFCXXXX, Section 6.3 | | | REMOTE-CONFERENCE-VIDEO | Current | RFC 9073, Section 6.3 | | |||
+-------------------------+---------+----------------------+ | +-------------------------+---------+-----------------------+ | |||
12. Acknowledgements | ||||
The author would like to thank Chuck Norris of eventful.com for his | ||||
work which led to the development of this RFC. | ||||
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: | ||||
Cyrus Daboo, John Haug, Dan Mendell, Ken Murchison, Scott Otis. | Table 5: Initial Contents of the Resource Types Registry | |||
13. Normative References | 12. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile", | ||||
RFC 2426, DOI 10.17487/RFC2426, September 1998, | ||||
<https://www.rfc-editor.org/info/rfc2426>. | ||||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
RFC 3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
<https://www.rfc-editor.org/info/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
[RFC4589] Schulzrinne, H. and H. Tschofenig, "Location Types | [RFC4589] Schulzrinne, H. and H. Tschofenig, "Location Types | |||
Registry", RFC 4589, DOI 10.17487/RFC4589, July 2006, | Registry", RFC 4589, DOI 10.17487/RFC4589, July 2006, | |||
<https://www.rfc-editor.org/info/rfc4589>. | <https://www.rfc-editor.org/info/rfc4589>. | |||
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | ||||
Specifications: ABNF", STD 68, RFC 5234, | ||||
DOI 10.17487/RFC5234, January 2008, | ||||
<https://www.rfc-editor.org/info/rfc5234>. | ||||
[RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and | [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and | |||
Scheduling Core Object Specification (iCalendar)", | Scheduling Core Object Specification (iCalendar)", | |||
RFC 5545, DOI 10.17487/RFC5545, September 2009, | RFC 5545, DOI 10.17487/RFC5545, September 2009, | |||
<https://www.rfc-editor.org/info/rfc5545>. | <https://www.rfc-editor.org/info/rfc5545>. | |||
[RFC5546] Daboo, C., Ed., "iCalendar Transport-Independent | [RFC5546] Daboo, C., Ed., "iCalendar Transport-Independent | |||
Interoperability Protocol (iTIP)", RFC 5546, | Interoperability Protocol (iTIP)", RFC 5546, | |||
DOI 10.17487/RFC5546, December 2009, | DOI 10.17487/RFC5546, December 2009, | |||
<https://www.rfc-editor.org/info/rfc5546>. | <https://www.rfc-editor.org/info/rfc5546>. | |||
[RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, | ||||
DOI 10.17487/RFC6350, August 2011, | ||||
<https://www.rfc-editor.org/info/rfc6350>. | ||||
[RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, | [RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, | |||
DOI 10.17487/RFC7986, October 2016, | DOI 10.17487/RFC7986, October 2016, | |||
<https://www.rfc-editor.org/info/rfc7986>. | <https://www.rfc-editor.org/info/rfc7986>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | |||
Interchange Format", STD 90, RFC 8259, | Interchange Format", STD 90, RFC 8259, | |||
DOI 10.17487/RFC8259, December 2017, | DOI 10.17487/RFC8259, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8259>. | <https://www.rfc-editor.org/info/rfc8259>. | |||
[W3C.REC-html51-20171003] | [W3C.REC-html51-20171003] | |||
Faulkner, S., Eicholz, A., Leithead, T., and A. Danilo, | Faulkner, S., Ed., Eicholz, A., Ed., Leithead, T., Ed., | |||
"HTML 5.1 2nd Edition", World Wide Web Consortium | and A. Danilo, Ed., "HTML 5.1 2nd Edition", World Wide Web | |||
Recommendation REC-html51-20171003, October 2017, | Consortium Recommendation REC-html51-20171003, October | |||
<https://www.w3.org/TR/2017/REC-html51-20171003>. | 2017, <https://www.w3.org/TR/2017/REC-html51-20171003>. | |||
[W3C.REC-xml-20081126] | [W3C.REC-xml-20040204] | |||
Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and | Sperberg-McQueen, M., Maler, E., Bray, T., Paoli, J., and | |||
F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth | F. Yergeau, "Extensible Markup Language (XML) 1.0 (Third | |||
Edition)", World Wide Web Consortium Recommendation REC- | Edition)", World Wide Web Consortium Recommendation REC- | |||
xml-20081126, November 2008, | xml-20040204, February 2004, | |||
<https://www.w3.org/TR/2008/REC-xml-20081126>. | <https://www.w3.org/TR/2004/REC-xml-20040204>. | |||
Appendix A. Open issues | ||||
None at the moment | ||||
Appendix B. Change log | ||||
To be deleted on publication | ||||
calext-v18 2021-??-?? MD | ||||
o Fix incorrect participant type property name in PARTICIPANT. | ||||
o Allow parameters on LOCATION-TYPE. | ||||
calext-v17 2021-01-03 MD | ||||
o Remove STRUCTURED-LOCATION property, add VLOCATION component. | ||||
o Remove STRUCTURED-RESOURCE property, add VRESOURCE component. | ||||
o Make LOCATION-TYPE multi-valued property for location. | ||||
o Make RESOURCE-TYPE multi-valued property for resource. | ||||
o Tidy up abnf. | ||||
calext-v16 2019-10-09 MD | ||||
o Make LOCTYPE multi-valued. | ||||
o Add all ATTENDEE scheduling parameters to CALENDAR-ADDRESS. | ||||
calext-v15 2019-10-08 MD | ||||
o Address various DICUSS points. | ||||
calext-v14 2019-06-11 MD | ||||
o Definition of event and social calendaring. | ||||
o Remove redefinition of SOURCE - use STRUCTURED-DATA. | ||||
calext-v13 2019-05-26 MD | ||||
o Respond to various issues. | ||||
calext-v12 2019-02-28 MD | ||||
o Fix styled-description example. Respond to various AD issues. | ||||
Some typos. | ||||
calext-v11 2019-02-27 MD | ||||
o Add DERIVED parameter for styled-description, RELATED parameter | ||||
for structured-location | ||||
calext-v09 2018-08-30 MD | ||||
o Sorted out inconsistencies in refs to 5546 | ||||
calext-v08 2018-07-06 MD | ||||
o Add some text for equal ORDER values | ||||
o Switched scheduleaddress to calendaraddress in participant abnf. | ||||
Also added more properties | ||||
o Fixed PARTICIPANT abnf | ||||
calext-v04 2017-10-11 MD | ||||
o Change SCHEDULE-ADDRESS to CALENDAR-ADDRESS | ||||
o Explicitly broaden scope of SOURCE | ||||
o Add initial registry for RESTYPE and move new tables into separate | ||||
section. | ||||
o Fix PARTTYPE/PARTICIPANT-TYPE inconsistency | ||||
calext-v03 2017-10-09 MD | ||||
o Mostly typographical and other minor changes | ||||
calext-v02 2017-04-20 MD | ||||
o Add SCHEDULE-ADDRESS property | ||||
o PARTICIPANT becomes a component rather than a property. Turn many | ||||
of the former parameters into properties. | ||||
o Use existing ATTENDEE property for scheduling. | ||||
calext-v01 2017-02-18 MD | ||||
o Change ASSOCIATE back to PARTICIPANT | ||||
o PARTICIPANT becomes a component rather than a property. Turn many | ||||
of the former parameters into properties. | ||||
calext-v00 2016-08-?? MD | ||||
o Name changed - taken up by calext working group | ||||
v06 2016-06-26 MD | ||||
o Fix up abnf | ||||
o change ref to ietf from daboo | ||||
o take out label spec - use Cyrus spec | ||||
v05 2016-06-14 MD | ||||
o Remove GROUP and HASH. they can be dealt with elsewhere if desired | ||||
o Change ORDER to integer >= 1. | ||||
o Incorporate Structured-Data into this specification. | ||||
v04 2014-02-01 MD | ||||
o Added updates attribute. | ||||
o Minor typos. | ||||
o Resubmitted mostly to refresh the draft. | ||||
v03 2013-03-06 MD | ||||
o Replace PARTICIPANT with ASSOCIATE plus related changes. | ||||
o Added section showing modifications to components. | ||||
o Replace ID with GROUP and modify HASH. | ||||
o Replace TITLE param with LABEL. | ||||
o Fixed STYLED-DESCRIPTION in various ways, correct example. | ||||
v02 2012-11-02 MD | ||||
o Collapse sections with description of properties and the use cases | ||||
into a section with sub-sections. | ||||
o New section to describe relating properties. | ||||
o Remove idref and upgrade hash to have the reference | ||||
o No default value types on properties.. | ||||
v01 2012-10-18 MD Many changes. | ||||
o SPONSOR and STRUCTURED-CONTACT are now in PARTICIPANT | ||||
o Add a STRUCTURED-RESOURCE property | ||||
o STYLED-DESCRIPTION to handle rich text | ||||
o Much more... | ||||
2011-01-07 | [W3C.REC-xml-20081126] | |||
Bray, T., Ed., Paoli, J., Ed., Sperberg-McQueen, M., Ed., | ||||
Maler, E., Ed., and F. Yergeau, Ed., "Extensible Markup | ||||
Language (XML) 1.0 (Fifth Edition)", World Wide Web | ||||
Consortium Recommendation REC-xml-20081126, November 2008, | ||||
<https://www.w3.org/TR/2008/REC-xml-20081126>. | ||||
o Remove MEDIA - it's going in the Cyrus RFC | Acknowledgements | |||
o Rename EXTENDED-... to STRUCTURED-... | The author would like to thank Chuck Norris of eventful.com for his | |||
work, which led to the development of this RFC. | ||||
o Add TYPE parameter to SPONSOR | 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: | ||||
v00 2007-10-19 MD Initial version | Cyrus Daboo, John Haug, Dan Mendell, Ken Murchison, and Scott Otis. | |||
Author's Address | Author's Address | |||
Michael Douglass | Michael Douglass | |||
Bedework | Bedework | |||
226 3rd Street | 226 3rd Street | |||
Troy, NY 12180 | Troy, NY 12180 | |||
USA | United States of America | |||
Email: mdouglass@bedework.com | Email: mdouglass@bedework.com | |||
URI: http://bedework.com | URI: http://bedework.com | |||
End of changes. 224 change blocks. | ||||
859 lines changed or deleted | 726 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/ |