draft-ietf-calext-rscale-00.txt   draft-ietf-calext-rscale-01.txt 
Network Working Group C. Daboo Network Working Group C. Daboo
Internet-Draft Apple Inc. Internet-Draft Apple Inc.
Updates: 5545, 5546, 4791 (if approved) G. Yakushev Updates: 5545, 5546, 4791 (if approved) G. Yakushev
Intended status: Standards Track Google Inc. Intended status: Standards Track Google Inc.
Expires: April 7, 2015 October 4, 2014 Expires: May 15, 2015 November 11, 2014
Non-Gregorian Recurrence Rules in iCalendar Non-Gregorian Recurrence Rules in iCalendar
draft-ietf-calext-rscale-00 draft-ietf-calext-rscale-01
Abstract Abstract
This document defines how non-Gregorian recurrence rules can be This document defines how non-Gregorian recurrence rules can be
specified and used in iCalendar data, and with CalDAV servers. specified and used in iCalendar data, and with CalDAV servers.
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
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 April 7, 2015. This Internet-Draft will expire on May 15, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 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 25 skipping to change at page 2, line 25
7. Use with CalDAV . . . . . . . . . . . . . . . . . . . . . . . 11 7. Use with CalDAV . . . . . . . . . . . . . . . . . . . . . . . 11
7.1. CALDAV:supported-rscale-set Property . . . . . . . . . . 11 7.1. CALDAV:supported-rscale-set Property . . . . . . . . . . 11
8. Security Considerations . . . . . . . . . . . . . . . . . . . 12 8. Security Considerations . . . . . . . . . . . . . . . . . . . 12
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
11.1. Normative References . . . . . . . . . . . . . . . . . . 12 11.1. Normative References . . . . . . . . . . . . . . . . . . 12
11.2. Informative References . . . . . . . . . . . . . . . . . 13 11.2. Informative References . . . . . . . . . . . . . . . . . 13
Appendix A. Change History (To be removed by RFC Editor before Appendix A. Change History (To be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 13 publication) . . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction 1. Introduction
The iCalendar [RFC5545] data format is in widespread use to represent The iCalendar [RFC5545] data format is in widespread use to represent
calendar data. iCalendar represents dates and times using the calendar data. iCalendar represents dates and times using the
Gregorian calendar system only. It does provide a way to use non- Gregorian calendar system only. It does provide a way to use non-
Gregorian calendar systems via a "CALSCALE" property, however this Gregorian calendar systems via a "CALSCALE" property, but this has
has never been formally used. However, there is a need to support at never been used. However, there is a need to support at least non-
least non-Gregorian recurrence patterns to cover anniversaries, and Gregorian recurrence patterns to cover anniversaries, and many local,
many local, religious, or civil holidays based on non-Gregorian religious, or civil holidays based on non-Gregorian dates.
dates.
There are several disadvantages to using the existing "CALSCALE" There are several disadvantages to using the existing "CALSCALE"
property in iCalendar for implementing non-Gregorian calendars: property in iCalendar for implementing non-Gregorian calendars:
1. The "CALSCALE" property exists in the top-level "VCALENDAR" 1. The "CALSCALE" property exists in the top-level "VCALENDAR"
objects and thus applies to all components within that object. objects and thus applies to all components within that object.
In today's multi-cultural society, that restricts the ability to In today's multi-cultural society, that restricts the ability to
mix events from different calendar systems within the same mix events from different calendar systems within the same
iCalendar object. e.g., it would prevent having both the iCalendar object. e.g., it would prevent having both the
Gregorian New Year and Chinese New Year in the same iCalendar Gregorian New Year and Chinese New Year in the same iCalendar
skipping to change at page 3, line 42 skipping to change at page 3, line 41
used by iCalendar [RFC5545]. Any syntax elements shown below that used by iCalendar [RFC5545]. Any syntax elements shown below that
are not explicitly defined in this specification come from iCalendar are not explicitly defined in this specification come from iCalendar
[RFC5545], iTIP [RFC5546], and CalDAV [RFC4791]. [RFC5545], iTIP [RFC5546], and CalDAV [RFC4791].
When XML element types in the namespaces "DAV:" and When XML element types in the namespaces "DAV:" and
"urn:ietf:params:xml:ns:caldav" are referenced in this document "urn:ietf:params:xml:ns:caldav" are referenced in this document
outside of the context of an XML fragment, the string "DAV:" and outside of the context of an XML fragment, the string "DAV:" and
"CALDAV:" will be prefixed to the element type names respectively. "CALDAV:" will be prefixed to the element type names respectively.
When a Gregorian calendar date value is shown in text, it will use When a Gregorian calendar date value is shown in text, it will use
the format "YYYYMMHH", where "YYYY" is the 4-digit year, "MM" the the format "YYYYMMDD", where "YYYY" is the 4-digit year, "MM" the
2-digit month, and "DD" the 2-digit day (this is the same format used 2-digit month, and "DD" the 2-digit day (this is the same format used
in iCalendar [RFC5545]). The Chinese calendar will be used as an in iCalendar [RFC5545]). The Chinese calendar will be used as an
example of a non-Gregorian calendar for illustrative purposes. When example of a non-Gregorian calendar for illustrative purposes. When
a Chinese calendar date value is shown in text, it will use the a Chinese calendar date value is shown in text, it will use the
format "{C}YYYYMM[L]DD" - i.e., the same format as Gregorian but with format "{C}YYYYMM[L]DD" - i.e., the same format as Gregorian but with
a "{C}" prefix, and an optional "L" character after the month element a "{C}" prefix, and an optional "L" character after the month element
to indicate a leap month. Similarly, {E} and {H} are used in other to indicate a leap month. Similarly, {E} and {H} are used in other
examples as prefixes for Ethiopic (Amete Mihret) and Hebrew dates, examples as prefixes for Ethiopic (Amete Mihret) and Hebrew dates,
respectively. Note that the Chinese calendar years shown in the respectively. Note that the Chinese calendar years shown in the
examples are based on the Unicode (ICU) [UNICODE.ICU] library's examples are based on the Unicode (ICU) [UNICODE.ICU] library's
skipping to change at page 11, line 34 skipping to change at page 11, line 34
Clients MUST NOT attempt to store iCalendar data containing "RSCALE" Clients MUST NOT attempt to store iCalendar data containing "RSCALE"
elements if the CALDAV:supported-rscale-set WebDAV property is not elements if the CALDAV:supported-rscale-set WebDAV property is not
advertised by the server. advertised by the server.
The server SHOULD return an HTTP 403 response with a DAV:error The server SHOULD return an HTTP 403 response with a DAV:error
element containing a CALDAV:supported-rscale XML element, if a client element containing a CALDAV:supported-rscale XML element, if a client
attempts to store iCalendar data with an "RSCALE" element value not attempts to store iCalendar data with an "RSCALE" element value not
supported by the server. supported by the server.
It is possible for a "RSCALE" value to be present in calendar data on It is possible for an "RSCALE" value to be present in calendar data
the server being accessed by a client that does not support an on the server being accessed by a client that does not support an
"RSCALE" element or its specified value. It is expected that "RSCALE" element or its specified value. It is expected that
existing clients, unaware of "RSCALE", will fail gracefully by existing clients, unaware of "RSCALE", will fail gracefully by
ignoring the calendar component, whilst still processing other ignoring the calendar component, whilst still processing other
calendar data on the server. calendar data on the server.
7.1. CALDAV:supported-rscale-set Property 7.1. CALDAV:supported-rscale-set Property
Name: supported-rscale-set Name: supported-rscale-set
Namespace: urn:ietf:params:xml:ns:caldav Namespace: urn:ietf:params:xml:ns:caldav
skipping to change at page 12, line 32 skipping to change at page 12, line 32
<C:supported-rscale>ETHIOPIC</C:supported-rscale> <C:supported-rscale>ETHIOPIC</C:supported-rscale>
</C:supported-rscale-set> </C:supported-rscale-set>
8. Security Considerations 8. Security Considerations
This specification does not introduce any addition security concerns This specification does not introduce any addition security concerns
beyond those described in [RFC5545], [RFC5546], and [RFC4791]. beyond those described in [RFC5545], [RFC5546], and [RFC4791].
9. IANA Considerations 9. IANA Considerations
This specification does not define any new IANA registries or values. This document requires no IANA actions.
10. Acknowledgments 10. Acknowledgments
Thanks to the following for feedback: Mark Davis, Mike Douglass, Thanks to the following for feedback: Mark Davis, Mike Douglass,
Peter Edberg, Marten Gajda, Ken Murchison, Arnaud Quillaud, Dave Peter Edberg, Marten Gajda, Ken Murchison, Arnaud Quillaud, Dave
Thewlis, and Umaoka Yoshito. Thewlis, and Umaoka Yoshito.
This specification originated from work at the Calendaring and This specification originated from work at the Calendaring and
Scheduling Consortium, which has helped with the development and Scheduling Consortium, which has helped with the development and
testing of implementations. testing of implementations.
skipping to change at page 13, line 25 skipping to change at page 13, line 25
[RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling [RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling
Core Object Specification (iCalendar)", RFC 5545, Core Object Specification (iCalendar)", RFC 5545,
September 2009. September 2009.
[RFC5546] Daboo, C., "iCalendar Transport-Independent [RFC5546] Daboo, C., "iCalendar Transport-Independent
Interoperability Protocol (iTIP)", RFC 5546, December Interoperability Protocol (iTIP)", RFC 5546, December
2009. 2009.
[UNICODE.CLDR] [UNICODE.CLDR]
"CLDR calendar.xml Data", Unicode Consortium CLDR, "CLDR calendar.xml Data", Unicode Consortium CLDR,
September 2014, <http://www.unicode.org/repos/cldr/tags/ <http://www.unicode.org/repos/cldr/tags/latest/common/
release-26/common/bcp47/calendar.xml>. bcp47/calendar.xml>.
11.2. Informative References 11.2. Informative References
[ISO.8601.2004] [ISO.8601.2004]
International Organization for Standardization, "Data International Organization for Standardization, "Data
elements and interchange formats - Information interchange elements and interchange formats - Information interchange
- Representation of dates and times", ISO Standard 8601, - Representation of dates and times", ISO Standard 8601,
2004. 2004.
[UNICODE.ICU] [UNICODE.ICU]
"International Components for Unicode", Unicode Consortium "International Components for Unicode", Unicode Consortium
ICU, April 2014, <http://site.icu-project.org>. ICU, April 2014, <http://site.icu-project.org>.
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 calext-WG -00: Changes in draft-ietf-calext-rscale-01:
1. Editorial changes/fixes per document shepherd review.
2. Switched CLDR reference to "tags/latest".
Changes in draft-ietf-calext-rscale-00:
1. Updated some references. 1. Updated some references.
2. Editorial changes/fixes. 2. Editorial changes/fixes.
Changes in -04: Changes in draft-daboo-icalendar-rscale-04:
1. Always use "L" suffix for leap months, even for Hebrew calendar. 1. Always use "L" suffix for leap months, even for Hebrew calendar.
2. Remove negative month numbers to go back to base 5545 definition. 2. Remove negative month numbers to go back to base 5545 definition.
3. Added example for Gregorian leap day with skip. 3. Added example for Gregorian leap day with skip.
4. Clarify that RSCALE names are case insensitive, but with upper 4. Clarify that RSCALE names are case insensitive, but with upper
case preferred. case preferred.
5. Clarify that BYSETPOS processing is done after SKIP. 5. Clarify that BYSETPOS processing is done after SKIP.
6. Remove Islamic example in favor of Ethiopic example which shows a 6. Remove Islamic example in favor of Ethiopic example which shows a
13th month. 13th month.
Changes in -03: Changes in draft-daboo-icalendar-rscale-03:
1. Added details about handling RSCALE in iTIP. 1. Added details about handling RSCALE in iTIP.
2. Added details about handling RSCALE in CalDAV. 2. Added details about handling RSCALE in CalDAV.
3. Fixed examples to use ICU Chinese epoch and added text describing 3. Fixed examples to use ICU Chinese epoch and added text describing
why that is not an issue for actual recurrence calculations. why that is not an issue for actual recurrence calculations.
Changes in -02: Changes in draft-daboo-icalendar-rscale-02:
1. Fixed some incorrect dates in examples. 1. Fixed some incorrect dates in examples.
2. Clarified use of CLDR and alias, deprecated, preferred 2. Clarified use of CLDR and alias, deprecated, preferred
attributes. attributes.
3. Clarified when SKIP processing occurs. 3. Clarified when SKIP processing occurs.
Changes in -01: Changes in draft-daboo-icalendar-rscale-01:
1. Removed requirement that RSCALE be the first item in an RRULE. 1. Removed requirement that RSCALE be the first item in an RRULE.
2. Added BYLEAPMONTH element and removed BYMONTH "L" suffix. 2. Added BYLEAPMONTH element and removed BYMONTH "L" suffix.
3. Removed Open Issues. 3. Removed Open Issues.
Authors' Addresses Authors' Addresses
Cyrus Daboo Cyrus Daboo
 End of changes. 14 change blocks. 
20 lines changed or deleted 25 lines changed or added

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