• 15.1.2024

Automating Meeting Documentation with Google Cloud: A Node.js Solution


Our company has been using Google Drive for storing some documents for years. Every Circle has their own Google Drive folder where they store their meeting notes / minutes. In the beginning, it was a wild wild west, when each scribe had their own way of formatting the minutes and the document structure. Then we brainstormed a structured template that eliminated some of those problems, but it still had to be manually copy-pasted and re-named when the next meeting occurred.

However, I noticed that our calendar invitations followed a specific format. For example, a Circle that would be focused on Marketing would always have the calendar invitation title like this: Marketing Circle: Next steps in our marketing plan. There you have it; a specific Circle and the agenda for the next meeting.

An example picture of the meeting minutes template:



meeting minutes template example

What if there was a way to write a cloud function that read our company calendar and collected all Circle-related meetings?

Well indeed there is.

I still needed to figure out whose calendar I am going to read? All employees? Not efficient. Since we use separate meeting rooms as resources, maybe that would be a good approach.

I collected all our resource ids in an array.

meeting minutes calendar ids

Then, in pseudocode, I looped over them and read the calendar events and their participants, and wrote that info inside a relevant google doc.

meeting minutes pseudo code

To my dissatisfaction, the Google Calendar API wasn’t quite consistent when returning the list of participants, so it resulted in some bugs I couldn’t figure out.


When working solely on a voluntary-based model where each Circle’s scribe is a regular consultant who volunteers to take notes, this automation takes some load off that burden. Of course this is prone to errors any time Google changes their API.

If you are in need of this kind of solution, Circles Consulting is happy to help.


Written by: Jere Karppinen