Google Calendar Support & Some Progress!

June 14, 2020

Hello again!

I’ve been busy-ish adding functionality to isBusy. Progress has been pretty good so far. I’ve added some basic settings, a simple status page, and even the first calendar integration (Google Calendar). So far, settings include:

  • being able to set time for “working hours” so family/friends can easily know when you are working (but not in a meeting)
  • settings for meal time, defaulted to 12-1
  • a display name so you can control what shows up on your status page

I know part of the challenge of working remotely is that your family or whoever you live with might not understand the nuances of your daily schedule. I want to make it a little be easier for folks to understand if you’re working, if you’re semi-available (like during lunch), and make sure the app adjusts to people’a varying schedules.

Google Calendar Integration

I use Google Calendar for work and personal matters, so I started here. The process of integrating with Google was pretty smooth overall. I’ve worked with Google’s APIs before and they are generally well-documented and easy enough to work with. One thing that did come to mind was the general clunkiness of OAuth 2. Excited to look into things like webauthn that are purportedly more modern takes on federating web systems in a secure way.

I did have go through the verification process of isBusy to work with what Google deems “sensitive scopes” due to accessing basic calendar info. isBusy will never store any calendar data or read anything besides free/busy info about a meeting, but it was interesting to go through. In a way, I’m glad that there’s a well-defined process for accessing this kind of data. I imagine there were some less-than-good situations along the way to the current policy and workflow that resulted in folks giving away a lot of their Google data.

Simple status page

Here’s a few examples of the initial status page with a working integration:

available status page working status page busy

Stay tuned for more!

© Mark Thomas 2020