[Ietf-calsify] 2nd and higher instance busted across time
zone changes.
Cyrus Daboo
daboo at isamet.com
Sat Apr 9 18:59:50 PDT 2005
Hi Reinhold,
--On Sunday, April 10, 2005 02:15:52 AM +0200 Reinhold Kainhofer
<reinhold at kainhofer.com> wrote:
> 45 minutes after the 1st instance ended. (Take the rdate and simply add
> the difference between dtend and dtstart to it).
No - you are missing the point. Lets explain this again a little
differently:
Consider an event that occurs twice between the hours of 12 am and 8 am
local time (EST is used in my example). It occurs on two consecutive
Sundays. One of those Sundays involves a daylight savings change. So:
Instance 1 (this is the one where DST changes):
DTSTART;TZID=US/Eastern:20050403000000
DTEND;TZID=US/Eastern:20050403080000
Instance 2:
RDATE;TZID=US/Eastern:20050410000000
Note that in instance 1 the clocks go forward an hour at 2 am. So the
duration of the event is actually 7 hours as opposed to 8 hours. Using your
algorithm ("Take the rdate and simply add the difference between dtend and
dtstart to it") would result in the second instance ending at 7 am. Is that
what was intended or should it end at 8 am? i.e. is the local end time
supposed to be fixed or is the duration supposed to be fixed? You would
have a similar problem if DURATION was used instead of DTEND.
The issue is that right now clients have to infer the end time of
recurrence instances (after the first one) in some unspecified manner (2445
does not really explain), unless an RDATE with PERIOD values is used (the
period explicitly gives both the start and the end).
i.e. to remove any ambiguity the second instance could have been specified
as:
RDATE;VALUE=PERIOD;TZID=US/Eastern:20050410000000/20050410080000
(always end at 8 am local time)
or:
RDATE;VALUE=PERIOD;TZID=US/Eastern:20050410000000/20050410070000
(always run for 7 hours)
depending on what was actually wanted.
--
Cyrus Daboo
More information about the Ietf-calsify
mailing list