The Easiest Way to Sync Events from Notion to Google Calendar

Our work is reader-supported; if you buy through our links, we may earn an affiliate commission.

One of the biggest missing features in Notion is calendar sync. Currently, Notion doesn’t offer built-in tools to do this directly from the app.

Luckily, we can use the Notion API to partially solve this problem!

In this guide, I’ll share a plug-and-play workflow I’ve built that sends new tasks and events in Notion to your Google Calendar.

Currently, this automation simply sends new database pages with a Date value to your calendar.

I’m nearly done with a new version that will sync event updates and deletions as well; currently, I’m in the final stages of testing it.

If you want to get notified when I launch that new version – along with new Notion templates and other automations – join my free Notion Tips newsletter.

When you join, I’ll send you all of my free Notion templates, handy cheat sheets for learning Notion, and more!

Notion Tips Newsletter

Get updates about my Notion templates and tutorials. Easily unsubscribe at any time.

This workflow is built in Pipedream, which is my favorite automation-builder platform. I’ve also worked with Zapier and Make.com, but I’ve found that Pipedream is much more powerful – and much more cost-effective.

In fact, you can run this automation on the Free plan with very few limits.

Additionally, as a developer, Pipedream lets me build and share custom workflows. This means I can build bespoke automations, designed specifically for Notion, and share them with you.

On your end, the setup will be much faster than it would be on other platforms like Zapier.

To get started, click this link to import my workflow into your Pipedream account. If you don’t already have a Pipedream account, you’ll be prompted to create one.

Notion to Google Calendar Sync

This easy workflow will push new database pages in Notion to your Google Calendar on a schedule you choose.

Use This Workflow
This workflow is 100% free to use, and this link adds extra perks over the normal free Pipedream account. However, I'll earn a commission if you click this link and upgrade to a paid Pipedream account (at no extra cost to you).

Full disclosure: I’m both a heavy Pipedream user and an affiliate. If you use my link and decide to upgrade to a paid plan, I’ll earn a commission (and if you do, thank you! It helps support my work). However, Pipedream has a very generous free plan, so you will not need to upgrade to use this workflow.

Connect your Notion account, making sure to give Pipedream access to the database you want it to watch (or access to a page that contains it).

Then choose the database from which you’d like to push new pages to Google Calendar as events.

Want to do this with multiple databases? Simply click the share link again and set up another copy of the workflow for each database.

I also recommend changing the Timer option to 1 Hour.

This is due to how credits work in Pipedream; on the Free plan, you get 100 credits per day. Each run of this workflow will typically take 1 credit, so setting the timer to 1 Hour will consume only 24 credits per day.

Once you’ve selected your database, click Create Source.

Next, you’ll need to create a Test Event. Do this simply by creating a new page in your selected database, making sure to set a value in at least one Date property. End dates and times are supported too!

Back at Pipedream, hit Try Now to fetch your new event. Once you’re done setting up the workflow, it’ll fetch new events automatically every hour.

Click the page you created:

Click Continue.

Next, in the Notion_Settings step, do the following:

  1. Select your Notion account – Make sure this matches your selection in the trigger step.
  2. Select your database – Make sure this matches your selection in the trigger step.
  3. Select the Name property of your database (e.g. the page title property)
  4. Select the Date property you’d like to use for setting the event start/end times.
  5. Hit Test.

No need to worry about any of the code in the Code section; I’ve written all that for you!

Hit Continue.

Finally, in the Create_Event step, do the following:

  1. Connect your Google account.
  2. Choose the calendar to which you want to push new events.
  3. Hit Test.

The other fields are already filled out for you; leave them as-is!

On Google Calendar, you should see your new event!

To finish up, hit Deploy to make your workflow live.

Congrats; your workflow is now live!

Right now, this automation simply sends new pages created in your target database to Google Calendar. If you update the details of an event in Notion, they won’t sync over to your calendar yet.

I’m nearly done with a version that can sync updates and deletions, but I’ll need to do some additional coding and testing before it’s live (you can subscribe to my newsletter if you want to stay up-to-date on that).

Additionally, this workflow providers 1-way-sync from Notion to Google Calendar.

I would love to offer 2-way sync, but accomplishing it would be much more complicated, and in some ways not even possible right now.

If you’re curious, there are two main reasons for this:

  • As far as I know, Notion has not implemented RRULEs for database pages. RRULEs are recurrence rules that provide a standardized way for calendar apps to handle and display recurring events.
  • Notion also doesn’t yet have webhooks, to updates to events cannot kick off an automation themselves. Instead, we have to poll our Notion workspaces on a schedule using the Notion API (which is the reason you had to set an interval in the trigger step of the workflow).

I’m hoping that the Notion and Cron teams will be able to work together and bring true calendar sync to Notion in the future!

If you found this automation useful, you’ll probably love my previous automation as well.

It allows you to record voice notes on your phone, then perfectly transcribes and summarizes them using AI. Finally, the full transcription and summary gets automatically sent to your Notion account.

How to Take Perfect Notes with Your Voice Using ChatGPT and Notion
This step-by-step tutorial will teach you how to automatically transcribe voice notes with Whisper, summarize them with ChatGPT, and send them to Notion.
thomasjfrank.com

Beyond that, if you want to truly understand the Notion API and learn how to code so you can realize your ideas, start with my Notion API Beginner’s Guide:

The Complete Notion API Crash Course for Beginners
Learn how to work with the Notion API using JavaScript in this beginner-friendly and extremely detailed tutorial.
thomasjfrank.com

If you’d like to support my work, the best way is to share it. So if you enjoyed this tutorial, please share it on Twitter, LinkedIn, or with a friend 🙂

I’ll also note that this automation works extremely well with Ultimate Brain, my all-in-one productivity template for Notion.

If you want a complete, done-for-you second brain in Notion, give it a shot:

Recommended
Ultimate Brain: The Complete Second Brain for Notion

Want to turn Notion into a complete productivity system? Ultimate Brain includes all the features from Ultimate Tasks - and combines them with notes, goals, and advanced project management features.

Learn More

Finally, if you want to get notified when I release new tutorials (like this one) and templates, join my free Notion Tips newsletter:

Notion Tips Newsletter

Get updates about my Notion templates and tutorials. Easily unsubscribe at any time.

Thanks for Subscribing!

A confirmation email just went out to the email address you provided. Once you click the confirmation link in it, you’ll be on the list! I’ll also send you a link to all my free Notion templates.

🤔 Have an UB Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas

🤔 Have a Question?

Fill out the form below and I’ll answer as soon as I can! ~Thomas