How to Sync Google Calendar with Notion Two-Way for Free (Step-by-Step)
Two months ago, I managed to double-book a high-stakes client strategy call with my dog's vet appointment. Why? Because my daily task planner lives inside Notion, but my actual life commitments sit on Google Calendar. I kept promising myself I'd manually copy events over every morning, but let's be real—that habit lasted about four days before falling apart.
I tried built-in embeds first. Sure, seeing a view-only calendar inside Notion looks pretty, but changing a date in Notion doesn't update Google Calendar at all. Then I looked at popular third-party tools, but dropping $10 to $15 every single month just to mirror two apps felt ridiculous.
After spending a late night testing different setups, I finally cracked the code using Make.com's generous free plan. Here is the exact, zero-cost blueprint so you can seamlessly link your Google Calendar and Notion database both ways.
Why Simple Embeds Fall Short (And What You Need Instead)
If you've played around with Notion for a while, you probably tried pasting your Google Calendar share link and clicking "Create Embed." It looks neat, but it's fundamentally broken for real productivity.
An embed is a one-way mirror. You can see your Google events inside Notion, but you can't click an event in Notion to reschedule it. You can't turn a Notion project task into an actual time-blocked slot on your Google Calendar either.
True two-way synchronization means:
- Creating or editing an event in Google Calendar instantly updates your Notion database.
- Moving a task date inside Notion immediately updates your Google Calendar.
- Deleting an item in one place flags or removes it in the other.
To pull this off without spending money, we use Make (formerly Integromat). Their free tier gives you 1,000 operations per month, which is plenty for personal daily scheduling.
Step 1: Prepare Your Notion Database
Before building the automation engine, your Notion database needs specific properties so it can speak the same language as Google Calendar.
Create a dedicated database in Notion (call it "Master Schedule" or "Calendar Sync") and add these exact properties:
- Event Name (Title property)
- Date (Date property — make sure to enable "Include time")
- Event ID (Text property — this is crucial for tracking updates)
- Last Edited Time (Last edited time property)
Pro Tip: Keep your Event ID property hidden in your Notion database view so it doesn't clutter your workspace. The automation tool needs it behind the scenes to avoid creating duplicate entries every time you edit an item.
Step 2: Set Up Your Free Make.com Account
Head over to Make.com and sign up for a free account. Once you're inside your dashboard, click on Scenarios in the left sidebar and select Create a new scenario in the top right corner.
We will build two simple automated flows (scenarios): one for Google Calendar to Notion, and one for Notion to Google Calendar.
Scenario A: Google Calendar to Notion
- Click the large + button and search for Google Calendar.
- Choose Watch Events as the trigger. Connect your Google account when prompted.
- Select your main calendar and set the trigger to watch for updated or newly created events.
- Add a second module by clicking the right edge of the Google Calendar icon, then search for Notion.
- Select Search Objects (Database items) to check if the event already exists in Notion using the unique Event ID.
- Add a router module. Branch 1: If the search finds no matching Event ID, choose Notion > Create a Database Item.
- Branch 2: If a matching Event ID is found, choose Notion > Update a Database Item.
Map the fields carefully: map the Google Calendar Event Title to your Notion Title, the Start/End dates to your Notion Date property, and the Google Event ID to your hidden Notion text field.
Scenario B: Notion to Google Calendar
Now we set up the reverse loop so changes you make in Notion sync back to your phone's calendar.
- Create a new scenario in Make and add Notion > Watch Database Items as the trigger.
- Select your calendar database and set it to monitor updates based on the Last Edited Time property.
- Add a Google Calendar > Search Events module to look up the event using your Notion Event ID.
- Add a router with two branches: Update existing Google Event if found, or Create a new Google Event if the Event ID field is blank.
- Map the Notion title and date range back into the Google Calendar module.
Fine-Tuning to Prevent Endless Infinite Loops
The biggest trap people run into with two-way syncs is the infinite loop: Notion updates Google Calendar, which Google Calendar sees as an edit, which then updates Notion again, blowing through your free monthly limit in ten minutes.
To prevent this, add simple filters in Make between your modules:
- In Scenario A (Google to Notion), set a filter rule: Only run if Last Modified Source is NOT Make.
- In Scenario B (Notion to Google), set a filter rule: Only run if Event ID was modified more than 2 minutes ago (or check that the date values actually changed).
Testing this took me a couple of tries, but once those filters are locked in, your automation will sit quietly in the background running only when you actually change something.
Frequently Asked Questions
Will this drain my free Make.com quota?
Not if you set the scenario schedule smartly! Instead of setting the automation to run every minute, set it to check for updates every 15 or 30 minutes. That way, you only use around 100 to 200 operations a month out of your 1,000 free quota.
Can I sync multiple Google Calendars into one Notion database?
Yes! You can duplicate the Google Calendar module for work, personal, and family calendars within the same scenario. Just assign a colored tag property in Notion to categorize which calendar the event originated from.
What happens if I delete an event in Google Calendar?
By default, updating dates or details syncs seamlessly. If you want full deletion syncing, you can add a "Watch Deleted Events" module in Make. However, to save quota, I recommend setting deleted items to auto-archive in Notion using a status property rather than hard deleting.
Final Thoughts
Having your daily schedule inside Notion alongside your projects, without worrying about missing a real-world Google Calendar notification, is a total game changer. It took me less than half an hour to set up, and it has saved me from embarrassing scheduling mix-ups ever since.
Give this step-by-step setup a shot this weekend. If you run into any quirks while mapping your fields in Make, drop a comment below and I'd be happy to help you troubleshoot your flow!
By the ReadyTips Team
We research, test, and write practical guides so you don't have to figure things out the hard way. Every article is reviewed by hand before publishing.