Automation library · Scheduling

2-way sync Notion and Google Calendar

Started by a clock, and works across Google Calendar and Notion. 98 steps, 16 branches, 6 loops or waits: large, and worth reading before you trust it with anything live.

Large

98 stepsLarge: read it before trusting it with anything live
16Branches: places the flow splits
6Loops or waits
2Services it connects to

The flow

Starts it 10Logic 34Service 16

The steps in the order they run, from what starts it. The first 60 of 98.

  1. 1Get future events + yesterdayGoogle CalendarService
  2. 2Event UpdatedGoogle Calendar triggerStarts it
  3. 3When clicking "Test workflow"Manual triggerStarts it
  4. 4Event CreatedGoogle Calendar triggerStarts it
  5. 5Page Updated - MeetingsNotion triggerStarts it
  6. 6Page Updated - TasksNotion triggerStarts it
  7. 7Event Updated1Google Calendar triggerStarts it
  8. 8Event Created1Google Calendar triggerStarts it
  9. 9Deleted - TasksGoogle Calendar triggerStarts it
  10. 10Deleted - MeetingsGoogle Calendar triggerStarts it
  11. 11Every 3minSchedule triggerStarts it
  12. 12Globals1SetLogic
  13. 13Notion1NotionService
  14. 14NotionNotionService
  15. 15GlobalsSetLogic
  16. 16Globals2SetLogic
  17. 17Globals3SetLogic
  18. 18Set the current database and calendar IDs1CodeLogic
  19. 19MergeMergeLogic
  20. 20Set the current database and calendar IDsCodeLogic
  21. 21Set the current database and calendar IDs2CodeLogic
  22. 22Split fieldsSplit OutLogic
  23. 23Is it a new event?IfLogic
  24. 24Page edited by a user?IfLogic
  25. 25Find TaskNotionService
  26. 26Only calendarIdFilterLogic
  27. 27Does it have a time?3IfLogic
  28. 28Calculate timeDifference between Google's updated_at and our own updated_at fieldsDate TimeLogic
  29. 29Set some fieldsSetLogic
  30. 30Do nothingNo OpLogic
  31. 31Remove GCal ID and DateNotionService
  32. 32Get future events1Google CalendarService
  33. 33Create pageNotionService
  34. 34Subtract 1 day from end_date1Date TimeLogic
  35. 35Only events that were edited 2s after the last updateFilterLogic
  36. 36Creates defaultEndDate with 1h durationDate TimeLogic
  37. 37extendedProperties exist?FilterLogic
  38. 38Add extendedProperties to Google event8Http RequestService
  39. 39Format end_date1Date TimeLogic
  40. 40Does it have a time?2IfLogic
  41. 41GCal_ID exists in Notion?IfLogic
  42. 42Find related pages1NotionService
  43. 43Does it really have an end_date?1IfLogic
  44. 44Update page2 - continue on errorNotionService
  45. 45Subtract 1 day from end_dateDate TimeLogic
  46. 46Is the page deleted?IfLogic
  47. 47Does it have a date?1IfLogic
  48. 48Find deleted pages1FilterLogic
  49. 49Create page1NotionService
  50. 50Create page2NotionService
  51. 51Format end_dateDate TimeLogic
  52. 52Loop4Split In BatchesLogic
  53. 53Does it have a date?IfLogic
  54. 54Does it have a time?1IfLogic
  55. 55No Operation, do nothingNo OpLogic
  56. 56Delete event3Google CalendarService
  57. 57Add extendedProperties to Google event9Http RequestService
  58. 58Add extendedProperties to Google event10Http RequestService
  59. 59Does it really have an end_date?IfLogic
  60. 60Delete event2Google CalendarService

How it's built

Starts on
A clock
Steps
98, with 16 branches, 6 loops or waits
Size
Large: read it before trusting it with anything live
Connects to
Google Calendar, Notion
Model
None. This is plumbing, not judgement

Questions

What does it need to run?

An n8n account, plus your own Google Calendar and Notion accounts. You connect your own accounts after importing it; none are included.

What starts it?

It starts on a clock.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 98 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

Before you run it

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 98 steps before you point it at anything that matters.