This workflow corresponds to n8n.io template #1945 — we link there as the canonical source.
This workflow follows the HTTP Request → Itemlists recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "713d2864-efd0-4938-871e-1d37a7c58b67",
"name": "On schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1280,
840
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "0cedfde1-6ae1-485c-bd2c-b6114f6e4deb",
"name": "Try get database page",
"type": "n8n-nodes-base.notion",
"position": [
2160,
900
],
"parameters": {
"filters": {
"conditions": [
{
"key": "Event ID|rich_text",
"condition": "equals",
"richTextValue": "={{ $json.id }}"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"returnAll": true,
"databaseId": {
"__rl": true,
"mode": "list",
"value": "6318457d-052d-4107-9c5b-8041f530fa03",
"cachedResultUrl": "https://www.notion.so/6318457d052d41079c5b8041f530fa03",
"cachedResultName": "Outlook Calendar"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "92ebdd55-0950-471c-aa44-2fed31b17870",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
2380,
780
],
"parameters": {
"mode": "combine",
"options": {},
"joinMode": "enrichInput1",
"mergeByFields": {
"values": [
{
"field1": "id",
"field2": "property_event_id"
}
]
}
},
"typeVersion": 2.1
},
{
"id": "d38e4228-b3ab-443f-bfac-ffd0bc10fd08",
"name": "If database page not found",
"type": "n8n-nodes-base.if",
"position": [
2600,
840
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.property_event_id }}",
"operation": "isEmpty"
}
]
}
},
"typeVersion": 1
},
{
"id": "6ef0f18c-51fe-42e7-9e42-fd6ca8564e6e",
"name": "Create database page",
"type": "n8n-nodes-base.notion",
"position": [
2820,
740
],
"parameters": {
"title": "={{ $json.subject }}",
"options": {
"icon": "https://avatars.githubusercontent.com/u/45487711?s=280&v=4",
"iconType": "file"
},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "6318457d-052d-4107-9c5b-8041f530fa03",
"cachedResultUrl": "https://www.notion.so/6318457d052d41079c5b8041f530fa03",
"cachedResultName": "Outlook Calendar"
},
"propertiesUi": {
"propertyValues": [
{
"key": "Date|date",
"range": true,
"dateEnd": "={{ $json.end.dateTime }}",
"timezone": "={{ $json.start.timeZone }}",
"dateStart": "={{ $json.start.dateTime }}"
},
{
"key": "Event ID|rich_text",
"textContent": "={{ $json.id }}"
},
{
"key": "Link|url",
"urlValue": "={{ $json.webLink }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "2d324002-348b-4f23-bffe-57f685a8a761",
"name": "Update database page",
"type": "n8n-nodes-base.notion",
"position": [
2820,
940
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Date|date",
"range": true,
"dateEnd": "={{ $json.end.dateTime }}",
"timezone": "={{ $json.start.timeZone }}",
"dateStart": "={{ $json.start.dateTime }}"
},
{
"key": "Link|url",
"urlValue": "={{ $json.webLink }}"
},
{
"key": "Name|title",
"title": "={{ $json.subject }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "ee4792c4-d71c-4fd3-a8a3-babae5ff3479",
"name": "X days into the future",
"type": "n8n-nodes-base.dateTime",
"position": [
1500,
840
],
"parameters": {
"duration": 365,
"magnitude": "={{ $json.timestamp }}",
"operation": "addToDate",
"outputFieldName": "Future date"
},
"typeVersion": 2
},
{
"id": "00b53a21-97c7-4293-a5eb-8321afddd4bc",
"name": "Split out items",
"type": "n8n-nodes-base.itemLists",
"position": [
1940,
840
],
"parameters": {
"options": {},
"fieldToSplitOut": "value"
},
"typeVersion": 2.2
},
{
"id": "a7541bb9-0c0d-48b5-a39e-57e5681330da",
"name": "Get Outlook Calendar events",
"type": "n8n-nodes-base.httpRequest",
"position": [
1720,
840
],
"parameters": {
"url": "https://graph.microsoft.com/v1.0/me/calendarview",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "oAuth2Api",
"queryParameters": {
"parameters": [
{
"name": "startdatetime",
"value": "={{ new Date($('On schedule').item.json.timestamp).toISOString() }}"
},
{
"name": "enddatetime",
"value": "={{ new Date($json['Future date']).toISOString() }}"
}
]
}
},
"credentials": {
"oAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.1
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "If database page not found",
"type": "main",
"index": 0
}
]
]
},
"On schedule": {
"main": [
[
{
"node": "X days into the future",
"type": "main",
"index": 0
}
]
]
},
"Split out items": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
},
{
"node": "Try get database page",
"type": "main",
"index": 0
}
]
]
},
"Try get database page": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"X days into the future": {
"main": [
[
{
"node": "Get Outlook Calendar events",
"type": "main",
"index": 0
}
]
]
},
"If database page not found": {
"main": [
[
{
"node": "Create database page",
"type": "main",
"index": 0
}
],
[
{
"node": "Update database page",
"type": "main",
"index": 0
}
]
]
},
"Get Outlook Calendar events": {
"main": [
[
{
"node": "Split out items",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
notionApioAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow syncs Outlook Calendar events to a Notion database. The Outlook Calendar event must be within a specific time frame (default of within next year) for the workflow to pick up the event. The event subject will be the title of the Notion page, and the event link will…
Source: https://n8n.io/workflows/1945/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Streamline your Net Promoter Score (NPS) survey process by automating survey delivery, response tracking, and structured data storage. This workflow integrates GoHighLevel, Gmail, and Notion to ensure
Wait Code. Uses httpRequest, htmlExtract, itemLists, scheduleTrigger. Scheduled trigger; 15 nodes.
Send Labeled Email To A Notion Database. Uses scheduleTrigger, dateTime, gmail, notion. Scheduled trigger; 14 nodes.
This workflow sends the contents of an email to a Notion database. The email must be labeled with a specific label for the workflow to trigger. The email subject will be the title of the Notion page,
YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.