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!
Set Up the Workflow
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
In fact, you can run this automation on the Free plan with very few limits.
Additionally, as a developer,
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
This easy workflow will push new database pages in Notion to your Google Calendar on a schedule you choose.
Full disclosure: I’m both a heavy
Step 1: Set up the Trigger
Connect your Notion account, making sure to give
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
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
Click the page you created:
Click Continue.
Step 2: Set Your Notion Settings
Next, in the Notion_Settings step, do the following:
- Select your Notion account – Make sure this matches your selection in the trigger step.
- Select your database – Make sure this matches your selection in the trigger step.
- Select the Name property of your database (e.g. the page title property)
- Select the Date property you’d like to use for setting the event start/end times.
- Hit Test.
No need to worry about any of the code in the Code section; I’ve written all that for you!
Hit Continue.
Step 3: Connect Your Google Calendar Account
Finally, in the Create_Event step, do the following:
- Connect your Google account.
- Choose the calendar to which you want to push new events.
- 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!
Current Limitations
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!
Wrap-Up and More Resources
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.
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:
Support My Work
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:
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.
Finally, if you want to get notified when I release new tutorials (like this one) and templates, join my free Notion Tips newsletter: