This workflow corresponds to n8n.io template #9211 — we link there as the canonical source.
This workflow follows the Agent → Google Calendar Tool 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 →
{
"id": "vdYPoneO2lydDAKt",
"name": "Medical Appointment Scheduling Assistant with OpenAI, Google Calendar & Messaging Apps",
"tags": [],
"nodes": [
{
"id": "0a0a8719-3cd5-420a-b19e-9bd587d086af",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1984,
128
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "7cd49d61-cf7e-426e-b4c2-47181efbc47b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1968,
1008
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "0466bf25-ee51-482b-a226-a0dee3511649",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
992
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "9b1764ad-f323-4be1-be99-0797c8ba49e9",
"name": "Calendar AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1536,
592
],
"parameters": {},
"typeVersion": 1.7
},
{
"id": "0593ac7a-7567-4f42-94e7-c351eef59c18",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3872,
400
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "88c06826-0a94-45a2-b010-de8695f692e2",
"name": "REDIS - DEBOUNCE - SET",
"type": "n8n-nodes-base.redis",
"position": [
-3648,
816
],
"parameters": {},
"typeVersion": 1
},
{
"id": "36c490df-bcfd-4897-af47-612df539f9f4",
"name": "REDIS - DEBOUNCE - GET",
"type": "n8n-nodes-base.redis",
"position": [
-3248,
608
],
"parameters": {},
"typeVersion": 1
},
{
"id": "46f2d7e9-5c4a-4932-a55f-5aa6abfb1692",
"name": "REDIS - DEBOUNCE - DELETE",
"type": "n8n-nodes-base.redis",
"position": [
-2608,
592
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ae124435-e897-4e8e-b2e6-bbcceb779984",
"name": "OBJECT MSG - CONCATENATE",
"type": "n8n-nodes-base.code",
"position": [
-2368,
592
],
"parameters": {},
"typeVersion": 2
},
{
"id": "fa108825-510b-4f59-9312-174c9cbb575c",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
992
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "50f2a522-9045-4a71-aa3d-798671f12a22",
"name": "VARIABLES - CONFIG",
"type": "n8n-nodes-base.set",
"position": [
-6096,
832
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "9dd231ab-69f5-4d83-bae9-690df2bff84e",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-1440,
1408
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "8964028b-5a70-4cec-b6ff-de5885b1795f",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1888,
1360
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "96e7b5d2-18bb-4c65-a273-75242e459369",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "23f8bcdb-09ed-45a9-bb2f-8d0fd0eadfba",
"name": "Check Schedule",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-1024,
1376
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "24bd37b6-3c65-47f6-89bb-9ef998124708",
"name": "Create Appointment",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-784,
1376
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "e9fb0248-41e1-47d7-a51b-c78caab54a91",
"name": "Cancel Appointment",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
-560,
1376
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "a652287f-27f4-4673-84bf-6d0f0d9645e0",
"name": "HAS TIME PASSED?",
"type": "n8n-nodes-base.switch",
"position": [
-2992,
608
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "2b21a949-087c-4759-82e4-c86451bbfea9",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-6256,
496
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b6e51873-b127-4c1f-b1f3-cac0e9525280",
"name": "CHECK CHANNEL",
"type": "n8n-nodes-base.switch",
"position": [
-288,
592
],
"parameters": {},
"typeVersion": 3.3
},
{
"id": "145ba1db-34ee-4df9-9c9d-2eb7ad13485c",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
624
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "74c811f7-24e8-4a87-a7d7-c0301cccc97f",
"name": "LOOP MESSAGE - WHATSAPP",
"type": "n8n-nodes-base.splitInBatches",
"position": [
512,
208
],
"parameters": {},
"typeVersion": 3
},
{
"id": "c4a183a3-c4ae-4ff3-9d57-d0be1c3e3177",
"name": "LOOP MESSAGE - TELEGRAM",
"type": "n8n-nodes-base.splitInBatches",
"position": [
432,
816
],
"parameters": {},
"typeVersion": 3
},
{
"id": "ffed1611-b581-4a4b-bd5c-4e710b6becf2",
"name": "TELEGRAM - CHANNEL",
"type": "n8n-nodes-base.set",
"position": [
-6976,
752
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "12b1f056-0f03-4fae-a256-af5c0390a6b8",
"name": "WHATSAPP - CHANNEL",
"type": "n8n-nodes-base.set",
"position": [
-6976,
1024
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "34b59610-2c11-4d58-bbbd-ab0a8e08be64",
"name": "CHANNEL",
"type": "n8n-nodes-base.set",
"position": [
-6576,
848
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "6bd1994f-b2cb-4ec7-8aa7-03a37d464d00",
"name": "CHECK CHANNEL1",
"type": "n8n-nodes-base.switch",
"position": [
-5232,
832
],
"parameters": {},
"typeVersion": 3.3
},
{
"id": "9519dbee-1d01-4a6c-9d98-e28e3395cfbb",
"name": "OBJECT MSG - WHASTAPP",
"type": "n8n-nodes-base.code",
"position": [
-4656,
656
],
"parameters": {},
"typeVersion": 2
},
{
"id": "6369872e-db24-4786-a7b0-c1305a7fcfcf",
"name": "OBJECT MSG - TELEGRAM",
"type": "n8n-nodes-base.code",
"position": [
-4656,
1008
],
"parameters": {},
"typeVersion": 2
},
{
"id": "8d4501e4-8241-489b-8174-170b5da0381d",
"name": "OBJECT MSG",
"type": "n8n-nodes-base.set",
"position": [
-4208,
816
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "d4d23cc2-a221-40bd-880e-2e85d3fa7c5a",
"name": "SEND MESSAGE WHATSAPP",
"type": "n8n-nodes-evolution-api.evolutionApi",
"position": [
896,
352
],
"parameters": {},
"typeVersion": 1
},
{
"id": "84940cb4-4d47-4216-8305-0403a783a2f6",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-5360,
384
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f722cdf0-919b-4754-9405-5821bf3d283d",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-7424,
656
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "9fb7c23a-2a88-4042-9c37-069124b0af8c",
"name": "SEND MESSAGE TELEGRAM",
"type": "n8n-nodes-base.telegram",
"position": [
896,
960
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "372a5ae7-fe85-40ca-b934-94ff60f209d8",
"name": "DATE NOW",
"type": "n8n-nodes-base.dateTime",
"position": [
-5728,
832
],
"parameters": {},
"typeVersion": 2
},
{
"id": "3a469582-df78-4d2e-8375-51ad31c573d3",
"name": "WAIT TIME - 5 SECONDS DEBOUNCE",
"type": "n8n-nodes-base.wait",
"position": [
-2784,
832
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "82d92672-cba5-4af6-b562-7b33f2666451",
"name": "SPLIT USER MESSAGE (INPUT)",
"type": "n8n-nodes-base.set",
"position": [
-832,
592
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "87a94d07-4f1f-4e15-8d64-61e71f0134f3",
"name": "MESSAGES INTO JSON ARRAY",
"type": "n8n-nodes-base.splitOut",
"position": [
-576,
592
],
"parameters": {},
"typeVersion": 1
},
{
"id": "09cc9e41-8c9c-4162-af83-eba446279a3c",
"name": "on new message (Evolution)",
"type": "n8n-nodes-base.webhook",
"position": [
-7424,
1056
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "7dcff3d5-7e0b-423d-8de4-b48c5f9238bd",
"name": "IF EXIST MESSAGE",
"type": "n8n-nodes-base.if",
"position": [
640,
912
],
"parameters": {},
"typeVersion": 2.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "a8ebdcae-c358-494b-b02c-8fd2b6ef26ec",
"connections": {
"CHANNEL": {
"main": [
[
{
"node": "VARIABLES - CONFIG",
"type": "main",
"index": 0
}
]
]
},
"DATE NOW": {
"main": [
[
{
"node": "CHECK CHANNEL1",
"type": "main",
"index": 0
}
]
]
},
"OBJECT MSG": {
"main": [
[
{
"node": "REDIS - DEBOUNCE - SET",
"type": "main",
"index": 0
}
]
]
},
"CHECK CHANNEL": {
"main": [
[
{
"node": "LOOP MESSAGE - WHATSAPP",
"type": "main",
"index": 0
}
],
[
{
"node": "LOOP MESSAGE - TELEGRAM",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Calendar AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"CHECK CHANNEL1": {
"main": [
[
{
"node": "OBJECT MSG - WHASTAPP",
"type": "main",
"index": 0
}
],
[
{
"node": "OBJECT MSG - TELEGRAM",
"type": "main",
"index": 0
}
]
]
},
"Check Schedule": {
"ai_tool": [
[
{
"node": "Calendar AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"HAS TIME PASSED?": {
"main": [
[
{
"node": "REDIS - DEBOUNCE - DELETE",
"type": "main",
"index": 0
}
],
[
{
"node": "WAIT TIME - 5 SECONDS DEBOUNCE",
"type": "main",
"index": 0
}
]
]
},
"IF EXIST MESSAGE": {
"main": [
[
{
"node": "SEND MESSAGE TELEGRAM",
"type": "main",
"index": 0
}
],
[
{
"node": "LOOP MESSAGE - TELEGRAM",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "TELEGRAM - CHANNEL",
"type": "main",
"index": 0
}
]
]
},
"Calendar AI Agent": {
"main": [
[
{
"node": "SPLIT USER MESSAGE (INPUT)",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Calendar AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Cancel Appointment": {
"ai_tool": [
[
{
"node": "Calendar AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create Appointment": {
"ai_tool": [
[
{
"node": "Calendar AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"TELEGRAM - CHANNEL": {
"main": [
[
{
"node": "CHANNEL",
"type": "main",
"index": 0
}
]
]
},
"VARIABLES - CONFIG": {
"main": [
[
{
"node": "DATE NOW",
"type": "main",
"index": 0
}
]
]
},
"WHATSAPP - CHANNEL": {
"main": [
[
{
"node": "CHANNEL",
"type": "main",
"index": 0
}
]
]
},
"OBJECT MSG - TELEGRAM": {
"main": [
[
{
"node": "OBJECT MSG",
"type": "main",
"index": 0
}
]
]
},
"OBJECT MSG - WHASTAPP": {
"main": [
[
{
"node": "OBJECT MSG",
"type": "main",
"index": 0
}
]
]
},
"SEND MESSAGE TELEGRAM": {
"main": [
[
{
"node": "LOOP MESSAGE - TELEGRAM",
"type": "main",
"index": 0
}
]
]
},
"SEND MESSAGE WHATSAPP": {
"main": [
[
{
"node": "LOOP MESSAGE - WHATSAPP",
"type": "main",
"index": 0
}
]
]
},
"REDIS - DEBOUNCE - GET": {
"main": [
[
{
"node": "HAS TIME PASSED?",
"type": "main",
"index": 0
}
]
]
},
"REDIS - DEBOUNCE - SET": {
"main": [
[
{
"node": "REDIS - DEBOUNCE - GET",
"type": "main",
"index": 0
}
]
]
},
"LOOP MESSAGE - TELEGRAM": {
"main": [
[],
[
{
"node": "IF EXIST MESSAGE",
"type": "main",
"index": 0
}
]
]
},
"LOOP MESSAGE - WHATSAPP": {
"main": [
[],
[
{
"node": "SEND MESSAGE WHATSAPP",
"type": "main",
"index": 0
}
]
]
},
"MESSAGES INTO JSON ARRAY": {
"main": [
[
{
"node": "CHECK CHANNEL",
"type": "main",
"index": 0
}
]
]
},
"OBJECT MSG - CONCATENATE": {
"main": [
[
{
"node": "Calendar AI Agent",
"type": "main",
"index": 0
}
]
]
},
"REDIS - DEBOUNCE - DELETE": {
"main": [
[
{
"node": "OBJECT MSG - CONCATENATE",
"type": "main",
"index": 0
}
]
]
},
"SPLIT USER MESSAGE (INPUT)": {
"main": [
[
{
"node": "MESSAGES INTO JSON ARRAY",
"type": "main",
"index": 0
}
]
]
},
"on new message (Evolution)": {
"main": [
[
{
"node": "WHATSAPP - CHANNEL",
"type": "main",
"index": 0
}
]
]
},
"WAIT TIME - 5 SECONDS DEBOUNCE": {
"main": [
[
{
"node": "REDIS - DEBOUNCE - GET",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
> ⚠️ Community Disclaimer > This workflow is community-maintained and self-hosted. > It is not officially affiliated with or supported by n8n GmbH, OpenAI, or Google. > Users are responsible for their own configuration, security, and data compliance (e.g., HIPAA,…
Source: https://n8n.io/workflows/9211/ — 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.
Personal Assistant. Uses memoryBufferWindow, agent, agentTool, httpRequestTool. Event-driven trigger; 77 nodes.
Jarvis is a powerful multi-agent productivity assistant built in n8n. It works directly from Telegram and can understand both text messages and voice notes.
Inbox Guardian. Uses gmailTrigger, lmChatOpenAi, agent, textClassifier. Event-driven trigger; 66 nodes.
This template is designed for anyone who wants to use Telegram as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida
Multi Agent System Benefits. Uses gmailTool, lmChatOpenAi, agent, googleCalendarTool. Event-driven trigger; 46 nodes.