Integrating GitLab and Google Calendar.

Zeall, like many other software startups, uses GitLab for version control and issue management. We also use the ever-popular Google Calendar to handle meetings, reminders, and deadlines. For several months, we’ve been looking for a way to automatically push GitLab issue deadlines into Google Calendar, and until now it seemed impossible. Only after a recent migration from our own private mailserver to G Suite did we find a solution – or rather, figure out how to feasibly build one.

visualization of a gitlab issue and corresponding calendar entry

GitLab’s webhooks make it pretty easy to obtain information about new and modified issue deadlines, however the problem has always been pushing that information into Google Calendar. I had previously explored the Google Calendar API and ultimately decided that implementing our own solution wasn’t worth it, simply because authorization would be a nightmare – there was no easy way to share a calendar with our team’s members. However, once we got a G Suite domain, I found it was possible to use a domain scope for Calendar ACLs. I simply created a service account for our integration, set it up to grant read access to our entire domain, and implemented some basic logic to map GitLab issues to calendar events.

As far as I can tell, I’m the first person to have successfully integrated GitLab issues into Google Calendar; however, I’m sure I’m not the first to want to do so. Therefore, to spare others from sharing in my misery I’ve decided to make the fruit of my labor available on GitHub for anybody to use. Try it out, and be sure to let me know if it breaks.