Outlookgooglecalendarsync: UTC-6 Timezones being selected at random for Outlook -> Gcal transfers. Some DST some not.

Created on 14 Sep 2019  Â·  10Comments  Â·  Source: phw198/OutlookGoogleCalendarSync

OGCS Version: v2.8.0 and 2.8.1-alpha
Installed or Portable: Installed
Windows Verson: 10 v1709 (64-bit)
Outlook Version Outlook for Office 365 v1902 (64-bit)

Bug Description
OGCS appears to have an issue with the timezone: (UTC-06:00) Central Time (US & Canada)

It appears (US & Canada) is being read by the app as (US %2A Canada) And it doesn't know what to do with that.

When I perform a full sync, outlook to google calendar, OGCS cannot detect the timezone of the Outlook calendar entry, so it defaults to the first available in the list with UTC of -6 (I am in USA Central time which has DST, but the randomly selected timezone doesn't always utilize DST). This results in some of the calendar entries showing up in google calendar with the correct time and some an hour later as each is randomly assigned a UTC -6 timezone (some Guatamala, some Managua, and some Central Time - Chicago)

Steps to Reproduce the Issue
Install OGCS 2.8.0 or 2.8.1
Select default outlook calendar
Auth google and select calendar
Perform full sync
Check OGcalsync log and search for timezone

OGcalsync error lines

log

2019-09-13 16:49:53,677 DEBUG  7 OutlookGoogleCalendarSync.GoogleOgcs.Calendar [0] -  Processing >> 9/17/2019 10:00 AM => "Nope"
2019-09-13 16:49:53,709 DEBUG  7 OutlookGoogleCalendarSync.GoogleOgcs.Calendar [0] -  Processing >> 9/13/2019 9:00 AM => "App - Continue discussion"
2019-09-13 16:49:53,730 DEBUG  7 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Retrieving the meeting organiser's timezone ID.
2019-09-13 16:49:53,730 WARN  7 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone ID based on given description. Attempting some fuzzy logic...
2019-09-13 16:49:53,731 DEBUG  7 OutlookGoogleCalendarSync.NotificationTray [0] -  Found a UTC timezone offset of -6
2019-09-13 16:49:53,731 WARN  7 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone with GMT offset of -6 for country (UTC-06:00) Central Time (US %2A Canada). Picking the first offset match regardless of country.
2019-09-13 16:49:53,920 DEBUG  7 OutlookGoogleCalendarSync.Console [0] -  9/13/2019 9:00 AM  "App - Continue discussion"
2019-09-13 16:49:53,921 DEBUG  7 OutlookGoogleCalendarSync.Console [0] -  AttributeChangeStart TimezoneAmerica/Managua → America/GuatemalaEnd TimezoneAmerica/Managua → America/GuatemalaAttendee added{redacted attendees added}
2019-09-13 16:49:53,990 DEBUG  7 OutlookGoogleCalendarSync.Console [0] -  7 attributes updated.
2019-09-13 16:49:54,562 DEBUG  7 OutlookGoogleCalendarSync.GoogleOgcs.Calendar [0] -  Processing >> 9/12/2019 3:00 PM => "OoO"
2019-09-13 16:49:54,589 DEBUG  7 OutlookGoogleCalendarSync.GoogleOgcs.Calendar [0] -  Processing >> 9/11/2019 1:30 PM (R) => "Canceled: CR/DO Sync meeting"
2019-09-13 16:49:54,590 DEBUG  7 OutlookGoogleCalendarSync.Recurrence [0] -  Creating Google iCalendar definition for recurring event.
2019-09-13 16:49:54,604 DEBUG  7 OutlookGoogleCalendarSync.Recurrence [0] -  RRULE:FREQ=WEEKLY;UNTIL=20200304T133000Z
2019-09-13 16:49:54,625 DEBUG  7 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Retrieving the meeting organiser's timezone ID.
2019-09-13 16:49:54,625 WARN  7 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone ID based on given description. Attempting some fuzzy logic...
2019-09-13 16:49:54,626 DEBUG  7 OutlookGoogleCalendarSync.NotificationTray [0] -  Found a UTC timezone offset of -6
2019-09-13 16:49:54,626 WARN  7 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone with GMT offset of -6 for country (UTC-06:00) Central Time (US %2A Canada). Picking the first offset match regardless of country.
2019-09-13 16:49:55,403 DEBUG  7 OutlookGoogleCalendarSync.Console [0] -  9/11/2019 1:30 PM   "Canceled: CR/DO Sync meeting"
2019-09-13 16:49:55,404 DEBUG  7 OutlookGoogleCalendarSync.Console [0] -  AttributeChangeRecurrenceRRULE:FREQ=WEEKLY;UNTIL=20200304T193000Z → RRULE:FREQ=WEEKLY;UNTIL=20200304T133000ZAttendee added{redacted attendees added}
2019-09-13 16:49:55,456 DEBUG  7 OutlookGoogleCalendarSync.Console [0] -  16 attributes updated.
2019-09-13 16:49:56,871 DEBUG  7 OutlookGoogleCalendarSync.Recurrence [0] -  9/11/2019 1:30 PM (R) => "Canceled: CR/DO Sync meeting"
2019-09-13 16:49:56,872 DEBUG  7 OutlookGoogleCalendarSync.Recurrence [0] -  This is a recurring appointment with 1 exceptions that will now be iteratively compared.


Enhancement checklist by @phw198

  • [x] Create XML file to persist custom timezone mappings
  • [x] GUI to administrate custom mappings
  • [x] During fuzzy logic stage, populate GUI + user confirmation
  • [x] In-memory dictionary of existing mappings for use during sync
bug enhancement resolved

All 10 comments

I have the same problem with some entries (mostly recurring events), the events that have (GMT-05:00) Eastern Time (US and Canada) timezone get changed to (GMT-05:00) Colombia Standard Time. Which add 1 hours to those events.

@Mizaring Can you open your OGcalsync.log and see if you have any errors similar to mine?

Could not find timezone with GMT offset of -6 for country (UTC-06:00) Central Time (US %2A Canada). Picking the first offset match regardless of country.

I'm specifically curious if you search for GMT offset if yours also refers to US %2A Canada in the log. I'm fairly certain that is the root of the issue.

You can find your OGcalsync.log by opening the app and going to:
Settings > Application Behavior > Open Log

Yes I can confirm the error with the wrong mapped timezone :

2019-09-20 09:01:53,203 FINE  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Meeting organiser is someone else - checking their timezone.
2019-09-20 09:01:53,221 FINE  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Appointment's timezone: (UTC-05:00) Est (É.-U. et Canada)
2019-09-20 09:01:53,222 FINE  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Organiser's timezone:   (UTC-05:00) Eastern Time (US & Canada)
2019-09-20 09:01:53,222 DEBUG  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Retrieving the meeting organiser's timezone ID.
2019-09-20 09:01:53,222 WARN  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone ID based on given description. Attempting some fuzzy logic...
2019-09-20 09:01:53,222 DEBUG  3 OutlookGoogleCalendarSync.NotificationTray [0] -  Found a UTC timezone offset of -5
2019-09-20 09:01:53,223 WARN  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone with GMT offset of -5 for country (UTC-05:00) Eastern Time (US & Canada). Picking the first offset match regardless of country.
2019-09-20 09:01:53,223 FINE  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Timezone "(UTC-05:00) Eastern Time (US & Canada)" mapped to "America/Bogota"
2019-09-20 09:01:53,223 FINE  3 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Timezone "(UTC-05:00) Eastern Time (US & Canada)" mapped to "America/Bogota"

It was working fine before the change to version 2.8. I think the last working version I used was 2.7.8.0 or 2.7.7.0.

Thanks!

Tested now with 2.8.2.0 and still in error.

Switching to this issue (from #67 )

Here my fine log:

2019-11-15 09:53:14,492 DEBUG  10 OutlookGoogleCalendarSync.Recurrence [0] -  Creating Google iCalendar definition for recurring event.
2019-11-15 09:53:14,502 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  Building RRULE
2019-11-15 09:53:14,502 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  Determining pattern for frequency olRecursWeekly.
2019-11-15 09:53:14,512 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  WEEKLY
2019-11-15 09:53:14,512 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  DayOfWeekMask = 40
2019-11-15 09:53:14,512 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  WE,FR
2019-11-15 09:53:14,512 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  Checking end date.
2019-11-15 09:53:14,512 FINE  10 OutlookGoogleCalendarSync.Recurrence [0] -  20201112T150000Z
2019-11-15 09:53:14,522 DEBUG  10 OutlookGoogleCalendarSync.Recurrence [0] -  RRULE:FREQ=WEEKLY;BYDAY=WE,FR;UNTIL=20201112T150000Z
2019-11-15 09:53:14,532 FINE  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Meeting organiser is someone else - checking their timezone.
2019-11-15 09:53:14,819 FINE  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Appointment's timezone: (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
2019-11-15 09:53:14,819 FINE  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Organiser's timezone:   (UTC+01:00) Brussels, Copenhagen, Madrid, Paris
2019-11-15 09:53:14,819 DEBUG  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Retrieving the meeting organiser's timezone ID.
2019-11-15 09:53:15,196 WARN  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone ID based on given description. Attempting some fuzzy logic...
2019-11-15 09:53:15,196 DEBUG  10 OutlookGoogleCalendarSync.NotificationTray [0] -  Found a UTC timezone offset of 1
2019-11-15 09:53:15,196 WARN  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Could not find timezone with GMT offset of 1 for country (UTC+01:00) Brussels, Copenhagen, Madrid, Paris. Picking the first offset match regardless of country.
2019-11-15 09:53:15,196 FINE  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Timezone "(UTC+01:00) Brussels, Copenhagen, Madrid, Paris" mapped to "Africa/Lagos"
2019-11-15 09:53:15,196 FINE  10 OutlookGoogleCalendarSync.OutlookOgcs.OutlookNew [0] -  Timezone "(UTC+01:00) Brussels, Copenhagen, Madrid, Paris" mapped to "Africa/Lagos"

This one's a bit of a head-scratcher...and it looks to have plagued the original Google Calendar Sync.

Essentially, the timezone information surfaced by Outlook for a recurring meeting is already converted to localtime (of the recipient) and can be wrong, so the next best attempt is a text string buried deeper inside the Outlook object model that stores the timezone of the meeting organiser. Problem is, the text string can basically be anything (a valid timezone or not) and any language. OGCS is attempting to map this string back to an actual timezone, but when the language differs it's clearly failing, and it then often picks a timezone for which DST may not match the sender's timezone.

I'm thinking I may need to provide a way for users to manually specify custom maps from an organiser's timezone string of eg (UTC+01:00) Brussels, Copenhagen, Madrid, Paris (produced from an English Windows machine) to the recipients (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris (the recipients French Windows machine).

Be interested if anyone else has other ideas, but I'm going to mark this as an enhancement given it's ultimately a failing of Outlook.

:package: OK, please have a play with development build v2.8.2.19.zip (see instructions for applying).

When an ambiguous organiser timezone is encountered, a new window should pop up that will allow you to manually match that timezone to the appropriate Windows system timezone.

Try running a full sync (Shift+Sync) and let me know how it goes!

Good for me.
Just a quick note, once I selected a correspondence for a given timezone, I got a second line with a blank time zone. I gave him the same correspondence and it worked fine.

I think I'll make the organiser timezone column read-only - that should also get rid of the empty bottom row.

:package: Development build v2.8.2.24.zip (see instructions for applying).

The prompt/select fix works great. :-) Thank you. (Sorry for not responding sooner).

Was this page helpful?
0 / 5 - 0 ratings