One of the things I’ve been planning/intending to do is build a home calendar that shows all of our events at a glance, and to run it on a tablet or something similar. We use Google calendars for most of our events, and since the intent is to show us everything that is going on, we’ll need to be able to authorize and authenticate to multiple calendars, pull the events, and display them.
One of the threads that either got me started thinking about this or was one of the first things I ran across when I had the idea was this one on Reddit. I have a couple of Pi’s, and had generally planned on using one of them (and may yet for a similar design on a TV with a little more functionality), but ended up picking up an RCA Cambio tablet at Wal Mart for around a Benjamin, so I didn’t really need to fiddle around with adding a screen, mounting, network connectivity, etc.
The above thread led me to what I believe will work for the dashboard interface – freeboard.io. While I have a distant familiarity with JSON and XML, I don’t work with it enough to be particularly good at it, and I’m pretty much completely unfamiliar with the Google APIs and how to call them, so I wanted to note a few links that were helpful as I was working through the process.
- Creating a Google Public API Key (gets rid of the quota exceeded error if you don’t specify the key on the URL) – http://www.daimto.com/google-developer-console-create-public-api-key/
- Google API Libraries and Credentials – https://console.cloud.google.com/apis/credentials
- Google API Explorer link for a list of calendar events on a Northern Brewer public calendar I used for testing – https://developers.google.com/apis-explorer/#s/calendar/v3/calendar.events.list?calendarId=northernbrewer.com_tos74v4of4fovlhvcadgckm0mc%2540group.calendar.google.com&_h=3&
- Calendar ID for above: northernbrewer.com_tos74v4of4fovlhvcadgckm0mc@group.calendar.google.com
- Interesting home automation post for building a temperature/humidity/light sensor that would be fun to do later – https://www.openhomeautomation.net/internet-of-things-dashboard/
Code that actually ended up working to pull the basic info from a public calendar (just grabs “id” now):