akarri2001 / Notion-and-Google-Calendar-2-Way-Sync

2 Way Sync Between Notion Database and Google Calendar
GNU General Public License v3.0
352 stars 50 forks source link
google-api-python-client google-calendar google-calendar-api google-calendar-notion-sync notion notion-api notion-automation notion-database notion-py

Notion-and-Google-Calendar-2-Way-Sync

2 Way Sync Between a Notion Database and Google Calendar

UPDATE: There seems to be some stuff broken when Notion updated their API again. I'm not going to be able to fix this until the school year is over due to classes but it will be fixed in May 2023 or whenever I'm able to find a full time position.

WARNING: This repo will be undergoing a good bit of change to make more accessible for users of all skill levels. This is not a finished product and if you have suggestions, I would love them!

REMINDER: No making monetary gain off of this product. The point of making this available was to make the tools accessible to everyone

Instructions to set up: https://docs.google.com/document/d/1uP-6EsmTlG_Gttg9jC0MBZKHpjccVapIeC1D1tR1yXc/edit?usp=sharing

NEW FUNCTIONALITIES SINCE FIRST UPLOADING:

I'm not sure if this is the first one out there, but it is the only 2-way synchronous project I could find so that's pretty cool :)

The Notion-GCal-2WaySync-Public.py code is HEAVILY commented to describe each part of the code. Follow along and you'll be able to get a quick understanding of what logic is used for each step of the script. Use this Notion Template as reference: https://www.notion.so/akarri/de7bcf954c8847a4952202b93fab2dad?v=23e8972499124b5c84b67b9e08d0cc2c (multiple calendar)

https://www.notion.so/akarri/47c0977120094511b0ab6cbf68b20c57?v=21c35762ede544818692acb1e8deefed (single calendar code (outdated))

The functionalities:

When making events, the code will extract the event name, date/time, a category, and text from the Notion Dashboard and integrate that information into your GCal event. Additionally, it will also add a URL source code the GCal event so you can click on the URL and automatically be brought over to the specific Notion Page that your event is at.

\ \ \ Future Updates (dates subject to change)

Some more visibility through some upvotes on my Reddit post would be appreciated and I think may bring along some new users to this resource! Reddit Post

Use for those who want to take at implementing the code themselves:

https://www.youtube.com/watch?v=j1mh0or2CX8 This video was used to make the Google Calendar token. Note that the library names that they "pip installed" are outdated so look at the python file to see what you'll actually need to pip install onto your computer.

The Google Calendar token is what allows for the python code to access your Google Calendar and communicate with the Google Calendar servers to add/receive/modify data.

You'll need to make your GCal token before setting up the rest of the Python script. Use the GCalToken.py file to create your token when you have downloaded the JSON credentials (follow the above youtube video).