- From: Rich Tibbett <richt@opera.com>
- Date: Wed, 08 Sep 2010 01:06:49 +0200
- To: Robin Berjon <robin@robineko.com>
- CC: Cyrus Daboo <cyrus@daboo.name>, Rich Tibbett <rich.tibbett@gmail.com>, Thomas Roessler <tlr@w3.org>, W3C Device APIs and Policy WG <public-device-apis@w3.org>
- Message-ID: <4C86C589.8010401@opera.com>
Robin Berjon wrote: > On Sep 7, 2010, at 15:05 , Cyrus Daboo wrote: > >> So having thought about this a little, the following would be needed in iCalendar to support alternative calendar systems: >> >> 1) A generalization of the ISO-8601 date-time format subset, as used by iCalendar, to support other calendar scales. At its simplest this probably means relaxing the limits on the month and day values (i.e., some calendar systems have more than 12 months in a year). >> >> 2) Change the RRULE property definition to support arbitrary calendar systems. e.g., right now the RRULE property defines some elements that use Gregorian day name abbreviations (SU, MO, TU, WE, TH, FR, SA). So those should be changed to perhaps a numeric or alpha representation with a well-defined mapping to actual day names in each calendar system. With that the current RRULE definition may also be sufficient for use with other calendar systems. >> >> Again this all boils down to the question of whether recurrence rules are a requirement for non-Gregorian systems. I think that is the first question that must be answered. >> > > I believe that they are — the use cases I've heard seem to frequently involve birthdays and holidays. > I believe these two use cases are enough to validate this as a requirement for recurring non-Gregorian events. > But there's also a pragmatic sausage-factory aspect to take into consideration. It seems that properly supporting recurrence in non-Gregorian calendars would require non-trivial changes to iCalendar. We're happy to help, but we're the wrong group to do that. I think this is pointing at an update to iCalendar, which we would mirror in a future revision. > I reflect this opinion. It does defer the onus to IETF but the W3C effort here is not to invent new calendaring formats at the expense of interoperability with existing formats (iCalendar). We hope this discussion and others will be helpful to the groups defining these formats and we will provide any and all input that we can to that process. > I'd like to find a solution that is as I18N-friendly as possible but can be made to work atop iCalendar as deployed today. I'm not at all fluent with calendar modelling, but could we recommend that: > > • in version 1, for non-Gregorian calendars, a long list of RDATE be generated; and > This could certainly work for non-Gregorian usage. A long list of RDATE is certainly a workable proposal for lunisolar recurrence in the first instance, essentially distilling recurring events to a finite set of 'static' dates that can be modelled as Gregorian dates for storage purposes. It builds atop of what we currently have in iCalendar but obviously has its limitation at X number of recurrences. So what is X? Is it an arbitrary implement-dependent or independent value? A first version like this allows us to build atop of an iCalendar compliant design in subsequent versions in sync with iCalendar development around this topic. > • an X-USER-CALENDAR extension (which we'd define) be included to specify which calendaring system to use when displaying the event? > This could be good, though perhaps a client will just choose to display an event based on the current user's locale rather than on the original format used to specify the event. The user has a local calendaring mode, the storage is in Gregorian and so we can do conversion (or not) based on that information. At the point of displaying the calendaring data the non-Gregorian system used to generate the event has already been wiped out (in exchange for X number of recurrence representations). The user's locale is important here as compared to the originator's calendaring locale for displaying any recurrence rules included. So if the user is on a Gregorian system then display the event in a Gregorian format. If the user is on a Lunisolar system then pass the date information through a convertor and then display the event in the Lunisolar format. - Rich
Received on Tuesday, 7 September 2010 23:07:35 UTC