Blog

Tuesday, January 21, 2014

Google Calendar Integration Upgrade Brings Speed Improvements to GQueues

Last November GQueues highly popular Google Calendar integration was completely re-written to use version 3 of the Google Calendar API. The upgrade was gradually rolled out to users in December, and hopefully you've noticed that queues load much faster now when you click on them. While the upgrade process was fairly seamless, quite a bit has changed behind the scenes to make these speed improvements possible.

GQueues 2-way syncing with Google Calendar has been a standout feature since 2009 when it was first added. To achieve this "real-time" 2-way syncing, whenever a person clicked to view a queue, GQueues checked the person's Google Calendar for any changes before displaying the tasks. This check increased the queue load-time 0.5 - 2 seconds depending on network congestion, but it was essential to providing the most current and accurate view of a person's tasks.

Last July Google added "push notifications" to the Calendar API. This was a significant improvement because it meant Google Calendar could be set to immediately notify a third-party server when any changes happened to a calendar instead of the server always having to check for changes. GQueues could finally be notified of calendar changes as they happened, and process them entirely in the background. The 2-second calendar check before a queue loaded could now be eliminated!

Unfortunately implementing the change was not so simple. The new "push notifications" feature is only available in version 3 of the Calendar API, which is wholly different than version 2 (which GQueues used), thus requiring a complete re-write of the calendar integration code. More troubling though, version 3 only supported OAuth2 for getting authorized access to a person's calendar. The Google Apps Marketplace did not support the newer OAuth2 protocol, so GQueues could not change to version 3 without leaving all its business users behind (obviously not a viable option). Fortunately Google updated the Marketplace in November to support OAuth2, and GQueues, as one of the launch partners finally had all the pieces in place to upgrade its calendar integration. After a few weeks of development and testing the upgrade was ready to launch and users now benefit from background calendar syncing and faster queue loading.

7 comments:

  1. Any chace of having the same colors of GQueues in GCalendar??

    ReplyDelete
    Replies
    1. It's a great idea and yes, eventually I would like to add this!

      Delete
    2. This seems like a must-have feature to me... I want to be able to hide / unhide different queues/lists, not only color-codes... I suppose this would imply having different calenders per list... is this hard to implement? is there a limit to how many calenders you can have or automate from a third party service?

      Delete
    3. I'll consider having a separate calendar per queue as something to add down the road. I'm a little hesitant to this approach because it can easily make your calendar very busy and cluttered - most people have lots of queues in their account, so having 20-30 GQueues calendars might be a bit much. Perhaps with enough settings and options people could get only what they want.

      Delete
  2. I just switched to GQueues and am now in Trial mode.
    I use many calendars in Google calendar to exactly have a visual colored impact of my week for every life area.
    I think that in GQueues this could be translated as a Color (or calendar) for every Category (instead of every Queue).
    This way we could have colors and "group tasks" by color without obrtaining a "patchwork"

    ReplyDelete
  3. My different queues have different colors. IS THERE A WAY TO PRESERVE THESE COLORS IN GOOGLE CALENDAR? Currently, they all show up in the calendar as only one color... the one color I am able to pick for all queues within the calendar.

    ReplyDelete
    Replies
    1. Sorry, this is not currently possible. All tasks will appear as the same color in Google Calendar.

      Delete