draft-ietf-calext-extensions-02.txt   draft-ietf-calext-extensions-03.txt 
Network Working Group C. Daboo Network Working Group C. Daboo
Internet-Draft Apple Inc. Internet-Draft Apple Inc.
Intended status: Standards Track May 24, 2016 Intended status: Standards Track June 3, 2016
Expires: November 25, 2016 Expires: December 5, 2016
New Properties for iCalendar New Properties for iCalendar
draft-ietf-calext-extensions-02 draft-ietf-calext-extensions-03
Abstract Abstract
This document defines a set of new properties for iCalendar data as This document defines a set of new properties for iCalendar data as
well as extending the use of some existing properties to the entire well as extending the use of some existing properties to the entire
iCalendar object. iCalendar object.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 32 skipping to change at page 1, line 32
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 November 25, 2016. This Internet-Draft will expire on December 5, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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 18 skipping to change at page 2, line 18
2. Conventions Used in This Document . . . . . . . . . . . . . . 3 2. Conventions Used in This Document . . . . . . . . . . . . . . 3
3. Backwards Compatible Extension Properties . . . . . . . . . . 3 3. Backwards Compatible Extension Properties . . . . . . . . . . 3
4. Modifications to Calendar Components . . . . . . . . . . . . 3 4. Modifications to Calendar Components . . . . . . . . . . . . 3
5. Properties . . . . . . . . . . . . . . . . . . . . . . . . . 5 5. Properties . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1. NAME Property . . . . . . . . . . . . . . . . . . . . . . 5 5.1. NAME Property . . . . . . . . . . . . . . . . . . . . . . 5
5.2. DESCRIPTION Property . . . . . . . . . . . . . . . . . . 6 5.2. DESCRIPTION Property . . . . . . . . . . . . . . . . . . 6
5.3. UID Property . . . . . . . . . . . . . . . . . . . . . . 6 5.3. UID Property . . . . . . . . . . . . . . . . . . . . . . 6
5.4. LAST-MODIFIED Property . . . . . . . . . . . . . . . . . 7 5.4. LAST-MODIFIED Property . . . . . . . . . . . . . . . . . 7
5.5. URL Property . . . . . . . . . . . . . . . . . . . . . . 7 5.5. URL Property . . . . . . . . . . . . . . . . . . . . . . 7
5.6. CATEGORIES Property . . . . . . . . . . . . . . . . . . . 7 5.6. CATEGORIES Property . . . . . . . . . . . . . . . . . . . 7
5.7. REFRESH-INTERVAL Property . . . . . . . . . . . . . . . . 7 5.7. REFRESH-INTERVAL Property . . . . . . . . . . . . . . . . 8
5.8. SOURCE Property . . . . . . . . . . . . . . . . . . . . . 8 5.8. SOURCE Property . . . . . . . . . . . . . . . . . . . . . 9
5.9. COLOR Property . . . . . . . . . . . . . . . . . . . . . 9 5.9. COLOR Property . . . . . . . . . . . . . . . . . . . . . 9
5.10. IMAGE Property . . . . . . . . . . . . . . . . . . . . . 10 5.10. IMAGE Property . . . . . . . . . . . . . . . . . . . . . 10
5.11. CONFERENCE Property . . . . . . . . . . . . . . . . . . . 11 5.11. CONFERENCE Property . . . . . . . . . . . . . . . . . . . 12
6. Property Parameters . . . . . . . . . . . . . . . . . . . . . 13 6. Property Parameters . . . . . . . . . . . . . . . . . . . . . 13
6.1. DISPLAY Property Parameter . . . . . . . . . . . . . . . 13 6.1. DISPLAY Property Parameter . . . . . . . . . . . . . . . 13
6.2. EMAIL Property Parameter . . . . . . . . . . . . . . . . 14 6.2. EMAIL Property Parameter . . . . . . . . . . . . . . . . 14
6.3. FEATURE Property Parameter . . . . . . . . . . . . . . . 15 6.3. FEATURE Property Parameter . . . . . . . . . . . . . . . 15
6.4. LABEL Property Parameter . . . . . . . . . . . . . . . . 16 6.4. LABEL Property Parameter . . . . . . . . . . . . . . . . 16
7. Security Considerations . . . . . . . . . . . . . . . . . . . 16 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
8.1. Property Registrations . . . . . . . . . . . . . . . . . 17 8.1. Property Registrations . . . . . . . . . . . . . . . . . 17
8.2. Parameter Registrations . . . . . . . . . . . . . . . . . 17 8.2. Parameter Registrations . . . . . . . . . . . . . . . . . 17
8.3. Display Types Registry . . . . . . . . . . . . . . . . . 18 8.3. Display Types Registry . . . . . . . . . . . . . . . . . 18
skipping to change at page 3, line 49 skipping to change at page 3, line 49
New properties defined in this specification use the term "no New properties defined in this specification use the term "no
default" in the "Value Type" definition to indicate that the "VALUE" default" in the "Value Type" definition to indicate that the "VALUE"
parameter has to be included. parameter has to be included.
4. Modifications to Calendar Components 4. Modifications to Calendar Components
The following changes to the syntax defined in iCalendar [RFC5545] The following changes to the syntax defined in iCalendar [RFC5545]
are made here. New elements are defined in subsequent sections. are made here. New elements are defined in subsequent sections.
calprops /= *( calprops =/ *(
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
uid / last-mod / url / uid / last-mod / url /
refresh / source / color refresh / source / color
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; and MAY occur more than once. ; and MAY occur more than once.
; ;
name / description / categories / name / description / categories /
image image
; ;
) )
eventprop /= *( eventprop =/ *(
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
color / color /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; and MAY occur more than once. ; and MAY occur more than once.
; ;
image image
; ;
) )
todoprop /= *( todoprop =/ *(
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
color / color /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; and MAY occur more than once. ; and MAY occur more than once.
; ;
image image
; ;
) )
jourprop /= *( jourprop =/ *(
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; but MUST NOT occur more than once. ; but MUST NOT occur more than once.
; ;
color / color /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; and MAY occur more than once. ; and MAY occur more than once.
; ;
image image
skipping to change at page 7, line 47 skipping to change at page 7, line 47
This specification modifies the definition of the "CATEGORIES" This specification modifies the definition of the "CATEGORIES"
property to allow it to be defined on an iCalendar object. The property to allow it to be defined on an iCalendar object. The
following additions are made to the definition of this property. following additions are made to the definition of this property.
Purpose: This property defines the categories for an entire Purpose: This property defines the categories for an entire
calendar. calendar.
Conformance: This property can be specified multiple times in an Conformance: This property can be specified multiple times in an
iCalendar object. iCalendar object.
Description: When multiple properties are present, the set of
categories that apply to the iCalendar object are the union of all
the categories listed in each property value.
5.7. REFRESH-INTERVAL Property 5.7. REFRESH-INTERVAL Property
Property Name: REFRESH-INTERVAL Property Name: REFRESH-INTERVAL
Purpose: This property specifies a suggested minimum interval for Purpose: This property specifies a suggested minimum interval for
polling for changes of the calendar data from the original source polling for changes of the calendar data from the original source
of that data. of that data.
Value Type: DURATION - no default Value Type: DURATION - no default
Property Parameters: IANA and non-standard property parameters can Property Parameters: IANA and non-standard property parameters can
be specified on this property. be specified on this property.
Conformance: This property can be specified once in an iCalendar Conformance: This property can be specified once in an iCalendar
skipping to change at page 9, line 31 skipping to change at page 9, line 36
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
source = "SOURCE" sourceparam ":" uri CRLF source = "SOURCE" sourceparam ":" uri CRLF
sourceparam = *(";" other-param) sourceparam = *(";" other-param)
Example: The following is an example of this property: Example: The following is an example of this property:
SOURCE;VALUE=URI:http://example.com/holidays.ics SOURCE;VALUE=URI:https://example.com/holidays.ics
5.9. COLOR Property 5.9. COLOR Property
Property Name: COLOR Property Name: COLOR
Purpose: This property specifies a color used for displaying the Purpose: This property specifies a color used for displaying the
calendar, event, todo, or journal data. calendar, event, todo, or journal data.
Value Type: TEXT Value Type: TEXT
skipping to change at page 11, line 8 skipping to change at page 11, line 11
picking one that provides the most appropriate image quality, or picking one that provides the most appropriate image quality, or
display none. The "DISPLAY" parameter is used to indicate the display none. The "DISPLAY" parameter is used to indicate the
intended display mode for the image. The "ALTREP" parameter, intended display mode for the image. The "ALTREP" parameter,
defined in [RFC5545], can be used to provide a "clickable" image defined in [RFC5545], can be used to provide a "clickable" image
where the URI in the parameter value can be "launched" by a click where the URI in the parameter value can be "launched" by a click
on the image in the calendar user agent. on the image in the calendar user agent.
Format Definition: This property is defined by the following Format Definition: This property is defined by the following
notation: notation:
image = "IMAGE" imageparam ( ":" uri ) / image = "IMAGE" imageparam
( (
";" "ENCODING" "=" "BASE64" (
";" "VALUE" "=" "BINARY" ";" "VALUE" "=" "URI"
":" binary ":" uri
) / ) /
(
";" "ENCODING" "=" "BASE64"
";" "VALUE" "=" "BINARY"
":" binary
)
)
CRLF CRLF
imageparam = *( imageparam = *(
; ;
; The following is REQUIRED,
; but MUST NOT occur more than once.
;
(";" "VALUE" "=" "URI") /
;
; The following is OPTIONAL for a URI value, ; The following is OPTIONAL for a URI value,
; RECOMMENDED for a BINARY value, ; RECOMMENDED for a BINARY value,
; and MUST NOT occur more than once. ; and MUST NOT occur more than once.
; ;
(";" fmttypeparam) / (";" fmttypeparam) /
; ;
; The following are OPTIONAL, ; The following are OPTIONAL,
; and MUST NOT occur more than once. ; and MUST NOT occur more than once.
; ;
(";" altrepparam) / (";" displayparam) / (";" altrepparam) / (";" displayparam) /
skipping to change at page 12, line 17 skipping to change at page 12, line 24
Property Parameters: IANA, non-standard, feature, and label property Property Parameters: IANA, non-standard, feature, and label property
parameters can be specified on this property. parameters can be specified on this property.
Conformance: This property can be specified multiple times in a Conformance: This property can be specified multiple times in a
"VEVENT" or "VTODO" calendar component. "VEVENT" or "VTODO" calendar component.
Description: This property specifies information for accessing a Description: This property specifies information for accessing a
conferencing system for attendees of a meeting or task. This conferencing system for attendees of a meeting or task. This
might be a tel: URI [RFC3966] for a telephone-based conference might be a tel: URI [RFC3966] for a telephone-based conference
number dial-in (with access codes included), or it might be an number dial-in (with access codes included), or it might be an
http: URI [RFC7230] for a web-based video chat, or a URI for an http: or https: URI [RFC7230] for a web-based video chat, or a URI
instant messaging group chat room. If a specific URI for a for an instant messaging group chat room. If a specific URI for a
conferencing system is not available, a data: URI [RFC2397] conferencing system is not available, a data: URI [RFC2397]
containing a text description can be used. containing a text description can be used.
A conference system can be a bi-directional communication channel, A conference system can be a bi-directional communication channel,
or a uni-directional "broadcast feed". or a uni-directional "broadcast feed".
The "FEATURE" property parameter is used to describe the key The "FEATURE" property parameter is used to describe the key
capabilities of the conference system to allow a client to choose capabilities of the conference system to allow a client to choose
the ones that give the required level of interaction from a set of the ones that give the required level of interaction from a set of
multiple properties. multiple properties.
skipping to change at page 13, line 37 skipping to change at page 13, line 37
CONFERENCE;VALUE=URI;FEATURE=PHONE,MODERATOR; CONFERENCE;VALUE=URI;FEATURE=PHONE,MODERATOR;
LABEL=Moderator dial-in:tel:+1-412-555-0123,,,654321 LABEL=Moderator dial-in:tel:+1-412-555-0123,,,654321
CONFERENCE;VALUE=URI;FEATURE=PHONE; CONFERENCE;VALUE=URI;FEATURE=PHONE;
LABEL=Attendee dial-in:tel:+1-412-555-0123,,,555123 LABEL=Attendee dial-in:tel:+1-412-555-0123,,,555123
CONFERENCE;VALUE=URI;FEATURE=PHONE; CONFERENCE;VALUE=URI;FEATURE=PHONE;
LABEL=Attendee dial-in:tel:+1-888-555-0456,,,555123 LABEL=Attendee dial-in:tel:+1-888-555-0456,,,555123
CONFERENCE;VALUE=URI;FEATURE=CHAT; CONFERENCE;VALUE=URI;FEATURE=CHAT;
LABEL=Chat room:xmpp:chat-123@conference.example.com LABEL=Chat room:xmpp:chat-123@conference.example.com
CONFERENCE;VALUE=URI;FEATURE=AUDIO,VIDEO; CONFERENCE;VALUE=URI;FEATURE=AUDIO,VIDEO;
LABEL=Attendee dial-in:http://chat.example.com/audio?id=123456 LABEL=Attendee dial-in:https://chat.example.com/audio?id=123456
6. Property Parameters 6. Property Parameters
6.1. DISPLAY Property Parameter 6.1. DISPLAY Property Parameter
Parameter Name: DISPLAY Parameter Name: DISPLAY
Purpose: To specify different ways in which an image for a calendar Purpose: To specify different ways in which an image for a calendar
or component can be displayed. or component can be displayed.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
displayparam = "DISPLAY" "=" displayval *("," displayval) displayparam = "DISPLAY" "=" displayval *("," displayval)
displayval = ("BADGE" / ; image inline with the title of the displayval = ("BADGE" / ; image inline with the title of the
; event ; event
"GRAPHIC" / ; a full image replacement for the event "GRAPHIC" / ; a full image replacement for the event
; itself ; itself
"FULLSIZE / ; an image that is used to enhance the "FULLSIZE" / ; an image that is used to enhance the
; event ; event
"THUMBNAIL / ; a smaller variant of "FULLSIZE" to be "THUMBNAIL" / ; a smaller variant of "FULLSIZE" to be
; used when space for the image is ; used when space for the image is
; constrained ; constrained
x-name / ; Experimental type x-name / ; Experimental type
iana-token) ; Other IANA registered type iana-token) ; Other IANA registered type
; ;
; Default is BADGE ; Default is BADGE
Description: This property parameter MAY be specified on "IMAGE" Description: This property parameter MAY be specified on "IMAGE"
properties. In the absence of this parameter, the value "BADGE" properties. In the absence of this parameter, the value "BADGE"
MUST be used for the default behavior. The value determines how a MUST be used for the default behavior. The value determines how a
client ought to present an image supplied in iCalendar data to the client ought to present an image supplied in iCalendar data to the
user. user.
Values for this parameter are registered with IANA as per Values for this parameter are registered with IANA as per
Section 8.3. New values can be added to this registry following Section 8.3. New values can be added to this registry following
the procedure outlined in Section 8.2.1 of [RFC5545]. the procedure outlined in Section 8.2.1 of [RFC5545].
Servers and clients MUST handle x-name and iana-token values they Servers and clients MUST handle x-name and iana-token values they
don't recognize by not displaying any image at all. don't recognize by not displaying any image at all.
Example: Example:
IMAGE;VALUE=URI;DISPLAY=BADGE,THUMBNAIL,;FMTTYPE=image/png:http://exa IMAGE;VALUE=URI;DISPLAY=BADGE,THUMBNAIL;FMTTYPE=image/png:https://exa
mple.com/images/weather-cloudy.png mple.com/images/weather-cloudy.png
6.2. EMAIL Property Parameter 6.2. EMAIL Property Parameter
Parameter Name: EMAIL Parameter Name: EMAIL
Purpose: To specify an email address that is used to identify or Purpose: To specify an email address that is used to identify or
contact an organizer or attendee. contact an organizer or attendee.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
skipping to change at page 16, line 11 skipping to change at page 16, line 11
"MODERATOR" value is used to indicate that the property value is "MODERATOR" value is used to indicate that the property value is
specific to the owner/initiator of the conference and contains a specific to the owner/initiator of the conference and contains a
URI that "activates" the system (e.g., a "moderator" access code URI that "activates" the system (e.g., a "moderator" access code
for a phone conference system that is different from the "regular" for a phone conference system that is different from the "regular"
access code). access code).
Example: Example:
CONFERENCE;VALUE=URI;FEATURE=AUDIO:rtsp://audio.example.com/ CONFERENCE;VALUE=URI;FEATURE=AUDIO:rtsp://audio.example.com/
event event
CONFERENCE;VALUE=URI;FEATURE=AUDIO,VIDEO:http://video-chat.exam CONFERENCE;VALUE=URI;FEATURE=AUDIO,VIDEO:https://video-chat.exam
ple.com/;group-id=1234 ple.com/;group-id=1234
6.4. LABEL Property Parameter 6.4. LABEL Property Parameter
Parameter Name: LABEL Parameter Name: LABEL
Purpose: To provide a human readable label. Purpose: To provide a human readable label.
Format Definition: This property parameter is defined by the Format Definition: This property parameter is defined by the
following notation: following notation:
skipping to change at page 16, line 39 skipping to change at page 16, line 39
property parameter present on many different properties. It property parameter present on many different properties. It
provides a human readable label that can be presented to calendar provides a human readable label that can be presented to calendar
users to allow them to discriminate between properties which might users to allow them to discriminate between properties which might
be similar, or provide additional information for properties that be similar, or provide additional information for properties that
are not self-describing. are not self-describing.
Example: Example:
CONFERENCE;VALUE=URI;FEATURE=VIDEO; CONFERENCE;VALUE=URI;FEATURE=VIDEO;
LABEL="Web video chat, access code=76543"; LABEL="Web video chat, access code=76543";
:http://video-chat.example.com/;group-id=1234 :https://video-chat.example.com/;group-id=1234
7. Security Considerations 7. Security Considerations
Several of the new properties or parameters defined by this Several of the new properties or parameters defined by this
specification allow reference to "external" URIs. Care MUST be taken specification allow reference to "external" URIs. Care MUST be taken
when accessing data at external URIs as malicious content could be when accessing data at external URIs as malicious content could be
present. In addition, access to those URIs could be tracked, leading present. In addition, access to those URIs could be tracked, leading
to loss of privacy. to loss of privacy.
The "CONFERENCE" property can include a "FEATURE" property parameter The "CONFERENCE" property can include a "FEATURE" property parameter
skipping to change at page 19, line 44 skipping to change at page 19, line 44
<http://www.rfc-editor.org/info/rfc5546>. <http://www.rfc-editor.org/info/rfc5546>.
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
Protocol (HTTP/1.1): Message Syntax and Routing", Protocol (HTTP/1.1): Message Syntax and Routing",
RFC 7230, DOI 10.17487/RFC7230, June 2014, RFC 7230, DOI 10.17487/RFC7230, June 2014,
<http://www.rfc-editor.org/info/rfc7230>. <http://www.rfc-editor.org/info/rfc7230>.
Appendix A. Change History (To be removed by RFC Editor before Appendix A. Change History (To be removed by RFC Editor before
publication) publication)
Changes in draft-ietf-calext-extensions-03:
1. AD: fixed =/ ABNF syntax.
2. AD: added description for CATEGORIES.
3. AD: Removed extra / in image ABNF.
4. AD: Fixed VALUE=URI in image ABNF.
5. AD: Mention https in addition to http. Changed all examples to
use https:
6. AD: fixed DISPLAY ABNF syntax.
Changes in draft-ietf-calext-extensions-02: Changes in draft-ietf-calext-extensions-02:
1. Refresh expired draft - no changes. 1. Refresh expired draft - no changes.
Changes in draft-ietf-calext-extensions-01: Changes in draft-ietf-calext-extensions-01:
1. Clarified difference between SOURCE and URL properties. 1. Clarified difference between SOURCE and URL properties.
2. Use labelparam not infoparam. 2. Use labelparam not infoparam.
 End of changes. 26 change blocks. 
34 lines changed or deleted 55 lines changed or added

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