All blogs

Notion to Google Calendar | 2-way Sync Automation

Table of content

Are you tired of manually updating your Notion and Google Calendar? Tired of waiting for Notion to release their own integration?

In this blog post, I’ll show you how to build a 2-way sync between Notion and Google Calendar, so you never have to worry about double-booking or missing important events. With this easy-to-follow instructions, you'll be able to seamlessly integrate your Notion and Google Calendar in no time. Say goodbye to manual updates and hello to efficient scheduling with our Notion Google Calendar sync.

In addition to Notion & Google, all you’ll need is a Make account (100% free).

2-way sync automation

A 2-way sync means that you’ll get all your Google Calendar events into your Notion calendar (that’s one way). But it also means you’ll be able to include or update events on Notion, and the changes will be reflected in your Google Calendar events! This way, any event that is added, modified or deleted on one calendar will also be on the other calendar.

This tutorial is focused on Google Calendar, but the same principles applies for Apple Calendar or any other Calendar with an API (and available on Make).

Notion Google Calendar Automation

Build your Notion database

All you really need to start is a simple Notion table (it doesn’t need to be a Calendar view for now) with the following properties:

  • Name [Title]
  • Date [Date]
  • Location [Text, or URL if you only have virtual meetings]
  • Event Status [Text]
  • Gcalendar ID [Text]

Google Calendar to Notion Automation

This first scenario will enable you to get your Google Calendar events into Notion.

Google Calendar to Notion Scenario 1

Initialization

  1. Go to Make (#affiliate)
  2. Create an account if you don’t have one already
  3. Go to your scenarios & hit the + Create a new scenario button

1st Module: Google Calendar

  1. Hit the big “+” button to build your first module
  2. Search Google Calendar in the applications & choose Watch Events
    ➡️ Add a new connection if you never connected your Google Calendar to Make & follow the steps
  3. Fill out the information:
    ➡️ Calendar = your desired calendar
    ➡️ Watch Events = By Updated Date
    ➡️ Show deleted events = Yes
    ➡️ Query: keep it blank
    ➡️ Limit = 10
  4. OK
Google Calendar to Notion Step 1

2nd Module: Notion

  1. Add another module (to the right of your Google Calendar module)
  2. Search Notion in the applications & choose Search Objects
    ➡️ Create a new connection if you never connected your Notion to Make & follow the steps
    ⚠️ Make sure to choose the parent page where your calendar exists (or your entire workspace if you’re not sure)
  3. Fill out the information:
    ➡️ Search Objects = Database Items
    ➡️ Database ID*
    ➡️ Filter: Gcalendar ID (Notion) = Event ID (Google Calendar)
    ➡️ Limit = 1
  4. OK
Google Calendar to Notion Step 2

*To find your ID: Open the database as a full page in Notion. Use the Share menu to Copy link. Now paste the link in your text editor so you can take a closer look. The URL uses the following format: https://www.notion.so/{workspace_name}/{database_id}?v={view_id}
OR
Click Search & input the exact name of the database

Filter between Google Calendar & Notion

If you used your Google Calendar for a while, you may want to set up a filter between the first Google module and the second Notion module.

  1. Name the filter something like “New events”
  2. In the filter, add
    ➡️ Start (from Google Calendar)
    ➡️ Later than (datetime operator)
    ➡️ Date: put today’s date or whatever suits you best
  3. OK
Google Calendar to Notion Step 3

3rd module: Router

  1. Add another module
  2. Search for Flow Control & choose Router (it will automatically make 2 paths)

4th Module: Upper path

  1. Connect a new Notion module & choose Create a Database Item
  2. Fill out information
    ➡️ Database ID = the same as previously
    ➡️ Name = Summary
    ➡️ Gcalendar ID = Event ID
    ➡️ Date
    ➡️➡️Start Time = Start
    ➡️➡️ End Time = End
    ➡️ Include Time = Yes
    ➡️ Location = Location
    ➡️ Event Status = Status
    (⚠️ very important as only events with “Event Status” = “confirmed” will be tracked in Notion)
  3. OK
Google Calendar to Notion Step 4

Upper path filtering

Filter between the Router & the Notion module:

  1. Choose the 🔧 & select Set up a filter
    ➡️ Label = “if doesn’t exist”
    ➡️ Condition = 3. Object → “Basic Operators: Does not exist”
Google Calendar to Notion Step 5

5th Module: Lower Path

  1. Connect a new Notion module & choose Update a Database Item
    ➡️ Database ID = the same as previously
    ➡️ Database Item ID = Page ID (from Notion)
    ➡️ Name = Summary
    ➡️ Gcalendar ID = Event ID
    ➡️ Date
    ➡️➡️ Start Time = Start
    ➡️➡️ End Time = End
    ➡️ Include Time = Yes
    ➡️ Location = Location
    ➡️ Event Status = Status (⚠️ very important as only events with “Event Status” = “confirmed” will be tracked in Notion)
  2. OK
Google Calendar to Notion Step 6

Lower path filtering

  1. Choose the 🔧 & select Set up a filter
    ➡️ Label = “if exist”
    ➡️ Condition = 3. Object → “Basic Operators: Exists”
Google Calendar to Notion Step 7

Final Steps

Access the clock next to the first module (Google Calendar) & set the scheduling (in minutes).
⚠️ The higher the number, the fewer “operations” (data) will be used by Make. It’s something to consider if you wish to stay on Make’s free plan (1000 ops/month).

Congrats! The scenario is finished, don’t forget to save it. Add a dummy event on your Google Calendar and run the scenario to see if it works (it works if you see your newly created event inside your Notion table). If it works, you can also increase the limit from the first module to 100 or whatever suits you.

Notion to Google Calendar Automation

⚠️ Apply this scenario only if you plan on updating your Google Calendar from Notion.

Notion to Google Calendar Scenario 2

Initialization

  1. Go to your scenarios & click + Create a new scenario

1st Module: Notion

  1. Click the big “+” button to build your first module
  2. Search Notion in the list of applications & choose Watch Database Items (your Notion should already be connected from the 1st scenario)
  3. Fill out the information:
    ➡️ Watch Database Items = By updated time
    ➡️ Database ID = same ID as in first scenario
    ➡️ Limit = 10
  4. OK
Notion to Google Calendar Step 1

2nd Module: Google Calendar

  1. Click Add another module (to the right of your Notion module)
  2. Search Google Calendar in the list of applications & choose Search Events
  3. Fill out the information:
    ➡️ Calendar ID = your calendar (should be the same as in scenario 1)
    ➡️ Query = Properties Value.Gcalendar ID[ ]:Plain Text (GCalendar ID from Notion)
Notion to Google Calendar Step 2

Filter between Notion & Google Calendar

Add a filter between the first & second modules (choose the 🔧 & select Set up a filter)

Fill out the information:

  1. Label = not cancelled
  2. Condition:
    ➡️ Properties Value.Event Status[ ]: Plain Text
    ➡️ Text operators: Not equal to
    ➡️ cancelled
  3. OK
Notion to Google Calendar Step 3

3rd Module: Router

  1. Next to the Google Calendar, click to include a new module
  2. Search for Flow Control & go for Router (it will automatically make 2 paths)

4th Module: Google Calendar (Upper Path)

  1. Connect a new Google Calendar module after the filter & choose Create an Event
  2. Fill out information
    ➡️ Event Name = Properties Value.Name[ ]:Plain Text
    ➡️ Start Date = Properties Value: Date : Start
    ➡️ End Date = Properties Value: Date : End
    ➡️ Location = Properties Value.Location[ ]:Plain Text
  3. OK
Notion to Google Calendar Step 4

Upper path filtering

  1. Choose the 🔧 & select Set up a filter (between the router & the Google Calendar module)
    ➡️ Label = does not exist
    ➡️ Condition: Properties Value.Gcalendar ID[ ]:Plain Text → “Basic Operators: Does not exist”
  2. OK
Notion to Google Calendar Step 5

5th Module: Notion (Upper Path)

  1. Next to the Google Calendar, click to include a new module
  2. Search for Notion & choose Update Database Item
  3. Fill out information
    ➡️ Database ID = same ID as in first scenario
    ➡️ Database Item ID = Database Item ID (from Notion)
    ➡️ Gcalendar ID = Event ID (from Google Calendar)
    ➡️ Event Status = Status (from Google Calendar)
  4. OK
Notion to Google Calendar Step 6

6th Module (lower path)

  1. Connect a new Google Calendar module after the filter & choose Update an Event
  2. Fill out information
    ➡️ Event ID = Properties Value.Gcalendar ID[ ]:Plain Text
    ➡️ Event Name = Properties Value.Name[ ]:Plain Text
    ➡️ Start Date = Properties Value: Date : Start
    ➡️ End Date = Properties Value: Date : End
    ➡️ Location = Properties Value.Location[ ]:Plain Text
  3. OK
Notion to Google Calendar Step 7

Lower path filtering

  1. Choose the 🔧 & select Set up a filter
    ➡️ Label = exists
    ➡️ Condition: Properties Value.Gcalendar ID[ ]:Plain Text → “Basic Operators: Exists”
  2. OK
Notion to Google Calendar Step 8

Final Steps

Access the clock next to the first module (Google Calendar) & set the scheduling of the automation (in minutes).
⚠️ The higher the number, the fewer “operations” (data) will be used by Make. It’s something to consider if you wish to stay on Make’s free plan (1000 ops/month).

Congrats! The scenario is finished, don’t forget to save it. Add a dummy event in your Notion table and run the scenario to see if it works (it works if you see your newly created event on your Google Calendar).

If it works, you can also increase the limit from the first module to 100 or whatever suits you. Then add a Calendar view to your Notion database, and you're good to go!

Conclusion

By following the steps outlined in this post, you can easily build a 2-way sync automation between Notion and Google Calendar. This will allow you to keep your schedules in sync and ensure that you never miss an important event again.

I hope this post has been helpful and that you're now ready to take on the challenge of building your own Notion Google Calendar sync.

Happy scheduling!

Start now & create your Notion account 🙃
(#NotionPartner)
What is a 2-way sync system between Notion and Google Calendar?

A 2-way sync allows all your Google Calendar events to be included in your Notion calendar and all modifications or additions done on your Notion events to be reflected on your Google Calendar. This way, any event that is added, modified or deleted on one calendar will also be on the other calendar.

What do I need to start setting up a 2-way sync between Notion and Google Calendar?

To begin seting up a 2-way sync between Notion and Google Calendar, you need to have a Notion account, a Google account and also a Make account which is free. On Notion, you need a simple table with the properties: Name [Title], Date [Date], Location [Text, or URL if you only have virtual meetings], Event Status [Text] and Gcalendar ID [Text].

What are the steps for Notion to Google Calendar Automation?

This automation is created if you plan on updating your Google Calendar from Notion. The steps involves initializing by creating a new scenario in Make. The first module involves watching for updated Notion database items. You then search for events on Google Calendar that have the same ID as the updated Notion items. A Router is set up to assign actions based on whether the Google Calendar event exists or not. If it does not exist, the event is created on Google Calendar and the Gcalendar ID on the Notion database is updated. If it exists, Google Calendar event is simply updated.

Latest posts

Master Notion, 5 minutes a week

Want to be in the loop with everything Notion? Join the 10,000+ Notioneers on the #1 Notion-focused newsletter.
Every Tuesday, I’ll hit you up with an email, giving you 3 tips on how to make the most of Notion, 2 (awesome) resources, and 1 Tweet of the Week.