Google Calendar processing same ics file differently as an import vs as a webcal stream

1.5k Views Asked by At

I created a webcal stream, and Google Calendar reads it successfully, and creates events. However, the events it creates are 5 hours earlier than they should be. The event below, for instance, comes up at 1pm.

If I take the same webcal stream and save it as an .ics file, and then import that file into Google calendar, all the times are correct.

Why would Google calendar handle these differently? In the Mac Calendar application, the events come up at the right time, whether I add them via the webcal stream, or by importing the .ics file.

Both Google Calendar and Mac Calendar know that I'm in EST (via calendar settings - nothing declared in the ICS file, as you can see).

I'd like Google to handle the webcal stream correctly, so that it will auto-update as I add more events.

The start of the ICS file, and a single event, are listed here. It shows up at 6pm in Mac Calendar, and 1pm in Google Calendar.

BEGIN:VCALENDAR
CALSCALE:GREGORIAN
METHOD:PUBLISH
PRODID:iCalendar-Ruby
VERSION:2.0
BEGIN:VEVENT
DESCRIPTION: football game on Sunday at 6pm, on NBC, with dinner
DTEND:20121208T233000Z
DTSTAMP:20130124T200858
DTSTART:20121208T230000Z
CLASS:PUBLIC
SEQUENCE:0
SUMMARY:sunday 6pm football game
UID:2013-01-24T20:08:58+00:00_945022440@e8deb599-a4b6-40a3-b82c-d1baf5e9109e
END:VEVENT
END:VCALENDAR
1

There are 1 best solutions below

3
On

This is because Google Calendar doesn't do floating timezones, so when there is no timezone specified it assumes to be UTC. Mac calendar assumes your timezone when you import something that does not have a specific timezone specified in the ics file. So you will have to have add timezone information to your file.

How Google Calendar works with time zones

Writing ICS files for multiple clients, including Google

Adding a VTIMEZONE section to your file should help:

BEGIN:VTIMEZONE
TZID:Eastern
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE