Scheduling meetings with folks in remote timezones is always a fraught process for me. There are just so many opportunities for me to have an off-by-one (or two, or three) error. Google Calendar helps a lot by showing an additional time zone on the calendar, but I am typically flipping back and forth between a handful of remote timezones. Changing the remote timezone displayed in Google Calendar involves a lot of friction: a roundtrip to the Settings menu. So typically I don’t bother changing the timezone, instead opting to recalculate time zones in my head which is kinda back to square one.
I figured there had to be a faster way, so I decided to celebrate Spring Break by hacking up a little UI modification that allows for faster switching among a handful of timezones. Leveraging moment.js for its wonderful timezone support and a bit of magic to get a dropdown box to appear, I put together a simple userscript/content script, available on github.
Here’s a screenshot of the original Google Calendar setup:
You can switch between timezones easily: as soon as a new timezone is selected, the times listed in the first column of the calendar are recomputed. moment.js does the actual time computation, taking daylight savings and lots of other complications into account.
To edit the timezone abbreviations displayed in the dropdown box (and the actual timezones they correspond to) you have to edit the script, which is a bit tedious. Details of this process are available on github. Caveat: I’ve only tested the code on Chrome 33.0 on Mac so far.