This workflow corresponds to n8n.io template #calendar_agent_with_gcal — we link there as the canonical source.
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 →
{
"updatedAt": "2025-09-25T18:09:17.000Z",
"createdAt": "2025-09-25T18:02:21.559Z",
"id": "vhXudljSHti48vmR",
"name": "Calendar agent",
"active": false,
"isArchived": true,
"nodes": [
{
"parameters": {
"resource": "calendar",
"calendar": {
"__rl": true,
"value": "bintang10panji@gmail.com",
"mode": "list",
"cachedResultName": "bintang10panji@gmail.com"
},
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Time', `Start date for availability check`, 'string') }}",
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End_Time', `End date for availability check`, 'string') }}",
"options": {}
},
"id": "e3eb2815-735f-4efd-a844-da9d53e45aae",
"name": "Get availability",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.3,
"position": [
-32,
224
],
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "getAll",
"calendar": {
"__rl": true,
"value": "bintang10panji@gmail.com",
"mode": "list",
"cachedResultName": "bintang10panji@gmail.com"
},
"returnAll": true,
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', `Start date for events search`, 'string') }}",
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', `End date for events search`, 'string') }}",
"options": {}
},
"id": "d6c00690-8d0c-4942-aa17-077e61c909d1",
"name": "Get events",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.3,
"position": [
112,
224
],
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"id": "719aaeb8-e985-4235-bcff-c2bfbc6a8e5c",
"name": "Chat message",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.3,
"position": [
-400,
-32
]
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
-176,
224
],
"id": "56bd33c7-bb31-4957-9f12-fdcc2351880d",
"name": "Simple Memory"
},
{
"parameters": {
"options": {
"systemMessage": "=You are a helpful calendar assistant. You can check availability and retrieve events from Google Calendar. When users ask about dates, use the calendar tools to get the information. Always specify date ranges clearly when using the tools.\n\nTodays date is: {{ $now }}",
"maxIterations": 10,
"returnIntermediateSteps": false,
"passthroughBinaryImages": true,
"batching": {},
"enableStreaming": true
}
},
"id": "1e8be9e3-24a4-415b-9424-6f9010c5f333",
"name": "Calendar agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
-160,
-32
]
},
{
"parameters": {
"content": "## Start here!\n@[youtube](-S5k4sXrPws)",
"height": 320,
"width": 464,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
-32
],
"typeVersion": 1,
"id": "d3552acd-20f1-40e0-af3c-e2aabdbf3f27",
"name": "Sticky Note"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
-336,
208
],
"id": "4a504d67-d17b-4041-a31d-38eeb0ecd9c9",
"name": "Google Gemini Chat Model",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Get availability": {
"ai_tool": [
[
{
"node": "Calendar agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get events": {
"ai_tool": [
[
{
"node": "Calendar agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Chat message": {
"main": [
[
{
"node": "Calendar agent",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Calendar agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Calendar agent",
"type": "ai_languageModel",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": {
"templateId": "calendar_agent_with_gcal",
"templateCredsSetupCompleted": true
},
"versionId": "5295ff7a-5c41-435d-967b-062254494b1c",
"triggerCount": 0,
"shared": [
{
"updatedAt": "2025-09-25T18:02:21.570Z",
"createdAt": "2025-09-25T18:02:21.570Z",
"role": "workflow:owner",
"workflowId": "vhXudljSHti48vmR",
"projectId": "DiQC0tGxFhuiK9UM"
}
],
"tags": []
}
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.
googleCalendarOAuth2ApigooglePalmApi
About this workflow
Calendar agent. Uses googleCalendarTool, memoryBufferWindow, agent, lmChatGoogleGemini. Event-driven trigger; 10 nodes.
Source: https://github.com/SamVivan1/n8n-Workflows-Backup/blob/main/calendar-agent-s0FyZDAmXHofrOEz.json — original creator credit. Request a take-down →