🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Calendar meets Zoom for always-ready invites

Lisa Granqvist Partner Workflow Automation Expert

Your calendar looks “organized” until you open a meeting and realize there’s no Zoom link. Or worse, the invite is for an in-person chat, a Signal call, or a booking that got canceled but still clutters the day.

Zoom invite automation hits agency leads hardest on packed schedules, but operators and consultants feel it too. You lose a few minutes per meeting hunting links, confirming formats, and sending “quick update” messages that shouldn’t exist.

This n8n workflow checks today’s Google Calendar events, filters out the ones that shouldn’t get a Zoom link, then creates Zoom sessions for the rest. You’ll see how it works, what you need, and what to watch out for.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Calendar meets Zoom for always-ready invites

The Problem: Missing (or Wrong) Meeting Links

Calendar invites break in small, annoying ways. Someone schedules a call through one tool, you run the meeting in another, and suddenly there’s a gap: no Zoom link attached to the event. Then the day arrives and you’re copying links, editing invites, or DM’ing people “here’s the correct room.” It’s not hard work. It’s distracting work, and it tends to happen right before the meeting starts, when you’re trying to prepare. Add in canceled bookings that still show up, and you’re spending real attention on events that aren’t even happening.

It adds up fast. Here’s where it breaks down in practice.

  • You open an event five minutes before start and realize there’s nowhere to click to join.
  • In-person meetings don’t need Zoom links, but they still get treated like every other event when you’re doing it manually.
  • Signal meetings and other non-Zoom formats create “which link are we using?” confusion that burns time and credibility.
  • Calendly-canceled events (often marked as “transparent”) clutter the day and tempt you into unnecessary follow-ups.

The Solution: Daily Zoom Links for the Right Calendar Events

This workflow runs on a daily schedule and looks ahead at the next 12 hours of Google Calendar events. It pulls in your meetings for that window, then checks each one to decide if it should get a Zoom session or be ignored. In-person events are filtered out. Signal meetings are filtered out. Events that were effectively canceled (like Calendly “transparent” placeholders) are filtered out too. For everything that remains, n8n creates a matching Zoom session so the event has an always-ready join path, without you babysitting your calendar.

The workflow starts with a Cron trigger so it runs automatically, even if you forget. Next, n8n computes the “now through 12 hours” time window and fetches those events from Google Calendar. Finally, it filters and creates Zoom sessions only for meetings that truly need them.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you have 8 meetings in a day and, on average, 6 of them need Zoom links. Manually, you might spend about 5 minutes per Zoom meeting creating or finding the link, updating the invite, and confirming it’s correct. That’s roughly 30 minutes a day. With this workflow, the “work” is basically zero: it runs on the Cron schedule, grabs the next 12 hours, and creates the sessions in the background. You get that half hour back without changing how you book meetings.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Calendar to fetch your day’s events
  • Zoom for creating meeting sessions and links
  • Google OAuth credentials (create in Google Cloud Console)

Skill level: Beginner. You’ll connect accounts in n8n and adjust a couple filters to match your naming conventions.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Daily schedule trigger. A Cron node runs the workflow on your preferred cadence (usually early morning), so your day gets prepared automatically.

Time window calculation. n8n computes a 12-hour window from the execution time. That way you’re not generating links for next week’s meetings, only what’s relevant soon.

Calendar fetch and filtering. Google Calendar events are pulled for that window, then an If filter removes meetings that shouldn’t get a Zoom link (in-person, Signal, and Calendly “transparent” cancellations).

Zoom session creation. For the meetings that pass the filter, n8n creates a Zoom session so the join details exist when you and attendees need them.

You can easily modify the filtering rules to match your own event titles or locations based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Cron Trigger

Set up the scheduled and manual starts that feed into the same time window calculation.

  1. Add the Daily Schedule Trigger node and set Trigger Times to run at 7 (hour).
  2. Add the Manual Execution Start node for on-demand testing.
  3. Connect Daily Schedule Trigger to Compute Time Window and also connect Manual Execution Start to Compute Time Window.

Use Manual Execution Start to validate your logic before relying on the daily schedule.

Step 2: Connect Google Calendar

Fetch the upcoming events from your calendar using the calculated time window.

  1. Add the Compute Time Window node and set Value to {{new Date().toISOString()}}.
  2. Set Action to calculate, Duration to 12, Time Unit to hours, and Data Property Name to later.
  3. Add the Fetch Calendar Events node and set Operation to getAll.
  4. Set Calendar to your ID, replacing [YOUR_ID].
  5. In Options, set timeMax to {{$node["Compute Time Window"].json["later"]}} and timeMin to {{new Date(new Date().getTime() + (0 * 60 * 60 * 1000)).toISOString()}}, and enable singleEvents.
  6. Credential Required: Connect your googleCalendarOAuth2Api credentials in Fetch Calendar Events.

⚠️ Common Pitfall: If Calendar stays as [YOUR_ID], the node will fail. Use the exact calendar ID from Google Calendar settings.

Step 3: Set Up the Filtering Logic

Filter out events that should not create a Zoom session.

  1. Add the Filter Non-Zoom Events node and connect it to Fetch Calendar Events.
  2. Configure the string conditions exactly as follows:
  3. Set Value 1 to {{$node["Fetch Calendar Events"].json["transparency"]}}, Operation to notContains, and Value 2 to transparent.
  4. Set Value 1 to {{$node["Fetch Calendar Events"].json["summary"]}}, Operation to notContains, and Value 2 to =signal.
  5. Set Value 1 to {{$node["Fetch Calendar Events"].json["summary"]}}, Operation to notContains, and Value 2 to minute meeting.
  6. Set Value 1 to {{$node["Fetch Calendar Events"].json["summary"]}}, Operation to notContains, and Value 2 to in person.

Step 4: Configure Zoom Meeting Creation

Create Zoom sessions only for events that pass the filter.

  1. Add the Create Zoom Session node and connect it to Filter Non-Zoom Events.
  2. Set Authentication to oAuth2.
  3. Set Topic to Meeting with {{$node["Filter Non-Zoom Events"].json["summary"]}}.
  4. In Additional Fields, set Duration to {{(Date.parse($node["Filter Non-Zoom Events"].json["end"]["dateTime"])-Date.parse($node["Filter Non-Zoom Events"].json["start"]["dateTime"]))/(60*1000)}}.
  5. Set Time Zone to {{$node["Filter Non-Zoom Events"].json["start"]["timeZone"]}} and Start Time to {{$node["Filter Non-Zoom Events"].json["start"]["dateTime"]}}.
  6. Credential Required: Connect your zoomOAuth2Api credentials in Create Zoom Session.

Step 5: Test and Activate Your Workflow

Validate the full flow and enable the workflow for daily use.

  1. Click Execute Workflow on Manual Execution Start to run the workflow on demand.
  2. Confirm Fetch Calendar Events returns upcoming events within the 12-hour window and that Filter Non-Zoom Events passes only the intended ones.
  3. Verify that Create Zoom Session creates a meeting with the expected topic, start time, duration, and time zone.
  4. When satisfied, toggle the workflow to Active so Daily Schedule Trigger runs it each day.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Calendar credentials can expire or need specific permissions. If things break, check the n8n Credentials tab and your Google OAuth consent/scope settings first.
  • Zoom credentials can fail if your Zoom app permissions changed or the account switched. Confirm the Zoom app is still authorized and that your user has permission to create meetings.
  • The filter logic is only as good as your event data. If “in person” meetings aren’t labeled consistently (title vs. location), tighten the rules or you’ll accidentally create Zoom sessions for the wrong events.

Frequently Asked Questions

How long does it take to set up this Zoom invite automation automation?

About 20 minutes once your Google and Zoom accounts are ready.

Do I need coding skills to automate Zoom invite automation?

No. You will connect accounts and adjust a couple filter rules. n8n’s editor is visual, so it’s mostly click-and-configure.

Is n8n free to use for this Zoom invite automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Zoom invite automation workflow for different filter rules (like “exclude internal meetings”)?

Yes, and you should. Update the Filter Non-Zoom Events If node to exclude events based on keywords, organizer email, location, or transparency. Common tweaks include skipping internal standups, only generating Zoom for client meetings, and ignoring events that already contain a video link. If your team uses consistent naming, this becomes very reliable.

Why is my Zoom connection failing in this workflow?

Usually it’s expired authorization or a changed Zoom app permission. Reconnect the Zoom credential in n8n, then confirm your Zoom user can create meetings. If it only fails on busy days, you may be hitting account or API limits, so reduce the window or stagger executions.

How many calendar events can this Zoom invite automation handle?

Dozens per day is fine for most setups.

Is this Zoom invite automation better than using Zapier or Make?

Often, yes, because you can add more nuanced filtering and branching without paying per “path.” Self-hosting is also a big deal if you expect higher volume. Zapier or Make can still be simpler for a basic two-step “event → create meeting,” but this workflow’s value comes from skipping the wrong meetings automatically. If you’re unsure, Talk to an automation expert and get a recommendation based on your calendar habits.

Once this is running, your day starts with meeting invites that are actually ready to join. The workflow handles the repetitive calendar cleanup so you can focus on the conversations.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal