draft-ietf-calext-icalendar-series-02.txt   draft-ietf-calext-icalendar-series-03.txt 
Network Working Group M. Douglass Network Working Group M. Douglass
Internet-Draft 14 October 2020 Internet-Draft 12 April 2021
Intended status: Standards Track Intended status: Standards Track
Expires: 17 April 2021 Expires: 14 October 2021
Support for Series in iCalendar Support for Series in iCalendar
draft-ietf-calext-icalendar-series-02 draft-ietf-calext-icalendar-series-03
Abstract Abstract
This document updates [RFC5545] by defining a new repeating set of This document updates [RFC5545] by defining a new repeating set of
events known as a series. This differs from recurrences in that each events known as a series. This differs from recurrences in that each
instance is a separate entity with a parent relationship to a instance is a separate entity with a parent relationship to a
specified template entity. specified template entity.
Status of This Memo Status of This Memo
skipping to change at page 1, line 33 skipping to change at page 1, line 33
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 17 April 2021. This Internet-Draft will expire on 14 October 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Simplified BSD License.
skipping to change at page 2, line 34 skipping to change at page 2, line 34
8.2. Generating Series members . . . . . . . . . . . . . . . . 11 8.2. Generating Series members . . . . . . . . . . . . . . . . 11
8.3. Series UID . . . . . . . . . . . . . . . . . . . . . . . 13 8.3. Series UID . . . . . . . . . . . . . . . . . . . . . . . 13
8.4. Series-exception-date . . . . . . . . . . . . . . . . . . 13 8.4. Series-exception-date . . . . . . . . . . . . . . . . . . 13
8.5. Series-date . . . . . . . . . . . . . . . . . . . . . . . 15 8.5. Series-date . . . . . . . . . . . . . . . . . . . . . . . 15
8.6. Series-id . . . . . . . . . . . . . . . . . . . . . . . . 16 8.6. Series-id . . . . . . . . . . . . . . . . . . . . . . . . 16
8.7. Last series ID . . . . . . . . . . . . . . . . . . . . . 18 8.7. Last series ID . . . . . . . . . . . . . . . . . . . . . 18
8.8. Series Rule . . . . . . . . . . . . . . . . . . . . . . . 21 8.8. Series Rule . . . . . . . . . . . . . . . . . . . . . . . 21
9. Redefined RELATED-TO Property . . . . . . . . . . . . . . . . 22 9. Redefined RELATED-TO Property . . . . . . . . . . . . . . . . 22
9.1. RELATED-TO . . . . . . . . . . . . . . . . . . . . . . . 22 9.1. RELATED-TO . . . . . . . . . . . . . . . . . . . . . . . 22
10. Backwards compatibility . . . . . . . . . . . . . . . . . . . 24 10. Backwards compatibility . . . . . . . . . . . . . . . . . . . 24
11. CalDAV extensions . . . . . . . . . . . . . . . . . . . . . . 25 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 11.1. iCalendar Property Registrations . . . . . . . . . . . . 25
12.1. iCalendar Property Registrations . . . . . . . . . . . . 25 11.2. iCalendar Property Parameter Registrations . . . . . . . 25
12.2. iCalendar Property Parameter Registrations . . . . . . . 26 11.3. iCalendar RELTYPE Value Registrations . . . . . . . . . 26
12.3. iCalendar RELTYPE Value Registrations . . . . . . . . . 26 12. Normative References . . . . . . . . . . . . . . . . . . . . 26
13. Normative references . . . . . . . . . . . . . . . . . . . . 26 13. Informative References . . . . . . . . . . . . . . . . . . . 27
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 26 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 27
1. Acknowledgements 1. Acknowledgements
The authors would like to thank the members of the Calendaring and The author would like to thank the members of the Calendaring and
Scheduling Consortium (CalConnect) for contributing their ideas and Scheduling Consortium technical committees and the following
support. individuals for contributing their ideas, support and comments:
The author would also like to thank the Calendaring and Scheduling
Consortium for advice with this specification.
2. Introduction 2. Introduction
Since iCalendar was first defined there has been only one way to Since iCalendar was first defined there has been only one way to
express a repeating set of events - the recurrence. This defined a express a repeating set of events - the recurrence. This defined a
master event, a set of rules for computing the instances and a way of master event, a set of rules for computing the instances and a way of
overriding certain instances. overriding certain instances.
This approach works well enough in certain situations but has many This approach works well enough in certain situations but has many
problems which need to be addressed. problems which need to be addressed.
This specification introduces a new approach to repeating patterns of This specification introduces a new approach to repeating patterns of
entities which avoids some of the problems. entities which avoids some of the problems.
3. Terms and definitions 3. Terms and definitions
No terms and definitions are listed in this document.
4. Overrides and iCalendar recurrences 4. Overrides and iCalendar recurrences
The recurrence rules specify how instances are to be computed. These The recurrence rules specify how instances are to be computed. These
rules provide a set of keys - the RECURRENCE-ID - and an instance can rules provide a set of keys - the RECURRENCE-ID - and an instance can
be created with the calculated start date/time and a copy of the be created with the calculated start date/time and a copy of the
duration (or calculated end date/time). duration (or calculated end date/time).
The specification allows for overrides. These are handled by The [RFC5545] specification allows for overrides. These are handled
supplying a complete replacement for the instance with a RECURRENCE- by supplying a complete replacement for the instance with a
ID property matching that of the instance being overridden. This may RECURRENCE- ID property matching that of the instance being
change any of the properties (except the UID) - including start, end overridden. This may change any of the properties (except the UID) -
or duration. including start, end or duration.
If a long lived recurrence is heavily overridden it becomes very If a long lived recurrence is heavily overridden it becomes very
cumbersome. The master plus overrides is considered a single cumbersome. The master plus overrides is considered a single
resource in most circumstances (iTip allows the delivery of a single resource in most circumstances (iTip allows the delivery of a single
instance in certain situations). instance in certain situations).
Simple meetings can become heavily modified recurrences through Simple meetings can become heavily modified recurrences through
adding the weeks agenda to the description, changing of attendees adding the weeks agenda to the description, changing of attendees
etc. etc.
There are approaches being considered to mitigate some of these There are approaches being considered to mitigate some of these
issues which mostly involve only storing changes but recurrences are issues which mostly involve only storing changes. This can help if
still awkward to deal with. the changes are minor but heavily modified instances are still a
problem.
4.1. Changing the master start or the recurrence rules 4.1. Changing the master start or the recurrence rules
This can lead to some very difficult problems to resolve. In the This can lead to some very difficult problems to resolve. In the
case of a heavily modified meeting it may be difficult to impossible case of a heavily modified meeting it may be difficult to impossible
to determine which override applies to the newly modified event. to determine which override applies to the newly modified event.
For example, a weekly book-reading is moved from Monday to Friday. For example, a weekly book-reading is moved from Monday to Friday.
There are weeks of scheduled events in the future. Do we move them There are weeks of scheduled events in the future. Do we move them
all forward to the next instance or skip one and move them back? If all forward to the next instance or skip one and move them back? If
it becomes bi-weekly rather than weekly do we drop every other or it becomes bi-weekly rather than weekly do we drop every other or
just space them out more? just space them out more?
To be sure - some of these problems are not totally resolved by a While these problems are not totally resolved by a series approach,
series approach but they become more tractable. they become more tractable.
4.2. Splitting recurrences 4.2. Splitting recurrences
The [RFC5545] THISANDFUTURE range is poorly supported. Splitting is The [RFC5545] THISANDFUTURE range is poorly supported. Splitting is
what a number of implementations use to avoid changing overrides in the approach a number of implementations use to avoid changing
the past. overrides in the past.
The recurring event is split into 2, one being the truncated original The recurring event is split into 2, one being the truncated original
the other being a new recurring event starting at the time of the the other being a new recurring event starting at the time of the
THISANDFUTURE override. THISANDFUTURE override.
There is left the problem of relating the two, this can be There is left the problem of relating the two, this can be
accomplished by use of the RELATED-TO property but that is not accomplished by use of the RELATED-TO property but that is not
standardized. standardized.
5. Series 5. Series
skipping to change at page 21, line 7 skipping to change at page 21, line 7
The following is an example of this property. It points to a server The following is an example of this property. It points to a server
acting as the source for the calendar object. acting as the source for the calendar object.
LINK;REL=SOURCE;LABEL=The Egg:http://example.com/events LINK;REL=SOURCE;LABEL=The Egg:http://example.com/events
Figure 22 Figure 22
8.8. Series Rule 8.8. Series Rule
Property name RRULE Property name SRULE
Purpose This property defines a rule or repeating pattern for a Purpose This property defines a rule or repeating pattern for a
series of events, to-dos or journal entries. series of events, to-dos or journal entries.
Value Type RECUR Value Type RECUR
Property Parameters IANA, non-standard, look-ahead count or date Property Parameters IANA, non-standard, look-ahead count or date
property parameters can be specified on this property. property parameters can be specified on this property.
Conformance This property can be specified in any "VEVENT", "VTODO", Conformance This property can be specified in any "VEVENT", "VTODO",
skipping to change at page 25, line 9 skipping to change at page 25, line 9
For such clients the series appears to be an unconnected set of For such clients the series appears to be an unconnected set of
components. They all have their own unique UIDS. If the client components. They all have their own unique UIDS. If the client
updates an instance this should be identical in effect to an update updates an instance this should be identical in effect to an update
carried out by a client aware of the new properties. carried out by a client aware of the new properties.
Updates MUST preserve the SERIES-ID, LAST-SERIES-ID, SRULE, SDATE and Updates MUST preserve the SERIES-ID, LAST-SERIES-ID, SRULE, SDATE and
SXDATE properties. A client which does not do so is in violation of SXDATE properties. A client which does not do so is in violation of
[RFC5545]. [RFC5545].
TODO - More text needed here... TODO - More text needed here... == CalDAV extensions
11. CalDAV extensions
This specification may extend Caldav by adding reports to return all This specification may extend Caldav by adding reports to return all
members of a series given the series master UID. This could be members of a series given the series master UID. This could be
handled by the current query mechanism but it is likely to be handled by the current query mechanism but it is likely to be
sufficiently frequently used that a special query is appropriate. sufficiently frequently used that a special query is appropriate.
It is also likely we will want a CalDAV operation to split a series It is also likely we will want a CalDAV operation to split a series
and generate the additional members of the series as a single atomic and generate the additional members of the series as a single atomic
operation. == Security Considerations operation. == Security Considerations
Clients and servers should take care to limit the number of generated Clients and servers should take care to limit the number of generated
instances to a reasonable value. This can be a relatively small instances to a reasonable value. This can be a relatively small
value. value.
12. IANA Considerations 11. IANA Considerations
12.1. iCalendar Property Registrations 11.1. iCalendar Property Registrations
The following iCalendar property names have been added to the The following iCalendar property names have been added to the
iCalendar Properties Registry defined in [RFC5545]. iCalendar Properties Registry defined in [RFC5545].
+================+=========+=============+ +================+=========+=============+
| Property | Status | Reference | | Property | Status | Reference |
+================+=========+=============+ +================+=========+=============+
| LAST-SERIES-ID | Current | Section 8.7 | | LAST-SERIES-ID | Current | Section 8.7 |
+----------------+---------+-------------+ +----------------+---------+-------------+
| SERIES-ID | Current | Section 8.6 | | SERIES-ID | Current | Section 8.6 |
skipping to change at page 26, line 5 skipping to change at page 25, line 49
+----------------+---------+-------------+ +----------------+---------+-------------+
| SDATE | Current | Section 8.5 | | SDATE | Current | Section 8.5 |
+----------------+---------+-------------+ +----------------+---------+-------------+
| SRULE | Current | Section 8.8 | | SRULE | Current | Section 8.8 |
+----------------+---------+-------------+ +----------------+---------+-------------+
| SXDATE | Current | Section 8.4 | | SXDATE | Current | Section 8.4 |
+----------------+---------+-------------+ +----------------+---------+-------------+
Table 1 Table 1
12.2. iCalendar Property Parameter Registrations 11.2. iCalendar Property Parameter Registrations
The following iCalendar property parameter names have been added to The following iCalendar property parameter names have been added to
the iCalendar Parameters Registry defined in [RFC5545]. the iCalendar Parameters Registry defined in [RFC5545].
+==================+=========+=============+ +==================+=========+=============+
| Parameter | Status | Reference | | Parameter | Status | Reference |
+==================+=========+=============+ +==================+=========+=============+
| LOOKAHEAD-COUNT | Current | Section 7.2 | | LOOKAHEAD-COUNT | Current | Section 7.2 |
+------------------+---------+-------------+ +------------------+---------+-------------+
| LOOKAHEAD-PERIOD | Current | Section 7.3 | | LOOKAHEAD-PERIOD | Current | Section 7.3 |
+------------------+---------+-------------+ +------------------+---------+-------------+
| SPLIT | Current | Section 7.1 | | SPLIT | Current | Section 7.1 |
+------------------+---------+-------------+ +------------------+---------+-------------+
Table 2 Table 2
12.3. iCalendar RELTYPE Value Registrations 11.3. iCalendar RELTYPE Value Registrations
The following iCalendar "RELTYPE" values have been added to the The following iCalendar "RELTYPE" values have been added to the
iCalendar Relationship Types Registry defined in [RFC5545]. iCalendar Relationship Types Registry defined in [RFC5545].
+===================+=========+===========+ +===================+=========+===========+
| Relationship Type | Status | Reference | | Relationship Type | Status | Reference |
+===================+=========+===========+ +===================+=========+===========+
| SERIES-ID | Current | Section 5 | | SERIES-ID | Current | Section 5 |
+-------------------+---------+-----------+ +-------------------+---------+-----------+
Table 3 Table 3
13. Normative references 12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, IETF RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2518] Goland, Y., Whitehead, E., Faizi, A., Carter, S., and D.
Jensen, "HTTP Extensions for Distributed
Authoring — WEBDAV", RFC 2518, IETF RFC 2518,
DOI 10.17487/RFC2518, February 1999,
<https://www.rfc-editor.org/info/rfc2518>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", RFC 3986,
IETF RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>.
[RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault,
"Calendaring Extensions to WebDAV (CalDAV)", RFC 4791,
IETF RFC 4791, DOI 10.17487/RFC4791, March 2007,
<https://www.rfc-editor.org/info/rfc4791>.
[RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and
Scheduling Core Object Specification (iCalendar)", IETF Scheduling Core Object Specification (iCalendar)", RFC
RFC 5545, IETF RFC 5545, DOI 10.17487/RFC5545, September 5545, IETF RFC 5545, DOI 10.17487/RFC5545, September 2009,
2009, <https://www.rfc-editor.org/info/rfc5545>. <https://www.rfc-editor.org/info/rfc5545>.
[RFC7986] Daboo, C., "New Properties for iCalendar", IETF RFC 7986, [RFC5546] Daboo, C., Ed., "iCalendar Transport-Independent
Interoperability Protocol (iTIP)", RFC 5546, IETF RFC
5546, DOI 10.17487/RFC5546, December 2009,
<https://www.rfc-editor.org/info/rfc5546>.
[RFC6047] Melnikov, A., Ed., "iCalendar Message-Based
Interoperability Protocol (iMIP)", RFC 6047, IETF RFC
6047, DOI 10.17487/RFC6047, December 2010,
<https://www.rfc-editor.org/info/rfc6047>.
[RFC6638] Daboo, C. and B. Desruisseaux, "Scheduling Extensions to
CalDAV", RFC 6638, IETF RFC 6638, DOI 10.17487/RFC6638,
June 2012, <https://www.rfc-editor.org/info/rfc6638>.
[RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986,
IETF RFC 7986, DOI 10.17487/RFC7986, October 2016, IETF RFC 7986, DOI 10.17487/RFC7986, October 2016,
<https://www.rfc-editor.org/info/rfc7986>. <https://www.rfc-editor.org/info/rfc7986>.
Author's Address [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", RFC 8174, IETF RFC 8174,
DOI 10.17487/RFC8174, May 2017,
<https://www.rfc-editor.org/info/rfc8174>.
13. Informative References
[RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
Text on Security Considerations", RFC 3552, IETF RFC 3552,
DOI 10.17487/RFC3552, July 2003,
<https://www.rfc-editor.org/info/rfc3552>.
[RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed
Authoring and Versioning (WebDAV)", RFC 4918, IETF RFC
4918, DOI 10.17487/RFC4918, June 2007,
<https://www.rfc-editor.org/info/rfc4918>.
[RFC5378] Bradner, S., Ed. and J. Contreras, Ed., "Rights
Contributors Provide to the IETF Trust", RFC 5378,
IETF RFC 5378, DOI 10.17487/RFC5378, November 2008,
<https://www.rfc-editor.org/info/rfc5378>.
Author's Address
Michael Douglass Michael Douglass
Email: mikeadouglass@gmail.com Email: mikeadouglass@gmail.com
 End of changes. 23 change blocks. 
42 lines changed or deleted 98 lines changed or added

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