[Ietf-calsify] PERIOD types
bruce at callenish.com
Thu Apr 14 11:29:31 PDT 2005
Reinhold Kainhofer wrote:
>On Wednesday 13 April 2005 20:51, Bruce Atherton wrote:
>>This is something I've never understood about the iCalendar standard.
>>Why isn't timezone primarily a presentation issue? If every date in
>>iCalendar were stored in UTC, many problems go away. Then the CUA can
>>render the event according to whatever the CU wants to see.
>>There are two exceptions I can think of to this. RRULEs/EXRULES need a
>>timezone attached, but only to indicate when the UTC rendering should
>>shift due to DST issues.
>No, not only for DST shifts. You need it e.g. for events that recur at 00:30
>every sunday (in central european time). In UTC this would be 23:30 on
>saturday, so the weekday of the recurrence rule heavily depends on the time
>Similarily, an event at 00:30 at every first of each month in CET (or CEST).
>In UTC this is 23:30 at every last of each month.
>In these two examples the RRULE can theoretically be adjusted to UTC.
>But take e.g. 0:30 on ever first monday of each month. In UTC ths would be
>23:30 on sunday, but not necessarily on each first sunday. If the 1st falls
>on a monday the event would recur on the last day of the previous month. This
>RRULE cannot be transferred to UTC at all.
You make a good point that the definition of when an event is on a
particular weekday defined in an RRULE depends on the timezone, but that
just reemphasizes that RRULE needs a timezone. We are in agreement there.
But I don't see why you think the first Monday of the month can't be
done with UTC. It may be due to my ignorance, but I don't understand
In your example, your RRULE would have a timezone of CET, a frequency of
monthly, and a ByDay of +1MO. The DTSTART would have a time of 233000 on
the previous day. If you look at it with the CET timezone, the CUA would
adjust the time to 013000 of the next day, check that the date equates
to Monday in the CET timezone, and you are good to go. If you look at
the same occurrence in the PST8PDT timezone, it becomes 153000 and stays
on the previous day (Sunday). This gets checked to see if the same date
and time equates to Monday in the CET timezone. It is, and again
everything works out.
What am I missing?
More information about the Ietf-calsify