draft-ietf-calext-eventpub-extensions-14.txt   draft-ietf-calext-eventpub-extensions-15.txt 
Network Working Group M. Douglass Network Working Group M. Douglass
Internet-Draft Spherical Cow Group Internet-Draft Spherical Cow Group
Updates: 5545,7986 (if approved) August 2, 2019 Updates: 5545 (if approved) October 8, 2019
Intended status: Standards Track Intended status: Standards Track
Expires: February 3, 2020 Expires: April 10, 2020
Event Publishing Extensions to iCalendar Event Publishing Extensions to iCalendar
draft-ietf-calext-eventpub-extensions-14 draft-ietf-calext-eventpub-extensions-15
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 February 3, 2020. This Internet-Draft will expire on April 10, 2020.
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
skipping to change at page 2, line 40 skipping to change at page 2, line 40
6.4. Structured-Location . . . . . . . . . . . . . . . . . . . 16 6.4. Structured-Location . . . . . . . . . . . . . . . . . . . 16
6.5. Structured-Resource . . . . . . . . . . . . . . . . . . . 18 6.5. Structured-Resource . . . . . . . . . . . . . . . . . . . 18
6.6. Structured-Data . . . . . . . . . . . . . . . . . . . . . 19 6.6. Structured-Data . . . . . . . . . . . . . . . . . . . . . 19
7. New Components . . . . . . . . . . . . . . . . . . . . . . . 22 7. New Components . . . . . . . . . . . . . . . . . . . . . . . 22
7.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 22 7.1. Participant . . . . . . . . . . . . . . . . . . . . . . . 22
7.2. Schedulable Participant . . . . . . . . . . . . . . . . . 24 7.2. Schedulable Participant . . . . . . . . . . . . . . . . . 24
8. Extended examples . . . . . . . . . . . . . . . . . . . . . . 25 8. Extended examples . . . . . . . . . . . . . . . . . . . . . . 25
8.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 25 8.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 25 8.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 25
9. Security Considerations . . . . . . . . . . . . . . . . . . . 26 9. Security Considerations . . . . . . . . . . . . . . . . . . . 26
10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 26 10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27
11.1. Additional iCalendar Registrations . . . . . . . . . . . 27 11.1. Additional iCalendar Registrations . . . . . . . . . . . 27
11.1.1. Properties . . . . . . . . . . . . . . . . . . . . . 27 11.1.1. Properties . . . . . . . . . . . . . . . . . . . . . 27
11.1.2. Parameters . . . . . . . . . . . . . . . . . . . . . 27 11.1.2. Parameters . . . . . . . . . . . . . . . . . . . . . 27
11.1.3. Components . . . . . . . . . . . . . . . . . . . . . 27 11.1.3. Components . . . . . . . . . . . . . . . . . . . . . 28
11.2. New Registration Tables . . . . . . . . . . . . . . . . 28 11.2. New Registration Tables . . . . . . . . . . . . . . . . 28
11.2.1. Participant Types . . . . . . . . . . . . . . . . . 28 11.2.1. Participant Types . . . . . . . . . . . . . . . . . 28
11.2.2. Resource Types . . . . . . . . . . . . . . . . . . . 28 11.2.2. Resource Types . . . . . . . . . . . . . . . . . . . 28
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 29
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 29
13.1. Normative References . . . . . . . . . . . . . . . . . . 29 13.1. Normative References . . . . . . . . . . . . . . . . . . 29
13.2. Informative References . . . . . . . . . . . . . . . . . 30 13.2. Informative References . . . . . . . . . . . . . . . . . 30
Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 30 Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 30
Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 30 Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 30
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 33 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 33
1. Introduction 1. Introduction
The currently existing iCalendar standard [RFC5545] lacks useful The currently existing iCalendar standard [RFC5545] lacks useful
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 [RFC2426] are likely to be between servers). Formats such as vCard [RFC2426] are likely to be
most useful to the receivers of such events as they may be used in most useful to the receivers of such events as they may be used in
other applications - such as address books. other applications - such as address books.
1.1. Conventions Used in This Document 1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in 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.
skipping to change at page 5, line 37 skipping to change at page 5, line 37
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
[RFC2426] information about the performer. This event would also [RFC2426] information about the performer. This event would also
hold information about parking, local subway stations and the venue hold information about parking, local subway stations and the venue
itself. In addition, there may be sponsorship information for itself. In addition, there may be sponsorship information for
sponsors of the event and perhaps paid sponsorship properties sponsors of the event and perhaps paid sponsorship properties
essentially advertising local establishments. essentially advertising local establishments.
3.1.2. Itineraries 3.1.2. Itineraries
These additions also provide opportunities for the travel industry. These additions also provide opportunities for the travel industry.
When booking a flight the PARTICIPANT component can be used to When booking a flight the PARTICIPANT component can be used to
provide references to businesses at the airports and to car hire provide references to businesses at the airports and to car hire
businesses at the destination. businesses at the destination.
The embedded location information can guide the traveller at the The embedded location information can guide the traveler at the
airport or to their final destination. The contact information can airport or to their final destination. The contact information can
provide detailed information about the booking agent, the airlines, provide detailed information about the booking agent, the airlines,
car hire companies and the hotel. car hire companies and the hotel.
3.1.2.1. Reserving facilities 3.1.2.1. Reserving facilities
For a meeting, the size of a room and the equipment needed depends to For a meeting, the size of a room and the equipment needed depends to
some extent on the number of attendees actually in the room. some extent on the number of attendees actually in the room.
A meeting may have 10 attendees none of which are co-located. The A meeting may have 10 attendees none of which are co-located. The
skipping to change at page 7, line 50 skipping to change at page 7, line 50
This parameter is defined by the following notation: This parameter is defined by the following notation:
loctypeparam = "LOCTYPE" "=" param-value loctypeparam = "LOCTYPE" "=" param-value
Description: This parameter MAY be specified on STRUCTURED-LOCATION Description: This parameter MAY be specified on STRUCTURED-LOCATION
and provides a way to differentiate multiple properties. For and provides a way to differentiate multiple properties. For
example, it allows event producers to provide location information example, it allows event producers to provide location information
for the venue and the parking. for the venue and the parking.
Values for this parameter are taken from the values defined in Values for this parameter are taken from the values defined in
[RFC4589]. New location types SHOULD be registered in the manner [RFC4589] section 3. New location types SHOULD be registered in
laid down in that specification. the manner laid down in section 5 of that specification.
5.2. Restype 5.2. Restype
Parameter name: RESTYPE Parameter name: RESTYPE
Purpose: To specify the type of resource. Purpose: To specify the type of resource.
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 18, line 29 skipping to change at page 18, line 29
Conformance: The property can be specified multiple times in the Conformance: The property can be specified multiple times in the
"VEVENT" or "VTODO" calendar components. "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 such as provides information about resources used for the event such as
rooms, projectors, conferencing capabilities. 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 services.
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 ":"
skipping to change at page 21, line 28 skipping to change at page 21, line 28
) / ) /
( (
";" "VALUE" "=" "URI" ";" "VALUE" "=" "URI"
":" uri ":" uri
) )
CRLF CRLF
sdataparam = *( sdataparam = *(
; ;
; The following is OPTIONAL for a URI value, ; The following is OPTIONAL for a URI value,
; RECOMMENDED for a TEXT or BINARY value, ; REQUIRED for a TEXT or BINARY value,
; and MUST NOT occur more than once. ; and MUST NOT occur more than once.
; ;
(";" fmttypeparam) / (";" fmttypeparam) /
(";" schemaparam) / (";" schemaparam) /
; ;
; The following is OPTIONAL, ; The following is OPTIONAL,
; and MAY occur more than once. ; and MAY occur more than once.
; ;
(";" other-param) (";" other-param)
; ;
skipping to change at page 22, line 25 skipping to change at page 22, line 25
"VEVENT", "VTODO", "VJOURNAL", or "VFREEBUSY" calendar component. "VEVENT", "VTODO", "VJOURNAL", or "VFREEBUSY" calendar component.
Description: This component provides information about a participant Description: This component provides information about a participant
in an event, task or poll. A participant may be an attendee in a in an event, task or poll. A participant may be an attendee in a
scheduling sense and the ATTENDEE property may be specified in scheduling sense and the ATTENDEE property may be specified in
addition. Participants in events can be individuals or addition. Participants in events 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.
STRUCTURED-DATA properties if present may refer to external STRUCTURED-DATA properties if present may refer to external
definitions of the participant - such as a vcard. definitions 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 component is defined by the following notation: This component is defined by the following notation:
skipping to change at page 23, line 41 skipping to change at page 23, line 41
; ;
) )
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 the participant's express permission..
Example: Example:
The following is an example of this component. It contains a The following is an example of this component. It contains a
STRUCTURED-DATA property which points to a VCARD providing STRUCTURED-DATA property which points to a vCard providing
information about the event participant. information about the event participant.
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTICIPANT-TYPE:PERFORMER PARTICIPANT-TYPE:PERFORMER
STRUCTURED-DATA;VALUE=URI:http://dir.example.com/vcard/aviolinist.vcf STRUCTURED-DATA;VALUE=URI: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.
skipping to change at page 26, line 13 skipping to change at page 26, line 13
8.2. Example 2 8.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 planning
UID:123456 UID:123456
ORGANIZER:mailto:a@example.com ORGANIZER:mailto:a@example.com
ATTENDEE;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com ATTENDEE;PARTSTAT=ACCEPTED;CN=A:mailto:a@example.com
ATTENDEE;RSVP=TRUE;CN=B:mailto:b@example.com ATTENDEE;RSVP=TRUE;CN=B:mailto:b@example.com
BEGIN:PARTICIPANT BEGIN:PARTICIPANT
PARTICIPANT-TYPE:ACTIVE: PARTICIPANT-TYPE:ACTIVE:
STRUCTURED-DATA;VALUE=URI:http://www.example.com/people/b.vcf STRUCTURED-DATA;VALUE=URI:http://www.example.com/people/b.vcf
LOCATION:At home LOCATION:At home
END:PARTICIPANT END:PARTICIPANT
END:VEVENT END:VEVENT
9. Security Considerations 9. Security Considerations
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 For the "STRUCTURED-DATA" property, servers need to be aware that a
described in [RFC5545], are applicable to the "STRUCTURED-DATA" client could attack underlying storage by sending extremely large
property. values and could attack processing time by uploading a recurring
event with a large number of overrides and then repeatedly adding,
updating, and deleting structured data.
Malicious content could be introduced into the calendar server by way
of the "STRUCTURED-DATA" property, and propagated to many end users
via scheduling. Servers SHOULD check this property for malicious or
inappropriate content. Upon detecting such content, servers SHOULD
remove the property,
When processing HTML content applications need to be aware of the When processing HTML content applications need to be aware of the
many security and privacy issues as described in the IANA many security and privacy issues as described in the IANA
considerations section of [W3C.REC-html51-20171003] considerations section of [W3C.REC-html51-20171003]
10. Privacy Considerations 10. Privacy Considerations
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.
introduce any additional privacy concerns beyond those described in
[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.
11. IANA Considerations 11. IANA Considerations
11.1. Additional iCalendar Registrations 11.1. Additional iCalendar Registrations
11.1.1. Properties 11.1.1. Properties
 End of changes. 19 change blocks. 
24 lines changed or deleted 30 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/