{"id":13570779,"url":"https://github.com/5pecia1/n8n-workflow","last_synced_at":"2025-04-14T19:33:26.844Z","repository":{"id":81623973,"uuid":"372377527","full_name":"5pecia1/n8n-workflow","owner":"5pecia1","description":"notion mindmap, notion gcal sync","archived":false,"fork":false,"pushed_at":"2024-01-24T05:33:20.000Z","size":723,"stargazers_count":32,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T07:51:13.236Z","etag":null,"topics":["google-calendar","mindmap","n8n","n8n-workflow","notion"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/5pecia1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-31T04:02:31.000Z","updated_at":"2025-03-03T21:42:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"8edc3424-6557-4d0a-b381-eed49d81e350","html_url":"https://github.com/5pecia1/n8n-workflow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5pecia1%2Fn8n-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5pecia1%2Fn8n-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5pecia1%2Fn8n-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/5pecia1%2Fn8n-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/5pecia1","download_url":"https://codeload.github.com/5pecia1/n8n-workflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248945927,"owners_count":21187410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["google-calendar","mindmap","n8n","n8n-workflow","notion"],"created_at":"2024-08-01T14:00:54.891Z","updated_at":"2025-04-14T19:33:26.822Z","avatar_url":"https://github.com/5pecia1.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# My n8n workflow\n\n```\nContribution Welcome!\n```\n\n- [My n8n workflow](#my-n8n-workflow)\n  * [Notion mind map](#notion-mind-map)\n    + [example](#example)\n    + [Feature](#feature)\n    + [Use](#use)\n      - [Prerequisites](#prerequisites)\n      - [Set And Run](#set-and-run)\n      - [USAGE](#usage)\n  * [[Upgrading]notion \u0026 google calendar 2 way sync](#-upgrading-notion---google-calendar-2-way-sync)\n    + [Feature](#feature-1)\n    + [Use](#use-1)\n      - [Prerequisites](#prerequisites-1)\n      - [Set And Run](#set-and-run-1)\n      - [USAGE](#usage-1)\n    + [Develop](#develop)\n      - [Action Maker](#action-maker)\n      - [Workflow](#workflow)\n\n\u003csmall\u003e\u003ci\u003e\u003ca href='http://ecotrust-canada.github.io/markdown-toc/'\u003eTable of contents generated with markdown-toc\u003c/a\u003e\u003c/i\u003e\u003c/small\u003e\n\n \n## Notion mind map\n\n![](./resource/notion-mind-map.png)\n\n### Example\n\n![](./resource/notion-mind-map-example.png)\n\n### Feature\n\n- [x] 1 way sync(notion -\u003e mind map)\n- [x] sync every 1 second\n- [ ] Image\n- [ ] Table\n\n### Use\n\n#### Prerequisites\n\n* linux\n* docker\n* docker-compose\n* node v18\n\n#### Set And Run\n\n1. install npm(only linux)\n    ```bash\n    $ cd notion-mindmap\n    $ npm install\n    ```\n2. run docker container\n    ```bash\n    $ docker-compose up -d\n    ```\n3. open and import workflow\n    1. open http://localhost:5678\n    2. Click `Workflows`(upper left)\n    2. Click `Add workflow`\n    3. Click three dot button and `Import from File`\n    4. Select [`./notion-mindmap/Notion__Mindmap.json`](./notion-mindmap/Notion_mindmap.json)\n4. Set Notion Credentials in n8n\n    * Notion reference: https://docs.n8n.io/credentials/notion/\n5. Change your notion information in workflow nodes(`Send notion credential`)\n6. Set your n8n url in `Set Environments` node (ex. http://localhost:5678)\n4. Active this workflows  \n    check `Active` button (upper right)\n\n#### USAGE\n\n1. Copy notion page url(ctrl + l)\n2. Add n8n connections in page(ref: `Set And Run \u003e 4. Set Notion Credentials in n8n`)  \n  ![](./resource/notion-connection.png)\n3. embed mindmap url in notion page (ex: http://localhost:5678/workflow/xxxx-xx-xx-xx?notion={notion url})\n\n## [Upgrading]notion \u0026 google calendar 2 way sync\n\n![](./resource/notion-gcal.png)\n\n### Feature\n\n- [x] sync every 20 minutes(default, you can change it)\n- [x] create\n    - [x] notion -\u003e gcal\n    - [x] gcal -\u003e notion\n- [x] update \n    \u003e There is a bug with alternating updates for ranged all day. The result is no problem.\n    - [x] notion -\u003e gcal\n    - [x] gcal -\u003e notion\n- [x] delete\n    - [x] notion -\u003e gcal\n    - [ ] gcal -\u003e notion\n         \u003e Notion do not support delete api\n- [ ] support recurring events(coming soon)\n- [ ] easy setup\n    - [ ] combine setting data in workflow\n- [ ] using offical n8n\n    \u003e When the task is finished, you can use it without installing docker.\n    - [ ] contribute bug fix\n\n### Use\n\n#### Prerequisites\n\n* docker\n\n#### Set And Run\n\n1. Pull and run docker container\n    ```bash\n    $ docker run -d --restart always -e N8N_PORT=5678 -v ./n8n:/home/node/.n8n -p 5678:5678 --name n8n 5pecia1/n8n-custom:latest\n    ```\n    \u003e Current latest offical n8n have bug about notion and gcal.  \n    \u003e So, You use my custom n8n image.\n4. Open and import workflow\n    1. open http://localhost:5678\n    1. Click `Workflows`(upper left)\n    2. Click `Import from File`\n    3. Select [`./notion-gcal-2way-sync/Notion__Calendar_Sync.json`](https://github.com/5pecia1/n8n-workflow/blob/main/notion-gcal-2-way-sync/Notion__Calendar_Sync.json)\n5. Set Google OAuth Credentials, Notion Credentials in n8n\n    * Google OAuth reference: https://docs.n8n.io/credentials/google/#using-service-account\n    * Notion reference: https://docs.n8n.io/credentials/notion/\n6. Make properties in Notion Page in DB\n    * name: `GCal Id`, type: **text**\n7. Change your calendar, notion information in workflow nodes  \n    Nodes Chekclist\n    * `Set Environments`\n        * `notion date property`'s Value  \n          `Start-End Time` change to your date property name in notion db\n        * `time zone`'s Value\n          find your timezone in [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\n    * `Get Notion`\n        * Notion API\n        * Database ID\n    * `Get Calendar`, \n        * Google Calendar OAuth\n        * Calendar ID\n    * `Create Evnet`, `Update Description`, `Update Evnet`, `Delete Event`\n        * Google Calendar OAuth\n    * `Create Page`, `Create Page Range Date`, `Update Page`, `Update Page Range Date`\n        * Notion API\n8. Set Interval\n    1. set interval in `Interval` node\n2. test workflow  \n    Click `Execute Workflow`(bottom)\n4. Active this workflows  \n    check `Active` button (upper right)\n\n#### USAGE\n\n* sync page to event\n    * new page  \n    Creating a property(ex. Start-End Time) of the base date in the page creates a new event.\n    * update page  \n    If you modify the property of the standard date in the page, the existing event is updated.\n    * delete page  \n    If you delete the property of the base date in the page, the event is deleted.\n* sync evnet to page\n    * new event  \n    If you create an event by writing the event name after `notion:`, a new page is created.  \n    example. `notion: this is new event name`\n    * update evnet  \n    Modifying the date of the event also modifies the date on the page.\n\n\n\n### Develop\n\n[notion-gcal-2-way-sync#README.md](./notion-gcal-2-way-sync/README.md)\n\n#### Action Maker\n\n#### Workflow\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5pecia1%2Fn8n-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F5pecia1%2Fn8n-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F5pecia1%2Fn8n-workflow/lists"}