share-extras / ical-feed-dashlet

Display upcoming events from any iCal feed accessible over the Internet, similar to the RSS Feed dashlet provided in Alfresco Share
3 stars 1 forks source link

GMT offset in Google Calendars not being honored #1

Open iancrew opened 11 years ago

iancrew commented 11 years ago

The iCal Feed dashlet doesn't appear to be honoring the timezone settings in an iCal feed from Google Calendar.

The events in the feed show as their GMT time, without taking into account the (currently GMT-7) offset to the PDT (Pacific Daylight Time) timezone. So, for example, an event entered for 5-6PM in Google shows up as being from midnight-1AM when viewed via the iCal Feed Dashlet.

See below for all the data. To me, this feels like a bug, but maybe I'm missing something settings-wise??

Thanks!

Ian Crew UC Berkeley http://directory.berkeley.edu/details.pl?uid=13442

Note the "Test 2" event in the following two screenshots: Screen Shot 2013-04-26 at 1 46 55 PM

vs:

Screen Shot 2013-04-26 at 1 47 29 PM

The timezone is set correctly for the Alfresco server in the tomcat JAVA_OPTS via the "-Duser.timezone=PST" flag.

The timezone is set correctly for the calendar in Google: Screen Shot 2013-04-26 at 1 48 09 PM

As well as for the event itself: Screen Shot 2013-04-26 at 1 55 34 PM

An iPhone configured to read the same iCal feed shows the times correctly: image

The start of the iCal Feed looks like:

BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALNAME:Hub Shared X-WR-TIMEZONE:America/Los_Angeles X-WR-CALDESC: BEGIN:VTIMEZONE TZID:America/Los_Angeles X-LIC-LOCATION:America/Los_Angeles BEGIN:DAYLIGHT TZOFFSETFROM:-0800 TZOFFSETTO:-0700 TZNAME:PDT DTSTART:19700308T020000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0700 TZOFFSETTO:-0800 TZNAME:PST DTSTART:19701101T020000 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTART:20130426T230000Z DTEND:20130427T000000Z DTSTAMP:20130426T202743Z UID:bn1j6ootlrr98mdmmtjprhppe8@google.com CREATED:20130426T194225Z DESCRIPTION: LAST-MODIFIED:20130426T194225Z LOCATION: SEQUENCE:0 STATUS:CONFIRMED SUMMARY:upcoming event (testing hub iCal dashlet) TRANSP:OPAQUE END:VEVENT

wabson commented 11 years ago

I can confirm this is a limitation of the current parsing, which does not take account of time zones. The parsing is done with the web script ical-feed-data.get.js, so either this would require extending, or replacing with a Java equivalent web script utilising a suitable library.

iancrew commented 11 years ago

Thanks Will. We (the University of California, Berkeley) are interested in this because it would be a simple way to integrate Google Calendar--which we use for all our scheduling on campus--into our Alfresco EE instance. I did a little poking around this morning, and I wonder if https://code.google.com/p/ijp/ might be useful as either a replacement for ical-feed-data.get.js, or as a guide to getting the timezone support working?

wabson commented 11 years ago

Thanks for the feedback. That's a really nicely-written little parser and also the best I could find out there, it's just a shame it doesn't support VTIMEZONE. Still, I'll create a separate branch and see if I can get that working, as the code looks to be pretty extendible.