I was trying to get an ics that I had downloaded from Google Calendar to load into scheduler today and found the events were listed on my calendar with their UTC times rather than local time. It appears scheduler does not honor the time zone in the ics file and it assumes the DTSTART and DTEND times are local (does not try to the process the last character of the time string which indicates the time zone - (typically Z for Zulu - which is what Google does). I tried using the server_utc flag to work around this to no avail.
I stepped through the code and found that there does appear to be a bug in the way the scheduler processes UTC for iCal so even if it doesn’t support reading the time zone indicator from the time string, a fix to this bug would allow the server_utc flag to work around the problem.
Does anyone know how to submit a bug and proposed fix without a license?
On the chance that there is no other way to do this, I will submit the proposed bug fix here:
Line 5090 of the uniminified source is attempting to use the Date.UTC initializer if server_utc is specified AND if no time was specified. As the comment implies the intention was to use the UTC initializer if server_utc is specified AND time is also specified, the fix is to remove the ‘!’ on that line:
Change this (line 5090):
if (scheduler.config.server_utc && !t[1]) { // if no hours/minutes were specified == full day event
to this:
if (scheduler.config.server_utc && t[1]) { // if no hours/minutes were specified == full day event