Question

I have an iCal event specified in UTC with repeats. Everything appears to be output properly, yet iCal clients are flailing: the repeat pattern is M,W,F but the start date (translated to UTC) is a Tuesday.

The repeat pattern being incorrectly calculated is S,T,R.

This is the ical output that is not working properly:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME: Room ICCS008
PRODID:-//Drupal iCal API//EN
BEGIN:VEVENT
UID:calendar.18861.field_date.0.8
SUMMARY:CPSC 210 L2C
DTSTAMP:20110518T123628Z
DTSTART:20110621T010000Z
DTEND:20110621T033000Z
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR;UNTIL=20110730T033000Z
URL;VALUE=URI:https://localhost/event/2011/06/cpsc-210-l2c
END:VEVENT
END:VCALENDAR

The event is supposed to start June 20th at 6:00pm PST. The calendar rightly translates this to June 21st at 1:00am for UTC. It repeats M,W,F for a month. However it seems to be totally throwing off both Google Calendar and Apple iCal's calculation of the repeat events.

The first event is showing up on Monday, but the second is on Tuesday, the third Thursday, and from then on it's S,T,R for the repeating pattern until the end.

Is this an iCal bug? Is this something that is being output wrong by my iCal creator (Drupal's Views iCal)?

UPDATE: Ok, lots of people have imported this and it works in all cases except on Apple iCal and Thunderbird Lightning.

This is because on import clients are (I believe) globally-scoping the timezone and shifting everything in one go, correctly.

However if you subscribe to it with GCal, it individually-scopes each of the events' times and goes kerplewey, showing the behaviour I described above.

UPDAT-IER

The iCal file itself is wrong - for some reason certain clients can handle the wrongness and others can't, but the event as specified in UTC is actually repeating every T,R,S at 1:00am, and the "good" clients shift this back based on the local TZ. The iCal creation-process calculated the repeat days based on the local timezone rather than the converted-to-UTC-one. This is a bug in the Drupal iCal implementation.

Was it helpful?

Solution 2

The iCal file above is wrong.

For some reason certain clients can handle the wrongness and others can't, but the event as specified in UTC is should actually specify a repeating period of every T,R,S (at 1:00am UTC), and the "good" clients shift this back based on the local TZ to be M,W,F.

The output is calculating the repeat days based on the local timezone where the repeat is input (M,W,F) rather than the converted-to-UTC-one.

So... over to drupal.stackexchange.com =)

OTHER TIPS

Check your CCK date field. Is it set to UTC, Site Time Zone or User time zone?

Make sure it's set to whatever time zone you're using to input dates.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top