< draft-ietf-calext-eventpub-extensions-04.txt   draft-ietf-calext-eventpub-extensions-05.txt >
Network Working Group M. Douglass Network Working Group M. Douglass
Internet-Draft Spherical Cow Group Internet-Draft Spherical Cow Group
Updates: 5545,5546 (if approved) October 10, 2017 Updates: 5545,5546 (if approved) October 11, 2017
Intended status: Standards Track Intended status: Standards Track
Expires: April 13, 2018 Expires: April 14, 2018
Event Publishing Extensions to iCalendar Event Publishing Extensions to iCalendar
draft-ietf-calext-eventpub-extensions-04 draft-ietf-calext-eventpub-extensions-05
Abstract Abstract
This specification introduces a number of new iCalendar properties This specification introduces a number of new iCalendar properties
and components which are of particular use for event publishers and and components which are of particular use for event publishers and
in social networking. 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 iCalendar [RFC5545] to allow for data that is directly pertinent to
an event or task to be included with the calendar data. an 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 April 13, 2018. This Internet-Draft will expire on April 14, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
skipping to change at page 2, line 16 skipping to change at page 2, line 16
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 . . . . . . . . . . . . 4
2. Components and properties . . . . . . . . . . . . . . . . . . 4 2. Components and properties . . . . . . . . . . . . . . . . . . 4
3. Typed References . . . . . . . . . . . . . . . . . . . . . . 4 3. Typed References . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1. Piano Concert Performance . . . . . . . . . . . . . . 5 3.1.1. Piano Concert Performance . . . . . . . . . . . . . . 5
3.1.2. Itineraries . . . . . . . . . . . . . . . . . . . . . 5 3.1.2. Itineraries . . . . . . . . . . . . . . . . . . . . . 6
4. Modifications to Calendar Components . . . . . . . . . . . . 6 4. Modifications to Calendar Components . . . . . . . . . . . . 6
5. New Property Parameters . . . . . . . . . . . . . . . . . . . 7 5. New Property Parameters . . . . . . . . . . . . . . . . . . . 7
5.1. Loctype . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.1. Loctype . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2. Restype . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2. Restype . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.3. Order . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.3. Order . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.4. Schema . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.4. Schema . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. New Properties . . . . . . . . . . . . . . . . . . . . . . . 10 6. Redefined Property SOURCE . . . . . . . . . . . . . . . . . . 10
6.1. Participant Type . . . . . . . . . . . . . . . . . . . . 10 7. New Properties . . . . . . . . . . . . . . . . . . . . . . . 11
6.2. Schedule Address . . . . . . . . . . . . . . . . . . . . 10 7.1. Participant Type . . . . . . . . . . . . . . . . . . . . 11
6.3. Styled-Description . . . . . . . . . . . . . . . . . . . 11 7.2. Calendar Address . . . . . . . . . . . . . . . . . . . . 12
6.4. Structured-Location . . . . . . . . . . . . . . . . . . . 12 7.3. Styled-Description . . . . . . . . . . . . . . . . . . . 12
6.5. Structured-Resource . . . . . . . . . . . . . . . . . . . 14 7.4. Structured-Location . . . . . . . . . . . . . . . . . . . 14
6.6. Source . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.5. Structured-Resource . . . . . . . . . . . . . . . . . . . 16
6.7. Structured-Data . . . . . . . . . . . . . . . . . . . . . 18 7.6. Structured-Data . . . . . . . . . . . . . . . . . . . . . 17
7. New Components . . . . . . . . . . . . . . . . . . . . . . . 20 8. New Components . . . . . . . . . . . . . . . . . . . . . . . 19
7.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 20 8.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 20
7.2. Schedulable Participant . . . . . . . . . . . . . . . . . 22 8.2. Schedulable Participant . . . . . . . . . . . . . . . . . 22
8. Participant Types . . . . . . . . . . . . . . . . . . . . . . 22 9. Participant Types . . . . . . . . . . . . . . . . . . . . . . 22
9. Extended examples . . . . . . . . . . . . . . . . . . . . . . 23 10. Resource Types . . . . . . . . . . . . . . . . . . . . . . . 23
9.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 23 11. Extended examples . . . . . . . . . . . . . . . . . . . . . . 23
9.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 24 11.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . 24
10. Security Considerations . . . . . . . . . . . . . . . . . . . 25 11.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . 24
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 25 12. Security Considerations . . . . . . . . . . . . . . . . . . . 25
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 13. Privacy Considerations . . . . . . . . . . . . . . . . . . . 25
12.1. Property Registrations . . . . . . . . . . . . . . . . . 25 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
12.2. Parameter Registrations . . . . . . . . . . . . . . . . 26 14.1. Additional iCalendar Registrations . . . . . . . . . . . 26
12.3. Component Registrations . . . . . . . . . . . . . . . . 26 14.1.1. Property Registrations . . . . . . . . . . . . . . . 26
12.4. Participant Types Registry . . . . . . . . . . . . . . . 26 14.1.2. Parameter Registrations . . . . . . . . . . . . . . 26
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27 14.1.3. Component Registrations . . . . . . . . . . . . . . 26
14. Normative References . . . . . . . . . . . . . . . . . . . . 27 14.2. New Registration Tables . . . . . . . . . . . . . . . . 27
14.2.1. Participant Types Registry . . . . . . . . . . . . . 27
14.2.2. Resource Types Registry . . . . . . . . . . . . . . 27
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27
16. Normative References . . . . . . . . . . . . . . . . . . . . 28
Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 28 Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 28
Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 28 Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 29
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 31
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 meta-data 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
skipping to change at page 3, line 25 skipping to change at page 3, line 27
This document defines a number of properties and a component This document defines a number of properties and a component
referencing such external information that can provide additional referencing such external information that can provide additional
information about an iCalendar component. The intent is to allow information about an iCalendar component. The intent is to allow
interchange of such information between applications or systems interchange of such information between applications or systems
(e.g., between clients, between client and server, and between (e.g., between clients, between client and server, and between
servers). Formats such as VCARD are likely to be most useful to the servers). Formats such as VCARD are likely to be most useful to the
receivers of such events as they may be used in other applications - receivers of such events as they may be used in other applications -
such as address books. 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.
The following properties are defined in this specification The following properties are defined in this specification
STYLED-DESCRIPTION: Supports HTML descriptions. Event publishers STYLED-DESCRIPTION: Supports HTML descriptions. Event publishers
typically wish to provide more and better formatted information typically wish to provide more and better formatted information
about the event. about the event.
STRUCTURED-LOCATION: There may be a number of locations associated STRUCTURED-LOCATION: There may be a number of locations associated
with an event. This provides detailed information about the with an event. This provides detailed information about the
location. location.
skipping to change at page 3, line 49 skipping to change at page 4, line 9
elements of events and tasks such as start time, end time, elements of events and tasks such as start time, end time,
location, summary, etc. However, different types of events often location, summary, etc. However, different types of events often
have other specific "fields" that it is useful to include in the have other specific "fields" that it is useful to include in the
calendar data. For example, an event representing an airline calendar data. For example, an event representing an airline
flight could include the airline, flight number, departure and flight could include the airline, flight number, departure and
arrival airport codes, check-in and gate-closing times etc. As arrival airport codes, check-in and gate-closing times etc. As
another example, a sporting event might contain information about another example, a sporting event might contain information about
the type of sport, the home and away teams, the league the teams the type of sport, the home and away teams, the league the teams
are in, information about nearby parking, etc. are in, information about nearby parking, etc.
In addition this specification defines a new PARTICIPANT component. PARTICIPANT-TYPE: Used in the PARTICIPANT component to define the
Many people or groups may participate in an event. This component type.
provides detailed information. Such participants may act as
attendees to the event (or derived events) or may just provide a CALENDAR-ADDRESS: Used in the PARTICIPANT component to provide the
reference - perhaps for mailing lists. 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 "OPTIONAL" in this document are to be interpreted as described in
[RFC2119]. [RFC2119].
2. Components and properties 2. Components and properties
skipping to change at page 8, line 41 skipping to change at page 8, line 41
Format Definition: Format Definition:
This parameter is defined by the following notation: This parameter is defined by the following notation:
restypeparam = "RESTYPE" "=" param-value restypeparam = "RESTYPE" "=" param-value
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.
Values for this parameter are taken from the values defined in the The allowable values are defined in Section 10 New resource types
registry. New resource types SHOULD be registered in the manner SHOULD be registered in the manner laid down in this specification
laid down in this specification
5.3. Order 5.3. Order
Parameter name: ORDER Parameter name: ORDER
Purpose: To define ordering for the associated property. Purpose: To define ordering for the associated property.
Format Definition: Format Definition:
This parameter is defined by the following notation: This parameter is defined by the following notation:
skipping to change at page 10, line 5 skipping to change at page 10, line 5
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:Zm9vYmFy ENCODING=BASE64;VALUE=BINARY:Zm9vYmFy
6. New Properties 6. Redefined Property SOURCE
6.1. Participant Type The SOURCE property defined in [RFC7986] is redefined to allow
VALUE=TEXT and broaden its usage to any component.
Property name: SOURCE
Purpose: This property provides a reference to information about a
component such as a participant possibly as a vcard or optionally
a plain text typed value.
Value type: The default value type for this property is URI. The
value type can also be set to TEXT to indicate plain text content.
Property Parameters: Non-standard or format type parameters can be
specified on this property.
Conformance: This property MAY be appear in any iCalendar component.
Description: This property provides information about the component
in which it appears.
In a resource or participant it may provide a reference to a vcard
giving directory information.
In a VCALENDAR component this property identifies a location where
a client can retrieve updated data for the calendar. Clients
SHOULD honor any specified "REFRESH-INTERVAL" value when
periodically retrieving data. Note that this property differs
from the "URL" property in that "URL" is meant to provide an
alternative representation of the calendar data rather than the
original location of the data.
In a calendar entity component such as an event the SOURCE
property may provide a reference to the original source of the
event. This may be used by aggregators to provide a link back.
Format Definition:
This property is defined by the following notation:
source = "SOURCE" sourceparam
(
(
";" "VALUE" "=" "URI"
":" uri
) /
(
";" "VALUE" "=" "TEXT"
":" text
)
)
CRLF
sourceparam = *(
;
; the following are OPTIONAL
; but MUST NOT occur more than once
;
(";" fmttypeparam) /
;
; the following is OPTIONAL
; and MAY occur more than once
;
(";" other-param)
;
)
Example:
The following is an example referring to a VCARD.
SOURCE;FMTTYPE=text/vcard;VALUE=URL:
http://dir.example.com/vcard/contacts/contact1.vcf
7. New Properties
7.1. Participant Type
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 in Section 8. values are defined in Section 9.
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 within a PARTICIPANT
component. 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 parameter is defined by the following notation:
participanttype = "PARTICIPANT-TYPE" "=" iana-token participanttype = "PARTICIPANT-TYPE" "=" iana-token
6.2. Schedule Address 7.2. Calendar Address
Property name: SCHEDULE-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 within a PARTICIPANT
component. 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 parameter is defined by the following notation:
scheduleaddress = "SCHEDULE-ADDRESS" "=" cal-address calendaraddress = "CALENDAR-ADDRESS" "=" cal-address
6.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 or augment that provided by the descriptions to replace or augment that provided by the
DESCRIPTION property. 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
skipping to change at page 12, line 46 skipping to change at page 14, line 41
(";" other-param) (";" other-param)
) )
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
6.4. Structured-Location 7.4. Structured-Location
Property name: STRUCTURED-LOCATION Property name: STRUCTURED-LOCATION
Purpose: This property provides a typed reference to external Purpose: This property provides a typed reference to external
information about the location of an event or optionally a plain information about the location of an event or optionally a plain
text typed value. text typed value.
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 or format Property Parameters: IANA, non-standard, label, loctype or format
type parameters can be specified on this property. type parameters can be specified on this property.
skipping to change at page 14, line 43 skipping to change at page 16, line 12
(";" other-param) (";" other-param)
) )
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":
http://dir.example.com/venues/big-hall.vcf http://dir.example.com/venues/big-hall.vcf
6.5. Structured-Resource 7.5. Structured-Resource
Property name: STRUCTURED-RESOURCE Property name: STRUCTURED-RESOURCE
Purpose: This property provides a typed reference to external Purpose: This property 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. value.
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.
skipping to change at page 16, line 44 skipping to change at page 17, line 44
) )
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;restype="projector": STRUCTURED-RESOURCE;restype="projector":
http://dir.example.com/projectors/3d.vcf http://dir.example.com/projectors/3d.vcf
6.6. Source 7.6. Structured-Data
Property name: SOURCE
Purpose: This property provides a reference to information about a
component such as a participant possibly as a vcard or optionally
a plain text typed value.
Value type: The default value type for this property is URI. The
value type can also be set to TEXT to indicate plain text content.
Property Parameters: Non-standard or format type parameters can be
specified on this property.
Conformance: This property MAY be appear in any iCalendar component.
Description: This property provides information about the component
in which it appears. It may provide a reference to a vcard giving
directory information about a resource or participant.
Format Definition:
This property is defined by the following notation:
source = "SOURCE" sourceparam
(
(
";" "VALUE" "=" "URI"
":" uri
) /
(
";" "VALUE" "=" "TEXT"
":" text
)
)
CRLF
sourceparam = *(
;
; the following are OPTIONAL
; but MUST NOT occur more than once
;
(";" fmttypeparam) /
;
; the following is OPTIONAL
; and MAY occur more than once
;
(";" other-param)
;
)
Example:
The following is an example referring to a VCARD.
SOURCE;FMTTYPE=text/vcard;
http://dir.example.com/vcard/contacts/contact1.vcf
6.7. 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.
skipping to change at page 20, line 14 skipping to change at page 19, line 47
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 8. New Components
8.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 optionally a plain text typed value. an event or optionally a plain text typed value.
Conformance: This component MAY be appear in any iCalendar Conformance: This component MAY be appear in any iCalendar
component. component.
Description: This component provides information about an Description: This component provides information about an
skipping to change at page 21, line 43 skipping to change at page 21, line 43
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.
Example: Example:
The following is an example of this component. It contains a SOURCE The following is an example of this component. It contains a SOURCE
property which points to a VCARD providing information about the property which points to a VCARD providing information about the
event participant. event participant.
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTTYPE:PRINCIPAL_PERFORMER PARTICIPANT-TYPE:PRINCIPAL_PERFORMER
SOURCE:http://dir.example.com/vcard/aviolinist.vcf SOURCE: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 BEGIN: PARTICIPANT
SOURCE;FMTTYPE=text/vcard; SOURCE;FMTTYPE=text/vcard;
http://dir.example.com/vcard/contacts/contact1.vcf http://dir.example.com/vcard/contacts/contact1.vcf
PARTTYPE:PRIMARY-CONTACT PARTICIPANT-TYPE:PRIMARY-CONTACT
DESCRIPTION:A contact: DESCRIPTION:A contact:
END:PARTICIPANT END:PARTICIPANT
7.2. Schedulable Participant 8.2. Schedulable Participant
A PARTICIPANT component may represent someone or something that needs A PARTICIPANT component may represent someone or something that needs
to be scheduled as defined for ATTENDEE in [RFC5545] and [RFC5546]. to be scheduled as defined for ATTENDEE in [RFC5545] and [RFC5546].
The PARTICIPANT component may also represent someone or something The PARTICIPANT component may also represent someone or something
that is NOT to receive scheduling messages. that is NOT to receive scheduling messages.
A PARTICIPANT component is defined to be schedulable if A PARTICIPANT component is defined to be schedulable if
o It contains a SCHEDULE-ADDRESS property o It contains a CALENDAR-ADDRESS property
o That property value is the same as the value for an ATTENDEE o 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 the
value of the URL property will take part in scheduling operations as value of the URL property will take part in scheduling operations as
defined in [RFC5546]. defined in [RFC5546].
An appropriate use for the PARTICIPANT component in scheduling would An appropriate use for the PARTICIPANT component in scheduling would
be to store SEQUENCE and DTSTAMP properties associated with replies be to store SEQUENCE and DTSTAMP properties associated with replies
from each ATTENDEE. A LOCATION property within the PARTICIPANT from each ATTENDEE. A LOCATION property within the PARTICIPANT
component might allow better selection of meeting times when component might allow better selection of meeting times when
participants are in different timezones. participants are in different timezones.
8. Participant Types 9. Participant Types
This section describes types of participation and provides registered This section describes types of participation and provides registered
values for the PARTTYPE property. values for the PARTICIPANT-TYPE property.
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 part - for example an INACTIVE: A participant taking an inactive part - 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.
skipping to change at page 23, line 24 skipping to change at page 23, line 24
PLANNER-CONTACT: Contact for the event planner or organizer PLANNER-CONTACT: Contact for the event planner or organizer
PERFORMER: A performer - for example the soloist or the accompanist. PERFORMER: A performer - for example the soloist or the accompanist.
The ORDER parameter may be used with this participant type to The ORDER parameter may be used with this participant type to
define the relative order of multiple performers. For example, define the relative order of multiple performers. For example,
ORDER=1 could define the principal performer or soloist. ORDER=1 could define the principal performer or soloist.
SPEAKER: Speaker at an event SPEAKER: Speaker at an event
9. Extended examples 10. Resource Types
This section describes some initial resource types registered values
for the RESTYPE parameter. Typically a resource is anything that
might be required or used by a calendar entity and possibly has a
directory entry.
Such resources may be a room or a projector. This registry provides
a place in which such resources may be registered for use by
scheduling sevices.
ROOM: A room for he event/meeting.
PROJECTOR: Projection equipment.
REMOTE-CONFERENCE-AUDIO: Audio remote conferencing facilities.
REMOTE-CONFERENCE-VIDEO: Video remote conferencing facilities.
11. 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.
9.1. Example 1 11.1. Example 1
The following is an example of a VEVENT describing a concert. It The following is an example of a VEVENT describing a concert. It
includes location information for the venue itself as well as 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:20170216T145739Z CREATED:20170216T145739Z
DESCRIPTION: Piano Sonata No 3\n DESCRIPTION: Piano Sonata No 3\n
Piano Sonata No 30 Piano Sonata No 30
DTSTAMP:20171116T145739Z DTSTAMP:20171116T145739Z
DTSTART;TZID=America/New_York:20170315T150000Z DTSTART;TZID=America/New_York:20170315T150000Z
skipping to change at page 24, line 25 skipping to change at page 24, line 28
LAST-MODIFIED:20170216T145739Z LAST-MODIFIED:20170216T145739Z
SUMMARY:Beethoven Piano Sonatas SUMMARY:Beethoven Piano Sonatas
UID:123456 UID:123456
STRUCTURED-LOCATION;LABEL="The venue": STRUCTURED-LOCATION;LABEL="The venue":
http://dir.example.com/venues/big-hall.vcf http://dir.example.com/venues/big-hall.vcf
STRUCTURED-LOCATION;LABEL="The venue": STRUCTURED-LOCATION;LABEL="The venue":
http://dir.example.com/venues/parking.vcf http://dir.example.com/venues/parking.vcf
IMAGE;VALUE=URI;DISPLAY=BADGE;FMTTYPE=image/png:h IMAGE;VALUE=URI;DISPLAY=BADGE;FMTTYPE=image/png:h
ttp://example.com/images/concert.png ttp://example.com/images/concert.png
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTTYPE:SPONSOR PARTICIPANT-TYPE:SPONSOR
SOURCE:http://example.com/sponsor.vcf SOURCE:http://example.com/sponsor.vcf
END:PARTICIPANT END:PARTICIPANT
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTTYPE:PERFORMER: PARTICIPANT-TYPE:PERFORMER:
SOURCE:http://www.example.com/people/johndoe.vcf SOURCE:http://www.example.com/people/johndoe.vcf
END:PARTICIPANT END:PARTICIPANT
END:VEVENT END:VEVENT
9.2. Example 2 11.2. Example 2
The following is an example of a VEVENT describing a meeting. One of The following is an example of a VEVENT describing a meeting. One of
the attendees is a remote participant. the attendees is a remote participant.
BEGIN:VEVENT BEGIN:VEVENT
CREATED:20170216T145739Z CREATED:20170216T145739Z
DTSTAMP:20101116T145739Z DTSTAMP:20101116T145739Z
DTSTART;TZID=America/New_York:20170315T150000Z DTSTART;TZID=America/New_York:20170315T150000Z
DTEND;TZID=America/New_York:20170315T163000Z DTEND;TZID=America/New_York:20170315T163000Z
LAST-MODIFIED:20170216T145739Z LAST-MODIFIED:20170216T145739Z
SUMMARY:Conference plaaning SUMMARY:Conference plaaning
UID:123456 UID:123456
ORGANIZER:mailto:a@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com ATTENDEE;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
ATTENDEE;RSVP=TRUE;CN=B:mailto:b@example.com ATTENDEE;RSVP=TRUE;CN=B:mailto:b@example.com
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTTYPE:ACTIVE: PARTICIPANT-TYPE:ACTIVE:
SOURCE:http://www.example.com/people/b.vcf SOURCE:http://www.example.com/people/b.vcf
LOCATION:At home LOCATION:At home
END:PARTICIPANT END:PARTICIPANT
END:VEVENT END:VEVENT
10. Security Considerations 12. Security Considerations
Applications using these properties need to be aware of the risks Applications using these properties need to be aware of the risks
entailed in using the URIs provided as values. See [RFC3986] for a entailed in using the URIs provided as values. See [RFC3986] for a
discussion of the security considerations relating to URIs. discussion of the security considerations relating to URIs.
Security considerations relating to the "ATTACH" property, as Security considerations relating to the "ATTACH" property, as
described in [RFC5545], are applicable to the "STRUCTURED-DATA" described in [RFC5545], are applicable to the "STRUCTURED-DATA"
property. property.
11. Privacy Considerations 13. Privacy Considerations
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. Clients leaks as any network access of the URI data can be tracked. Clients
SHOULD NOT automatically download data referenced by the URI without SHOULD NOT automatically download data referenced by the URI without
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].
12. IANA Considerations 14. IANA Considerations
12.1. Property Registrations This section defines updates to the tables defined in [RFC5545] and
new tables.
14.1. Additional iCalendar Registrations
14.1.1. Property Registrations
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 |
+---------------------+---------+----------------------+ +---------------------+---------+----------------------+
| PARTTYPE | Current | RFCXXXX, Section 6.1 | | CALENDAR-ADDRESS | Current | RFCXXXX, Section 7.2 |
| SCHEDULE-ADDRESS | Current | RFCXXXX, Section 6.2 | | PARTICIPANT-TYPE | Current | RFCXXXX, Section 7.1 |
| STRUCTURED-DATA | Current | RFCXXXX, Section 6.7 | | SOURCE | Current | RFCXXXX, Section 6 |
| STYLED-DESCRIPTION | Current | RFCXXXX, Section 6.3 | | STRUCTURED-DATA | Current | RFCXXXX, Section 7.6 |
| STRUCTURED-LOCATION | Current | RFCXXXX, Section 6.4 | | STYLED-DESCRIPTION | Current | RFCXXXX, Section 7.3 |
| STRUCTURED-RESOURCE | Current | RFCXXXX, Section 6.5 | | STRUCTURED-LOCATION | Current | RFCXXXX, Section 7.4 |
| SOURCE | Current | RFCXXXX, Section 6.6 | | STRUCTURED-RESOURCE | Current | RFCXXXX, Section 7.5 |
+---------------------+---------+----------------------+ +---------------------+---------+----------------------+
12.2. Parameter Registrations 14.1.2. Parameter Registrations
This document defines the following new iCalendar property parameters This document defines the following new iCalendar property parameters
to be added to the registry defined in Section 8.2.4 of [RFC5545]: to be added to the registry defined in Section 8.2.4 of [RFC5545]:
+--------------------+---------+----------------------+ +--------------------+---------+----------------------+
| Property Parameter | Status | Reference | | Property Parameter | Status | Reference |
+--------------------+---------+----------------------+ +--------------------+---------+----------------------+
| LOCTYPE | Current | RFCXXXX, Section 5.1 | | LOCTYPE | Current | RFCXXXX, Section 5.1 |
| ORDER | Current | RFCXXXX, Section 5.3 | | ORDER | Current | RFCXXXX, Section 5.3 |
| RESTYPE | Current | RFCXXXX, Section 5.2 | | RESTYPE | Current | RFCXXXX, Section 5.2 |
| SCHEMA | Current | RFCXXXX, Section 5.4 | | SCHEMA | Current | RFCXXXX, Section 5.4 |
+--------------------+---------+----------------------+ +--------------------+---------+----------------------+
12.3. Component Registrations 14.1.3. Component Registrations
This document defines the following new iCalendar components to be This document defines the following new iCalendar components to be
added to the registry defined in Section 8.3.1 of [RFC5545]: added to the registry defined in Section 8.3.1 of [RFC5545]:
+-------------+---------+----------------------+ +-------------+---------+----------------------+
| Component | Status | Reference | | Component | Status | Reference |
+-------------+---------+----------------------+ +-------------+---------+----------------------+
| PARTICIPANT | Current | RFCXXXX, Section 7.1 | | PARTICIPANT | Current | RFCXXXX, Section 8.1 |
+-------------+---------+----------------------+ +-------------+---------+----------------------+
12.4. Participant Types Registry 14.2. New Registration Tables
This section defines new registration tables for PARTICIPANT-TYPE and
RESTYPE values. These tables maybe updated using the same approaches
laid down in Section 8.2.1 of [RFC5545]
14.2.1. Participant Types Registry
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 8 | | ACTIVE | Current | RFCXXXX, Section 9 |
| INACTIVE | Current | RFCXXXX, Section 8 | | INACTIVE | Current | RFCXXXX, Section 9 |
| SPONSOR | Current | RFCXXXX, Section 8 | | SPONSOR | Current | RFCXXXX, Section 9 |
| CONTACT | Current | RFCXXXX, Section 8 | | CONTACT | Current | RFCXXXX, Section 9 |
| BOOKING-CONTACT | Current | RFCXXXX, Section 8 | | BOOKING-CONTACT | Current | RFCXXXX, Section 9 |
| EMERGENCY-CONTACT | Current | RFCXXXX, Section 8 | | EMERGENCY-CONTACT | Current | RFCXXXX, Section 9 |
| PUBLICITY-CONTACT | Current | RFCXXXX, Section 8 | | PUBLICITY-CONTACT | Current | RFCXXXX, Section 9 |
| PLANNER-CONTACT | Current | RFCXXXX, Section 8 | | PLANNER-CONTACT | Current | RFCXXXX, Section 9 |
| PERFORMER | Current | RFCXXXX, Section 8 | | PERFORMER | Current | RFCXXXX, Section 9 |
| SPEAKER | Current | RFCXXXX, Section 8 | | SPEAKER | Current | RFCXXXX, Section 9 |
+-------------------+---------+--------------------+ +-------------------+---------+--------------------+
13. Acknowledgements 14.2.2. Resource Types Registry
The following table has been used to initialize the resource types
registry.
+-------------------------+---------+---------------------+
| Resource Type | Status | Reference |
+-------------------------+---------+---------------------+
| PROJECTOR | Current | RFCXXXX, Section 10 |
| ROOM | Current | RFCXXXX, Section 10 |
| REMOTE-CONFERENCE-AUDIO | Current | RFCXXXX, Section 10 |
| REMOTE-CONFERENCE-VIDEO | Current | RFCXXXX, Section 10 |
+-------------------------+---------+---------------------+
15. 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. Normative References 16. 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>.
[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>.
skipping to change at page 28, line 23 skipping to change at page 28, line 48
[W3C.REC-xml-20060816] [W3C.REC-xml-20060816]
Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and
F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fourth F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fourth
Edition)", World Wide Web Consortium Recommendation REC- Edition)", World Wide Web Consortium Recommendation REC-
xml-20060816, August 2006, xml-20060816, August 2006,
<http://www.w3.org/TR/2006/REC-xml-20060816>. <http://www.w3.org/TR/2006/REC-xml-20060816>.
Appendix A. Open issues Appendix A. Open issues
restype values: Need to determine what if any registry of resource None at the moment
types already exists and use that or define one here.
SOURCE property: Already defined in 7986. Should I recast this as
an extension of that property. Allows VALUE=TEXT and use in other
than a calendar.
Appendix B. Change log Appendix B. Change log
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/PARTICPANT-TYPE inconsistency
calext-v03 2017-10-09 MD
o Mostly typographical and other minor changes
calext-v02 2017-04-20 MD calext-v02 2017-04-20 MD
o Add SCHEDULE-ADDRESS property o Add SCHEDULE-ADDRESS property
o PARTICIPANT becomes a component rather than a property. Turn many o PARTICIPANT becomes a component rather than a property. Turn many
of the former parameters into properties. of the former parameters into properties.
o Use existing ATTENDEE property for scheduling. o Use existing ATTENDEE property for scheduling.
calext-v01 2017-02-18 MD calext-v01 2017-02-18 MD
 End of changes. 49 change blocks. 
156 lines changed or deleted 239 lines changed or added

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