Streamline Meeting Prep: An n8n Workflow for Google Calendar, Docs, and Zoom
The Hidden Cost of Manual Meeting Prep
Setting up a professional meeting involves more than just sending a calendar invite. You create the event, then navigate to Zoom to generate a unique meeting link. Next, you open Google Drive to create a shared agenda or notes document. Finally, you copy and paste both links back into the calendar description, hoping you didn't mix anything up. While each step is small, the cumulative time and context-switching add up, creating friction and opportunities for error.
This manual, repetitive process is a perfect candidate for automation. By connecting your favorite tools with n8n, you can build a hands-off system that prepares all your meeting resources the moment an event is scheduled. This workflow ensures every important meeting has a dedicated video link and collaborative document, without any manual effort.
What This Workflow Automates
This guide will show you how to build a practical n8n workflow that:
- Triggers when a new event is created in a specific Google Calendar.
- Filters for events containing a specific keyword (e.g., "Project Kick-off") to avoid running on every event.
- Creates a new, unique Zoom meeting scheduled for the correct time.
- Generates a new Google Doc from a template to serve as the meeting agenda or notes file.
- Updates the original Google Calendar event, adding the Zoom link and Google Doc URL directly to the event description for all attendees to see.
Prerequisites
Before you begin, you will need:
-
An active n8n instance (Cloud or self-hosted).
-
Credentials for a Google account with access to Calendar and Docs.
-
Credentials for a Zoom account with API access.
Example n8n Workflow: Step-by-Step Breakdown
This workflow uses four simple nodes to connect your calendar to your meeting tools. It follows a clear "Trigger -> Create -> Create -> Update" pattern.
Step 1: The Trigger - Google Calendar Node
The entire automation starts when a new event is created. The Google Calendar Trigger node listens for this activity.
-
Add a Google Calendar Trigger node to your canvas.
-
Authentication: Connect your Google account credentials.
-
Event: Select
Event Addedfrom the dropdown menu. -
Calendar: Choose the specific calendar you want to monitor (e.g., "Work Calendar").
-
Options: Add a filter to ensure the workflow only runs for specific meetings. Click
Add Optionand selectFilters. Set theKeytosummary, theOperationtocontains, and theValueto a keyword you'll use for automatable meetings, like[AUTO]. This prevents the workflow from running on personal appointments.
Now, any new event you create with "[AUTO]" in the title will trigger the workflow.
Step 2: The Action - Zoom Node
Once the workflow triggers, the first task is to create the Zoom meeting.
-
Add a Zoom node and connect it to the Google Calendar node.
-
Authentication: Connect your Zoom account credentials.
-
Resource: Select
Meeting. -
Operation: Choose
Create. -
Topic: Map the meeting title from the trigger node. Click the gear icon next to the
Topicfield, selectAdd Expression, and drag thesummaryoutput from the Google Calendar node. -
Start Time: Map the
start.dateTimeoutput from the trigger node.
This step takes the event details from your calendar and uses them to create a perfectly scheduled Zoom meeting.
Step 3: The Action - Google Docs Node
Next, the workflow creates a shared document for notes and collaboration.
-
Add a Google Docs node and connect it to the Zoom node.
-
Authentication: Use the same Google credentials as the trigger.
-
Resource: Select
Document. -
Operation: Choose
Create. -
Title: Give the document a dynamic name. A good expression would be
{{ $json.summary }} - Notes - {{ new Date($json.start.dateTime).toLocaleDateString() }}. This combines the event title and date for easy identification. -
Content (Optional): You can use a template by first using a
Google Docs: Getoperation to fetch content from a template file, then passing that content into this field.
After this step, you have a new Google Doc ready for the meeting.
Step 4: The Final Action - Google Calendar Node (Update)
Finally, the workflow circles back to update the original calendar event with the newly created links.
-
Add another Google Calendar node.
-
Resource: Select
Event. -
Operation: Choose
Update. -
Calendar: Select the same calendar from the trigger step.
-
Event ID: Map the
idfrom the initial Google Calendar Trigger node. This is critical to ensure you're updating the correct event. -
Description: This is where you combine everything. Click
Add Expressionand construct the new description. You'll want to include the original description plus the new links:`{{ $json.description }}
--- Automation ---
Zoom Link: {{ $('Zoom').item.json.join_url }} Notes Doc: https://docs.google.com/document/d/{{ $('Google Docs').item.json.documentId }}`
This expression preserves any original notes in the event and appends the Zoom and Google Doc links in a clean, organized format.
Customizing Your Meeting Workflow
This basic structure is powerful, but you can easily extend it to fit your team's needs.
- Use a Router for Different Meeting Types: Add a Router node after the trigger to check for different keywords. For example,
[Client Kick-off]could use a formal agenda template, while[Internal Sync]uses a simple notes template. - Notify Attendees: Add a Slack or Gmail node at the end of the workflow to send a message to attendees with a direct link to the agenda, prompting them to add topics beforehand.
- Better Error Handling: If a node fails (e.g., Zoom API is down), the workflow will stop. You can configure error routes to send a notification to an operations channel in Slack, so you know to intervene manually.
Conclusion: Reclaim Your Time from Admin Tasks
By automating your meeting preparation, you eliminate a small but significant source of daily administrative friction. This n8n workflow guarantees consistency, reduces the chance of human error, and presents a professional, organized front to clients and team members.
Take a few minutes to build this workflow today. It's a simple investment that pays dividends every time you schedule a new meeting, allowing you to focus on the conversation, not the logistics.
Enjoyed this article?
Share it with others who might find it useful