Menu

#68 Recurrence does not properly account for DST changes

open
nobody
recur (12)
5
2010-11-29
2010-11-29
No

From RFC 5545:

Every other week on Monday, Wednesday, and Friday until December
24, 1997, starting on Monday, September 1, 1997:

DTSTART;TZID=America/New_York:19970901T090000
RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;
BYDAY=MO,WE,FR

==> (1997 9:00 AM EDT) September 1,3,5,15,17,19,29;
October 1,3,13,15,17
(1997 9:00 AM EST) October 27,29,31;
November 10,12,14,24,26,28;

Note that the specification requires that on October 27 and later in 1997, Daylight Savings Time is in effect in America/New_York and the start time remains at 9:00, but adjusted for the time-change in local time.

Howver, with libical, this time specification results in the following events:
Mon Sep 1 05:00:00 1997
Wed Sep 3 05:00:00 1997
Fri Sep 5 05:00:00 1997
Mon Sep 15 05:00:00 1997
Wed Sep 17 05:00:00 1997
Fri Sep 19 05:00:00 1997
Mon Sep 29 05:00:00 1997
Wed Oct 1 05:00:00 1997
Fri Oct 3 05:00:00 1997
Mon Oct 13 05:00:00 1997
Wed Oct 15 05:00:00 1997
Fri Oct 17 05:00:00 1997
Mon Oct 27 04:00:00 1997
Wed Oct 29 04:00:00 1997
Fri Oct 31 04:00:00 1997
Mon Nov 10 04:00:00 1997
Wed Nov 12 04:00:00 1997
Fri Nov 14 04:00:00 1997
Mon Nov 24 04:00:00 1997
Wed Nov 26 04:00:00 1997
Fri Nov 28 04:00:00 1997
Mon Dec 8 04:00:00 1997
Wed Dec 10 04:00:00 1997
Fri Dec 12 04:00:00 1997
Mon Dec 22 04:00:00 1997

So there are actually two bugs here:
1) DST is not accounted for
2) The time 19970901T090000 should already be Eastern, but it's apparently being treated as UTC

Discussion


Log in to post a comment.