draft-ietf-calext-eventpub-extensions-12.txt   draft-ietf-calext-eventpub-extensions-13.txt 
Network Working Group M. Douglass Network Working Group M. Douglass
Internet-Draft Spherical Cow Group Internet-Draft Spherical Cow Group
Updates: 5545 (if approved) April 8, 2019 Updates: 5545,7986 (if approved) May 26, 2019
Intended status: Standards Track Intended status: Standards Track
Expires: October 10, 2019 Expires: November 27, 2019
Event Publishing Extensions to iCalendar Event Publishing Extensions to iCalendar
draft-ietf-calext-eventpub-extensions-12 draft-ietf-calext-eventpub-extensions-13
Abstract Abstract
This specification updates RFC5545 by introducing a number of new This specification updates RFC5545 by introducing a number of new
iCalendar properties and components which are of particular use for iCalendar properties and components which 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 RFC5545 to allow for data that is directly pertinent to an
event or task to be included with the calendar data. event or task to be included with the calendar data.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 10, 2019. This Internet-Draft will expire on November 27, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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 . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Conventions Used in This Document . . . . . . . . . . . . 4 1.1. Conventions Used in This Document . . . . . . . . . . . . 3
2. Components and properties . . . . . . . . . . . . . . . . . . 4 2. Components and properties . . . . . . . . . . . . . . . . . . 3
3. Typed References . . . . . . . . . . . . . . . . . . . . . . 5 3. Typed References . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1. Piano Concert Performance . . . . . . . . . . . . . . 6 3.1.1. Piano Concert Performance . . . . . . . . . . . . . . 5
3.1.2. Itineraries . . . . . . . . . . . . . . . . . . . . . 6 3.1.2. Itineraries . . . . . . . . . . . . . . . . . . . . . 5
3.1.2.1. Reserving facilities . . . . . . . . . . . . . . 6 3.1.2.1. Reserving facilities . . . . . . . . . . . . . . 5
4. Modifications to Calendar Components . . . . . . . . . . . . 6 4. Modifications to Calendar Components . . . . . . . . . . . . 6
5. New Property Parameters . . . . . . . . . . . . . . . . . . . 8 5. New Property Parameters . . . . . . . . . . . . . . . . . . . 7
5.1. Loctype . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.1. Loctype . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2. Restype . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2. Restype . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3. Order . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.3. Order . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.4. Schema . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.4. Schema . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.5. Derived . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.5. Derived . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. Redefined Property SOURCE . . . . . . . . . . . . . . . . . . 11 6. Redefined Property SOURCE . . . . . . . . . . . . . . . . . . 10
7. New Properties . . . . . . . . . . . . . . . . . . . . . . . 12 7. New Properties . . . . . . . . . . . . . . . . . . . . . . . 12
7.1. Participant Type . . . . . . . . . . . . . . . . . . . . 12 7.1. Participant Type . . . . . . . . . . . . . . . . . . . . 12
7.2. Calendar Address . . . . . . . . . . . . . . . . . . . . 14 7.2. Calendar Address . . . . . . . . . . . . . . . . . . . . 14
7.3. Styled-Description . . . . . . . . . . . . . . . . . . . 15 7.3. Styled-Description . . . . . . . . . . . . . . . . . . . 15
7.4. Structured-Location . . . . . . . . . . . . . . . . . . . 17 7.4. Structured-Location . . . . . . . . . . . . . . . . . . . 17
7.5. Structured-Resource . . . . . . . . . . . . . . . . . . . 18 7.5. Structured-Resource . . . . . . . . . . . . . . . . . . . 19
7.6. Structured-Data . . . . . . . . . . . . . . . . . . . . . 20 7.6. Structured-Data . . . . . . . . . . . . . . . . . . . . . 20
8. New Components . . . . . . . . . . . . . . . . . . . . . . . 22 8. New Components . . . . . . . . . . . . . . . . . . . . . . . 23
8.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 23 8.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 23
8.2. Schedulable Participant . . . . . . . . . . . . . . . . . 25 8.2. Schedulable Participant . . . . . . . . . . . . . . . . . 25
9. Extended examples . . . . . . . . . . . . . . . . . . . . . . 26 9. Extended examples . . . . . . . . . . . . . . . . . . . . . . 26
9.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 26 9.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 26
9.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 26 9.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 26
10. Security Considerations . . . . . . . . . . . . . . . . . . . 27 10. Security Considerations . . . . . . . . . . . . . . . . . . . 27
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27 11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28
12.1. Additional iCalendar Registrations . . . . . . . . . . . 28 12.1. Additional iCalendar Registrations . . . . . . . . . . . 28
12.1.1. Properties . . . . . . . . . . . . . . . . . . . . . 28 12.1.1. Properties . . . . . . . . . . . . . . . . . . . . . 28
skipping to change at page 3, line 26 skipping to change at page 3, line 26
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 non-standard properties as defined in [RFC5545]
section 3.8.8.2. section 3.8.8.2.
This document updates [RFC5545] to define a number of properties and This document updates [RFC5545] to define a number of properties and
a component referencing such external information that can provide a component 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 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 are likely to be most useful between servers). Formats such as VCARD [RFC2426] are likely to be
to the receivers of such events as they may be used in other most useful to the receivers of such events as they may be used in
applications - such as address books. other applications - such as address books.
This specification defines a new PARTICIPANT component. Many people
or groups may participate in an event. This component provides
detailed information. Such participants may act as attendees to the
event (or derived events) or may just provide a reference - perhaps
for mailing lists.
Additionally this specification defines a new use for the RELATED
parameter to allow locations to be defined as the start and/or end
location of a component.
The following properties are defined in this specification
STYLED-DESCRIPTION: Supports rich-text descriptions, for example
HTML. Event publishers typically wish to provide more and better
formatted information about the event.
STRUCTURED-LOCATION: There may be a number of locations associated
with an event. This provides detailed information about the
location.
STRUCTURED-RESOURCE: Events need resources such as rooms,
projectors, conferencing capabilities.
STRUCTURED-DATA: The existing properties in iCalendar cover key
elements of events and tasks such as start time, end time,
location, summary, etc. However, different types of events often
have other specific "fields" that it is useful to include in the
calendar data. For example, an event representing an airline
flight could include the airline, flight number, departure and
arrival airport codes, check-in and gate-closing times etc. As
another example, a sporting event might contain information about
the type of sport, the home and away teams, the league the teams
are in, information about nearby parking, etc.
PARTICIPANT-TYPE: Used in the PARTICIPANT component to define the
type.
CALENDAR-ADDRESS: Used in the PARTICIPANT component to provide the
calendar address of the participant.
In addition the SOURCE property defined in [RFC7986] is redefined to
allow VALUE=TEXT and broaden its usage.
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 BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
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 introduces one of In a break with this 'tradition' this specification defines
these extensions as a component rather than a property. This is a PARTICIPANT as a component rather than a property. This is a better
better match for the way [W3C.REC-xml-20081126] and JSON, [RFC8259] match for the way [W3C.REC-xml-20081126] and JSON [RFC8259] handle
handles such structures and allows richer definitions. such 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
component and resolves some of the problems of trying to add detailed component and resolves some of the problems of trying to add detailed
information as a parameter. information as a parameter.
Many people or groups may participate in an event. The PARTICIPANT
component provides such detailed information. Participants may act
as attendees to the event (or derived events) or may just provide a
reference - perhaps for mailing lists.
3. Typed References 3. Typed References
The properties defined here can all reference external meta-data The properties defined here can all reference external meta-data
which may be used by applications to provide enhanced value to users. which may be used by applications to provide enhanced value to users.
By providing type information as parameters, clients and servers are By providing type information as parameters, clients and servers are
able to discover interesting references and make use of them, perhaps able to discover interesting references and make use of them, perhaps
for indexing or the presenting of additional related information for for indexing or the presenting of additional related information for
the user. the user.
The [RFC5545] LOCATION property provides only an unstructured single The [RFC5545] LOCATION property provides only an unstructured single
skipping to change at page 6, line 18 skipping to change at page 5, line 26
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 iTip [RFC5546] meeting request for the piano tuner
who will arrive before the performance. Other members of staff may who will arrive before the performance. Other members of staff may
also receive meeting requests. 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 VCARD
information about the performer. This event would also hold [RFC2426] information about the performer. This event would also
information about parking, local subway stations and the venue hold information about parking, local subway stations and the venue
itself. In addition, there will be sponsorship information for itself. In addition, there will 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 car hire
businesses at the destination. businesses at the destination.
skipping to change at page 8, line 5 skipping to change at page 7, line 9
; and MAY occur more than once. ; and MAY occur more than once.
; ;
styleddescription / sdataprop styleddescription / sdataprop
; ;
) )
freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF freebusyc = "BEGIN" ":" "VFREEBUSY" CRLF
fbprop *participantc fbprop *participantc
"END" ":" "VFREEBUSY" CRLF "END" ":" "VFREEBUSY" CRLF
fbprop =/ *(
;
; The following are OPTIONAL,
; and MAY occur more than once.
;
styleddescription
;
)
5. New Property Parameters 5. New Property Parameters
This specification makes use of the LABEL parameter which is defined This specification makes use of the LABEL parameter which is defined
in [RFC7986] in [RFC7986]
5.1. Loctype 5.1. Loctype
Parameter name: LOCTYPE Parameter name: LOCTYPE
Purpose: To specify the type of location. Purpose: To specify the type of location.
skipping to change at page 8, line 47 skipping to change at page 8, line 13
Format Definition: Format Definition:
This parameter is defined by the following notation: This parameter is defined by the following notation:
restypeparam = "RESTYPE" "=" restypevalue CRLF restypeparam = "RESTYPE" "=" restypevalue CRLF
restypevalue = ("ROOM" restypevalue = ("ROOM"
/ "PROJECTOR" / "PROJECTOR"
/ "REMOTE-CONFERENCE-AUDIO" / "REMOTE-CONFERENCE-AUDIO"
/ "REMOTE-CONFERENCE-VIDEO" / "REMOTE-CONFERENCE-VIDEO"
/ x-name ; Experimental status
/ iana-token) ; Other IANA-registered / iana-token) ; Other IANA-registered
; values ; values
Description: This parameter MAY be specified on STRUCTURED-RESOURCE Description: This parameter MAY be specified on STRUCTURED-RESOURCE
and provides a way to differentiate multiple properties. and provides a way to differentiate multiple properties.
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.
skipping to change at page 9, line 35 skipping to change at page 8, line 46
Format Definition: Format Definition:
This parameter is defined by the following notation: This parameter is defined by the following notation:
orderparam = "ORDER" "=" integer ;Must be greater than or equal to 1 orderparam = "ORDER" "=" integer ;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 indicate
the relative ordering of the corresponding instance of a property. the relative ordering of the corresponding instance of a property.
Its value MUST be an integer greater than or equal to 1 that Its value MUST be an integer greater than or equal to 1 that
quantifies the order with 1 being the first in the ordering. 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 at the lowest level of ordering, that property instance as being at the lowest level of ordering, that
is, the property will appear after any other instances of the same is, the property will appear after any other instances of the same
property with any value of ORDER. property with 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 associated
properties appear as a group within which there is no defined properties appear as a group within which there is no defined
order. 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. A given value, or the the same property in the same entity.
absence of a value, MUST NOT be interpreted on its own.
This parameter MAY be applied to any property that allows multiple This parameter MUST NOT be applied to a property that does not
instances. allow multiple instances.
Example uses: The ORDER may be applied to the PARTICIPANT-TYPE
property to indicate the relative importance of the participant,
for example as a sponsor or a performer. For example, ORDER=1
could define the principal performer or soloist.
5.4. Schema 5.4. Schema
Parameter Name: SCHEMA Parameter Name: SCHEMA
Purpose: To specify the schema used for the content of a Purpose: To specify the schema used for the content of a
"STRUCTURED-DATA" property value. "STRUCTURED-DATA" property value.
Format Definition: Format Definition:
skipping to change at page 11, line 20 skipping to change at page 10, line 35
DERIVED=TRUE:<html>... DERIVED=TRUE:<html>...
6. Redefined Property SOURCE 6. Redefined Property SOURCE
The SOURCE property defined in [RFC7986] is redefined to allow The SOURCE property defined in [RFC7986] is redefined to allow
VALUE=TEXT and broaden its usage to any component. VALUE=TEXT and broaden its usage to any component.
Property name: SOURCE Property name: SOURCE
Purpose: This property provides a reference to information about a Purpose: This property provides a reference to information about a
component such as a participant possibly as a vcard or optionally component such as a participant. For example, that information
a plain text typed value. may be a vcard or a plain text typed value.
Value type: The default value type for this property is URI. The For value type URI and embedded in a VEVENT or VTODO it may
value type can also be set to TEXT to indicate plain text content. provide a location from which the compoent may be refreshed.
Value type: There is no default value type for this property. It
may be set to URI as in [RFC7986]. The value type can also be set
to TEXT to indicate plain text content.
Property Parameters: Non-standard or format type parameters can be Property Parameters: Non-standard or format type parameters can be
specified on this property. specified on this property.
Conformance: This property MAY appear in any iCalendar component. Conformance: This property can be specified once in an iCalendar
object.
Description: This property provides information about the component Description: This property provides information about the component
in which it appears. in which it appears.
In a resource or participant it may provide a reference to a vcard In a PARTICIPANT component it may provide a reference to a vcard
giving directory information. giving directory information.
In a VCALENDAR component this property identifies a location where In a VCALENDAR component this property identifies a location where
a client can retrieve updated data for the calendar. Clients a client can retrieve updated data for the calendar. Clients
SHOULD honor any specified "REFRESH-INTERVAL" value when SHOULD honor any specified "REFRESH-INTERVAL" value when
periodically retrieving data. Note that this property differs periodically retrieving data. Note that this property differs
from the "URL" property in that "URL" is meant to provide an from the "URL" property in that "URL" is meant to provide an
alternative representation of the calendar data rather than the alternative representation of the calendar data rather than the
original location of the data. original location of the data.
skipping to change at page 13, line 8 skipping to change at page 12, line 24
Property name: PARTICIPANT-TYPE Property name: PARTICIPANT-TYPE
Purpose: To specify the type of participant. Purpose: To specify 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: Non-standard parameters can be specified on
this property. this property.
Conformance: This property MUST be specified within a PARTICIPANT Conformance: This property MUST be specified once within a
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 parameter is defined by the following notation: This property is defined by the following notation:
participanttype = "PARTICIPANT-TYPE" "=" partvalue CRLF participanttype = "PARTICIPANT-TYPE" partvalueparam ":"
partvalue CRLF
partvalue = ("ACTIVE" partvalue = ("ACTIVE"
/ "INACTIVE" / "INACTIVE"
/ "SPONSOR" / "SPONSOR"
/ "CONTACT" / "CONTACT"
/ "BOOKING-CONTACT" / "BOOKING-CONTACT"
/ "EMERGENCY-CONTACT" / "EMERGENCY-CONTACT"
/ "PUBLICITY-CONTACT" / "PUBLICITY-CONTACT"
/ "PLANNER-CONTACT" / "PLANNER-CONTACT"
/ "PERFORMER" / "PERFORMER"
/ "SPEAKER" / "SPEAKER"
/ x-name ; Experimental status
/ iana-token) ; Other IANA-registered / iana-token) ; Other IANA-registered
; values ; values
partvalueparam = *(
; the following is OPTIONAL
; and MAY occur more than once
;
(";" other-param)
)
Example: Example:
The following is an example of this property: 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
skipping to change at page 14, line 39 skipping to change at page 14, line 31
Property name: CALENDAR-ADDRESS Property name: CALENDAR-ADDRESS
Purpose: To specify the calendar address for a participant. Purpose: To specify the calendar address for a participant.
Value type: CAL-ADDRESS Value type: CAL-ADDRESS
Property Parameters: IANA or non-standard property parameters can be Property Parameters: IANA or non-standard property parameters can be
specified on this property. specified on this property.
Conformance: This property MAY be specified within a PARTICIPANT Conformance: This property MAY be specified once within a
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 value
then the participant is schedulable. then the participant is schedulable.
Format Definition: Format Definition:
This parameter is defined by the following notation: This property is defined by the following notation:
calendaraddress = "CALENDAR-ADDRESS" "=" cal-address calendaraddress = "CALENDAR-ADDRESS" caladdressparam ":"
cal-address CRLF
caladdressparam = *(
; the following is OPTIONAL
; and MAY occur more than once
;
(";" other-param)
)
7.3. Styled-Description 7.3. 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, non-standard, id, alternate text Property Parameters: IANA, non-standard, id, alternate text
representation, format type, derived and language property representation, format type, derived and language property
parameters can be specified on this property. parameters can be specified on this property.
Conformance: The property can be specified multiple times in the Conformance: The property can be specified multiple times in the
"VEVENT", "VTODO", "VJOURNAL", "PARTICIPANT", or "VALARM" calendar "VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", "PARTICIPANT", or
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 property
then the DESCRIPTION property should be either absent or have the then the DESCRIPTION property should be either absent or have the
parameter DERIVED=TRUE. parameter DERIVED=TRUE.
Description: This property is used in the "VEVENT" and "VTODO" to Description: This property supports rich-text descriptions, for
capture lengthy textual descriptions associated with the activity. example HTML. Event publishers typically wish to provide more and
This property is used in the "VJOURNAL" calendar component to better formatted information about the event.
capture one or more textual journal entries. This property is
used in the "VALARM" calendar component to capture the display This property is used in the "VEVENT" and "VTODO" to capture
text for a DISPLAY category of alarm, and to capture the body text lengthy textual descriptions associated with the activity. This
for an EMAIL category of alarm. In the PARTICIPANT component it property is used in the "VJOURNAL" calendar component to capture
provides a detailed description of the participant. one or more textual journal entries. This property is used in the
"VALARM" calendar component to capture the display text for a
DISPLAY category of alarm, and to capture the body text for an
EMAIL category of alarm. In the PARTICIPANT component 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.
skipping to change at page 16, line 18 skipping to change at page 16, line 24
Multiple STYLED-DESCRIPTION properties may be used to provide Multiple STYLED-DESCRIPTION properties may be used to provide
different formats or different language variants. However all but different formats or different language variants. However all but
one MUST have DERIVED=TRUE. one MUST have DERIVED=TRUE.
Format Definition: Format Definition:
This property is defined by the following notation: This property is defined by the following notation:
styleddescription = "STYLED-DESCRIPTION" styleddescparam ":" styleddescription = "STYLED-DESCRIPTION" styleddescparam ":"
( styleddescval CRLF
(
";" "VALUE" "=" "URI"
":" uri
) /
(
";" "VALUE" "=" "TEXT"
":" text
)
)
CRLF
styleddescparam = *( styleddescparam = *(
; The following is REQUIRED,
; but MUST NOT occur more than once.
;
(";" "VALUE" "=" ("URI" / "TEXT")) /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
(";" altrepparam) / (";" languageparam) / (";" altrepparam) / (";" languageparam) /
(";" fmttypeparam) / (";" derivedparam) / (";" fmttypeparam) / (";" derivedparam) /
; ;
; the following is OPTIONAL ; the following is OPTIONAL
; and MAY occur more than once ; and MAY occur more than once
; ;
(";" other-param) (";" other-param)
) )
styleddescval = ( uri / text )
;Value MUST match value type
Example: Example:
The following is an example of this property. It points to an html The following is an example of this property. It points to an html
description. description.
STYLED-DESCRIPTION;VALUE=URI:http://example.org/desc001.html STYLED-DESCRIPTION;VALUE=URI:http://example.org/desc001.html
7.4. Structured-Location 7.4. Structured-Location
Property name: STRUCTURED-LOCATION Property name: STRUCTURED-LOCATION
skipping to change at page 17, line 22 skipping to change at page 17, line 27
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. value type can be set to URI or TEXT.
Property Parameters: IANA, non-standard, label, loctype, related or Property Parameters: IANA, non-standard, label, loctype, related or
format type parameters can be specified on this property. format type parameters can be specified on this property.
Conformance: This property MAY be specified zero or more times in Conformance: This property MAY be specified zero or more times in
any iCalendar component. any iCalendar component.
Description: When used in a component the value of this property Description: There may be a number of locations associated with an
provides information about the event venue or of related services event. This provides detailed information about these locations.
such as parking, dining, stations etc..
When a LABEL parameter is supplied the language of the label must When used in a component the value of this property provides
match that of the content and of the LANGUAGE parameter if information about the event venue or of related services such as
parking, dining, stations etc..
When a LABEL parameter is supplied the language of the label
SHOULD match that of the content and of the LANGUAGE parameter if
present. present.
Use of the related parameter: This allows a location to define the Use of the related parameter: This allows a location to define the
start and/or end timezone of the associated component. If a start and/or end timezone of the associated component. If a
location is specified with a RELATED parameter then the affected location is specified with a RELATED parameter then the affected
DTSTART or DTEND properties MUST be specified as floating DATE- DTSTART or DTEND properties MUST be specified as floating DATE-
TIME value. TIME value.
If the RELATED parameter is present with a value of START, then If the RELATED parameter is present with a value of START, then
the "DTSTART" property MUST be present in the associated "VEVENT" the "DTSTART" property MUST be present in the associated "VEVENT"
skipping to change at page 18, line 9 skipping to change at page 18, line 17
present in the associated "VTODO" calendar component. present in the associated "VTODO" calendar component.
If there is a location specified with RELATED=START and no If there is a location specified with RELATED=START and no
location is specified with RELATED=END then the event is assumed location is specified with RELATED=END then the event is assumed
to start and end in the same timezone. to start and end in the same timezone.
Format Definition: Format Definition:
This property is defined by the following notation: This property is defined by the following notation:
strucloc = "STRUCTURED-LOCATION" struclocparam strucloc = "STRUCTURED-LOCATION" struclocparam ":"
( struclocval CRLF
(
";" "VALUE" "=" "URI"
":" uri
) /
(
";" "VALUE" "=" "TEXT"
":" text
)
)
CRLF
struclocparam = *( struclocparam = *(
; The following is REQUIRED,
; but MUST NOT occur more than once.
;
(";" "VALUE" "=" ("URI" / "TEXT")) /
; ;
; the following are OPTIONAL ; the following are OPTIONAL
; but MUST NOT occur more than once ; but MUST NOT occur more than once
; ;
(";" fmttypeparam) / (";" fmttypeparam) /
(";" labelparam) / (";" labelparam) /
(";" languageparam) / (";" languageparam) /
(";" trigrelparam) / (";" trigrelparam) /
(";" loctypeparam) / (";" loctypeparam) /
; ;
; the following is OPTIONAL ; the following is OPTIONAL
; and MAY occur more than once ; and MAY occur more than once
; ;
(";" other-param) (";" other-param)
) )
struclocval = ( uri / text )
;Value MUST match value type
Example: Example:
The following is an example of this property. It points to a venue. The following is an example of this property. It points to a venue.
STRUCTURED-LOCATION;LABEL="The venue"; STRUCTURED-LOCATION;LABEL="The venue";
VALUE=URI: VALUE=URI:
http://dir.example.com/venues/big-hall.vcf http://dir.example.com/venues/big-hall.vcf
7.5. Structured-Resource 7.5. Structured-Resource
skipping to change at page 19, line 15 skipping to change at page 19, line 20
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 or
used by a calendar entity and possibly has a directory entry. used by a calendar entity and possibly has a directory entry.
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. value type can be set to URI or TEXT.
Property Parameters: IANA, non-standard, label, restype or format Property Parameters: IANA, non-standard, label, restype or format
type parameters can be specified on this property. type parameters can be specified on this property.
Conformance: This property MAY be specified zero or more times in Conformance: The property can be specified multiple times in the
any iCalendar component. "VEVENT" or "VTODO" calendar components.
Description: When used in a component the value of this property Description: When used in a component the value of this property
provides information about resources used for the event. provides information about resources used for the event such as
rooms, projectors, conferencing capabilities.
Such resources may be a room or a projector. This RESTYPE value Such resources may be a room or a projector. This RESTYPE value
registry provides a place in which resource types may be registry provides a place in which resource types may be
registered for use by scheduling sevices. registered for use by scheduling sevices.
When a LABEL parameter is supplied the language of the label must When a LABEL parameter is supplied the language of the label must
match that of the content and of the LANGUAGE parameter if match that of the content and of the LANGUAGE parameter if
present. present.
Format Definition: Format Definition:
This property is defined by the following notation: This property is defined by the following notation:
strucres = "STRUCTURED-RESOURCE" strucresparam / strucres = "STRUCTURED-RESOURCE" strucresparam ":"
( strucresval CRLF
(
";" "VALUE" "=" "URI"
":" uri
) /
(
";" "VALUE" "=" "TEXT"
":" text
)
)
CRLF
strucresparam = *( strucresparam = *(
; The following is REQUIRED,
; but MUST NOT occur more than once.
;
(";" "VALUE" "=" ("URI" / "TEXT")) /
; ;
; the following are OPTIONAL ; the following are OPTIONAL
; but MUST NOT occur more than once ; but MUST NOT occur more than once
; ;
(";" fmttypeparam) / (";" fmttypeparam) /
(";" labelparam) / (";" labelparam) /
(";" languageparam) / (";" languageparam) /
(";" restypeparam) / (";" restypeparam) /
; ;
; the following is OPTIONAL ; the following is OPTIONAL
; and MAY occur more than once ; and MAY occur more than once
; ;
(";" other-param) (";" other-param)
) )
strucewaval = ( uri / text )
;Value MUST match value type
Example: Example:
The following is an example of this property. It refers to a The following is an example of this property. It refers to a
projector. projector.
STRUCTURED-RESOURCE;value=uri;restype="projector": STRUCTURED-RESOURCE;value=uri;restype="projector":
http://dir.example.com/projectors/3d.vcf http://dir.example.com/projectors/3d.vcf
7.6. Structured-Data 7.6. Structured-Data
skipping to change at page 21, line 4 skipping to change at page 20, line 49
http://dir.example.com/projectors/3d.vcf http://dir.example.com/projectors/3d.vcf
7.6. Structured-Data 7.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: TEXT, BINARY or URI Value Type: TEXT, BINARY or URI
Property Parameters: IANA, non-standard, inline encoding, and value Property Parameters: IANA, non-standard, inline encoding, and value
data type property parameters can be specified on this property. data type property parameters can be specified on this property.
The format type and schema parameters can be specified on this The format type and schema parameters can be specified on this
property and are RECOMMENDED for text or inline binary encoded property and are RECOMMENDED for text or inline binary encoded
content information. 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", iCalendar object. Typically it would be used in "VEVENT",
"VTODO", or "VJOURNAL" calendar components. "VTODO", or "VJOURNAL" calendar components.
Description: This property is used to specify ancillary data in some Description: The existing properties in iCalendar cover key elements
structured format either directly (inline) as a "TEXT" or "BINARY" of events and tasks such as start time, end time, location,
value, or as a link via a "URI" value. summary, etc. However, different types of events often have other
specific "fields" that it is useful to include in the calendar
data. For example, an event representing an airline flight could
include the airline, flight number, departure and arrival airport
codes, check-in and gate-closing times etc. As another example, a
sporting event might contain information about the type of sport,
the home and away teams, the league the teams are in, information
about nearby parking, etc.
This property is used to specify ancillary data in some structured
format either directly (inline) as a "TEXT" or "BINARY" value, or
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 non-calendaring 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
skipping to change at page 23, line 4 skipping to change at page 23, line 6
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
8. New Components 8. New Components
8.1. Participant 8.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 MAY appear in any iCalendar component. Conformance: This component can be specified multiple times in a
"VEVENT", "VTODO", "VJOURNAL", or "VFREEBUSY" calendar component.
Description: This component provides information about an Description: This component provides information about a participant
participant in an event, task or poll. A participant may be an in an event, task or poll. A participant may be an attendee in a
attendee in a scheduling sense and the ATTENDEE property may be scheduling sense and the ATTENDEE property may be specified in
specified in addition. Participants in events can be individuals addition. Participants in events can be individuals or
or organizations, for example a soccer team, the spectators, or organizations, for example a soccer team, the spectators, or the
the musicians. musicians.
The SOURCE property if present may refer to an external definition The SOURCE property if present may refer to an external definition
of the participant - such as a vcard. of the participant - such as a vcard.
The CALENDAR-ADDRESS property if present will provide a cal- The CALENDAR-ADDRESS property if present will provide a cal-
address. If an ATTENDEE property has the same value the address. If an ATTENDEE property has the same value the
participant is considered schedulable. The PARTICIPANT component participant is considered schedulable. The PARTICIPANT component
can be used to contain additional meta-data related to the can be used to contain additional meta-data related to the
attendee. attendee.
Format Definition: Format Definition:
This property is defined by the following notation: This component is defined by the following notation:
participantc = "BEGIN" ":" "PARTICIPANT" CRLF participantc = "BEGIN" ":" "PARTICIPANT" CRLF
partprop partprop
"END" ":" "PARTICIPANT" CRLF "END" ":" "PARTICIPANT" CRLF
partprop = *( partprop = *(
; ;
; The following are REQUIRED, ; The following are REQUIRED,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
dtstamp / participanttype / dtstamp / participanttype / uid /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
created / description / last-mod / priority / seq / created / description / geo / last-mod / priority / seq /
source / status / calendaraddress / summary / url / source / status / calendaraddress / summary / url /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; and MAY occur more than once. ; and MAY occur more than once.
; ;
attach / categories / comment / attach / categories / comment /
contact / location / rstatus / related / contact / location / rstatus / related /
resources / strucloc / strucres / styleddescription / resources / strucloc / strucres / styleddescription /
x-prop / iana-prop iana-prop
; ;
) )
Note: When the PRIORITY is supplied it defines the ordering of Note: When the PRIORITY is supplied it defines the ordering of
PARTICIPANT components with the same value for the TYPE parameter. PARTICIPANT components with the same value for the TYPE parameter.
Privacy Issues: When a LOCATION is supplied it provides information Privacy Issues: When a LOCATION is supplied it provides information
about the location of a participant at a given time or times. about the location of a participant at a given time or times.
This may represent an unacceptable privacy risk for some This may represent an unacceptable privacy risk for some
participants. User agents MUST NOT include this information participants. User agents MUST NOT include this information
without informing the participant. without informing the participant.
skipping to change at page 28, line 7 skipping to change at page 28, line 7
explicit instruction from users. This specification does not explicit instruction from users. This specification does not
introduce any additional privacy concerns beyond those described in introduce any additional privacy concerns beyond those described in
[RFC5545]. [RFC5545].
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. time.
12. IANA Considerations 12. IANA Considerations
This section defines updates to the tables defined in [RFC5545] and
new tables.
12.1. Additional iCalendar Registrations 12.1. Additional iCalendar Registrations
12.1.1. Properties 12.1.1. Properties
This document defines the following new iCalendar properties to be This document defines the following new iCalendar properties to be
added to the registry defined in Section 8.2.3 of [RFC5545]: added to the registry defined in Section 8.2.3 of [RFC5545]:
+---------------------+---------+----------------------+ +---------------------+---------+----------------------+
| Property | Status | Reference | | Property | Status | Reference |
+---------------------+---------+----------------------+ +---------------------+---------+----------------------+
skipping to change at page 29, line 8 skipping to change at page 29, line 8
+-------------+---------+----------------------+ +-------------+---------+----------------------+
| Component | Status | Reference | | Component | Status | Reference |
+-------------+---------+----------------------+ +-------------+---------+----------------------+
| PARTICIPANT | Current | RFCXXXX, Section 8.1 | | PARTICIPANT | Current | RFCXXXX, Section 8.1 |
+-------------+---------+----------------------+ +-------------+---------+----------------------+
12.2. New Registration Tables 12.2. New Registration Tables
This section defines new registration tables for PARTICIPANT-TYPE and This section defines new registration tables for PARTICIPANT-TYPE and
RESTYPE values. These tables may be updated using the same RESTYPE values. These tables are updated using the same approaches
approaches laid down in Section 8.2.1 of [RFC5545] laid down in Section 8.2.1 of [RFC5545]
12.2.1. Participant Types 12.2.1. Participant Types
The following table has been used to initialize the participant types The following table has been used to initialize the participant types
registry. registry.
+-------------------+---------+----------------------+ +-------------------+---------+----------------------+
| Participant Type | Status | Reference | | Participant Type | Status | Reference |
+-------------------+---------+----------------------+ +-------------------+---------+----------------------+
| ACTIVE | Current | RFCXXXX, Section 7.1 | | ACTIVE | Current | RFCXXXX, Section 7.1 |
skipping to change at page 30, line 7 skipping to change at page 30, line 7
13. Acknowledgements 13. Acknowledgements
The author would like to thank Chuck Norris of eventful.com for his The author would like to thank Chuck Norris of eventful.com for his
work which led to the development of this RFC. work which led to the development of this RFC.
The author would also like to thank the members of CalConnect, The The author would also like to thank the members of CalConnect, The
Calendaring and Scheduling Consortium, the Event Publication Calendaring and Scheduling Consortium, the Event Publication
technical committee and the following individuals for contributing technical committee and the following individuals for contributing
their ideas and support: their ideas and support:
Cyrus Daboo, John Haug, Dan Mendell, Ken Murchison, Scott Otis, Cyrus Daboo, John Haug, Dan Mendell, Ken Murchison, Scott Otis.
14. References 14. References
14.1. Normative References 14.1. 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>.
[RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and
skipping to change at page 31, line 31 skipping to change at page 31, line 36
"IANA iCalendar Element Registries", "IANA iCalendar Element Registries",
<https://www.iana.org/assignments/icalendar/ <https://www.iana.org/assignments/icalendar/
icalendar.xhtml>. icalendar.xhtml>.
Appendix A. Open issues Appendix A. Open issues
None at the moment None at the moment
Appendix B. Change log Appendix B. Change log
calext-v13 2019-05-26 MD
o Respond to various issues.
calext-v12 2019-02-28 MD calext-v12 2019-02-28 MD
o Fix styled-description example. Respond to various AD issues. o Fix styled-description example. Respond to various AD issues.
Some typos. Some typos.
calext-v11 2019-02-27 MD calext-v11 2019-02-27 MD
o Add DERIVED parameter for styled-description, RELATED parameter o Add DERIVED parameter for styled-description, RELATED parameter
for structured-location for structured-location
 End of changes. 60 change blocks. 
189 lines changed or deleted 202 lines changed or added

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