Notion to Google Calendar l 2-way Sync Automation
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).
PS: if the process seems too overwhelming, let me do it for you! You can book it directly here.
What is a 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 (& present 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 [Scenario 1]
This first scenario will enable you to get your Google Calendar events into Notion.
Initialization
- Go to Make
- Create an account if you don’t have one already
- Go to your scenarios & hit the + Create a new scenario button
1st Module: Google Calendar
- Hit the big “+” button to build your first module
- 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 - Fill out the information:
➡️ Calendar = your desired calendar
➡️ Watch Events = By Updated Date
➡️ Show deleted events = Yes
➡️ Query: keep it blank
➡️ Limit = 10 - OK
2nd Module: Notion
- Add another module (to the right of your Google Calendar module)
- 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) - Fill out the information:
➡️ Search Objects = Database Items
➡️ Database ID*
➡️ Filter: Gcalendar ID (Notion) = Event ID (Google Calendar)
➡️ Limit = 1 - OK
*To find your ID: Open the database as a full page in Notion. Use the Share menu to Copy the 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.
- Name the filter something like “New events”
- In the filter, add
➡️ Start (from Google Calendar)
➡️ Later than (datetime operator)
➡️ Date: put today’s date or whatever suits you best - OK
3rd module: Router
- Add another module
- Search for Flow Control & choose Router (it will automatically make 2 paths)
4th Module: Upper path
- Connect a new Notion module & choose Create a Database Item
- 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) - OK
Upper path filtering
Filter between the Router & the Notion module:
- Choose the 🔧 & select Set up a filter
➡️ Label = “if doesn’t exist”
➡️ Condition = 3. Object → “Basic Operators: Does not exist”
5th Module: Lower Path
- 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) - OK
Lower path filtering
- Choose the 🔧 & select Set up a filter
➡️ Label = “if exist”
➡️ Condition = 3. Object → “Basic Operators: Exists”
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 [Scenario 2]
⚠️ Apply this scenario only if you plan on updating your Google Calendar from Notion.
Initialization
- Go to your scenarios & click + Create a new scenario
1st Module: Notion
- Click the big “+” button to build your first module
- Search Notion in the list of applications & choose Watch Database Items (your Notion should already be connected from the 1st scenario)
- Fill out the information:
➡️ Watch Database Items = By updated time
➡️ Database ID = same ID as in the first scenario
➡️ Limit = 10 - OK
2nd Module: Google Calendar
- Click Add another module (to the right of your Notion module)
- Search Google Calendar in the list of applications & choose Search Events
- 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)
Filter between Notion & Google Calendar
- Label = not cancelled
- Condition:
➡️ Properties Value.Event Status[ ]: Plain Text
➡️ Text operators: Not equal to
➡️ cancelled - OK
3rd Module: Router
- Next to the Google Calendar, click to include a new module
- Search for Flow Control & go for Router (it will automatically make 2 paths)
4th Module: Google Calendar (Upper Path)
- Connect a new Google Calendar module after the filter & choose Create an Event
- 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 - OK
Upper path filtering
- 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” - OK
5th Module: Notion (Upper Path)
- Next to the Google Calendar, click to include a new module
- Search for Notion & choose Update Database Item
- 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) - OK
6th Module (lower path)
- Connect a new Google Calendar module after the filter & choose Update an Event
- 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 - OK
Lower path filtering
- Choose the 🔧 & select Set up a filter
➡️ Label = exists
➡️ Condition: Properties Value.Gcalendar ID[ ]:Plain Text → “Basic Operators: Exists” - OK
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!
PS: if the process seems too overwhelming, let me do it for you! You can book it directly here.
Start now & create your Notion account🙃
(#NotionPartner)
Originally published at https://www.ramesquinerie.com.