If you create a recurring event whose start date and end dates span a DST change, the iCal instance processor creates duplicate event instance nodes beginning on the date of the DST change. For example, if we create a daily event that begins in February of 2001 and continues beyond March 13th, then duplicate instances are created for the event beginning on March 13th. The first instance will have a start time of 0:00, and the second instance will have a start time of 1:00.

CommentFileSizeAuthor
#3 dst-1071036-3.patch1.03 KBstevector
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Bill Bostick’s picture

Title: Duplicate instances created for recurring events when start end end dates cross DST boundaries » Duplicate instances created for recurring events when start and end dates cross DST boundaries

Correct typo in title...

Bill Bostick’s picture

My example should read 2011, not 2001... I really shouldn't create issues prior to 2pm...

stevector’s picture

FileSize
1.03 KB

I think the problem was that ICalInstanceProcessor->findMostRecentInstance() uses the database timezone instead of the event timezone for its date object. Here is a patch that converts that date object to the event timezone.

stevector’s picture

The above patch will only fix instances in a series that have at least one accurate event still in the future. If the only future events are past DST and incorrect, they will have to be manually deleted. Once they are cleared, cron should replace them with correct dates.

stevector’s picture

Status: Active » Needs review