This workflow follows the Agent → Chat Trigger 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 →
{
"name": "1_3_Building_First_AI_Agent",
"nodes": [
{
"parameters": {
"operation": "getAll",
"calendar": {
"__rl": true,
"value": "datapopcorn@gmail.com",
"mode": "list",
"cachedResultName": "datapopcorn@gmail.com"
},
"returnAll": true,
"options": {
"timeMin": "={{ $fromAI('after', 'The earliest datetime we want to look for events for') }}",
"timeMax": "={{ $fromAI('before', 'The latest datetime we want to look for events for') }}",
"singleEvents": true,
"query": "={{ $fromAI('query', 'The search query to look for in the calendar. Leave empty if no search query is needed') }}"
}
},
"id": "deeee90a-e7a1-40f6-bb6b-d1acd85f6eaf",
"name": "Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.2,
"position": [
860,
220
]
},
{
"parameters": {
"public": true,
"options": {
"title": "\ub370\uc774\ud130\ud31d\ucf58 \uc0c1\ub2f4 \ucc44\ub110\uc785\ub2c8\ub2e4."
}
},
"id": "d745d9c8-c452-4841-90eb-e2e1971451e8",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
360,
20
]
},
{
"parameters": {
"options": {
"systemMessage": "=You're a helpful assistant that helps the user answer questions about their calendar.\n\nToday is {{ $now.format('cccc') }} the {{ $now.format('yyyy-MM-dd HH:mm') }}."
}
},
"id": "53109f61-f307-432f-acb8-1d1e56294c53",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.7,
"position": [
560,
20
]
},
{
"parameters": {
"content": "\n## \ud83d\udc4b n8n\uc5d0 \uc624\uc2e0 \uac83\uc744 \ud658\uc601\ud569\ub2c8\ub2e4!\n\uc774 \uc608\ub294 \uce98\ub9b0\ub354\uc640 \uc0c1\ud638 \uc791\uc6a9\ud558\ub294 AI \uc5d0\uc774\uc804\ud2b8\ub97c \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \n\uce98\ub9b0\ub354.\n\n### 1. \uacc4\uc815 \uc5f0\uacb0\ud558\uae30\n- OpenAI \ubaa8\ub378` \ub178\ub4dc\uc5d0\uc11c `\ubb34\ub8cc` 0\uac1c\uc758 OpenAI \ud638\ucd9c\uc744 \uc694\uccad\ud569\ub2c8\ub2e4. \n- \uad6c\uae00 \uce98\ub9b0\ub354` \ub178\ub4dc \uc790\uaca9 \uc99d\uba85 \uc139\uc158\uc5d0\uc11c \uad6c\uae00 \uacc4\uc815\uc744 \uc5f0\uacb0\ud569\ub2c8\ub2e4.\n\n### 2. \ud14c\uc2a4\ud2b8\ud560 \uc900\ube44\uac00 \ub418\uc168\ub098\uc694?\n\uc544\ub798 \ucc44\ud305\uc744 \ud074\ub9ad\ud558\uace0 \uc9c8\ubb38\uc744 \uc2dc\uc791\ud558\uc138\uc694! \uc608\ub97c \ub4e4\uc5b4 `\uc624\ub298 \uc5b4\ub5a4 \ud68c\uc758\uac00 \uc788\ub098\uc694?",
"height": 469,
"width": 319,
"color": 6
},
"id": "79d655d4-a0f9-4f9f-b277-fa1d4783337f",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
-80
]
},
{
"parameters": {
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\uad6c\uae00 \uce98\ub9b0\ub354**\uac00 \uc5c6\uc73c\uc2e0\uac00\uc694? Microsoft Outlook** \ub610\ub294 \ub2e4\ub978 \ub3c4\uad6c\ub85c \ubc14\uafb8\uba74 \ub429\ub2c8\ub2e4.",
"height": 233,
"width": 210,
"color": 7
},
"id": "8e8f9e35-988c-46a7-939e-f2d6f5b52d41",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
820,
220
]
},
{
"parameters": {
"options": {}
},
"id": "b912ebd6-c9c2-4ace-9bbc-12bdc9b8d872",
"name": "OpenAI Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1,
"position": [
520,
220
],
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"id": "b6bcdaed-69bc-4bb8-ae03-50de7bce6a7e",
"name": "Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
680,
220
]
},
{
"parameters": {
"content": "### \ub354 \uc790\uc138\ud788 \uc54c\uace0 \uc2f6\uc73c\uc2e0\uac00\uc694?\nAI\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uace0 n8n\uc5d0\uc11c AI\ub97c \uac00\uc7a5 \ud6a8\uacfc\uc801\uc73c\ub85c \uc801\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uace0 \uc2f6\uc73c\uc2e0\uac00\uc694? YouTube\uc758 [\uc0c8\ub85c\uc6b4 \ud29c\ud1a0\ub9ac\uc5bc \uc2dc\ub9ac\uc988](https://www.youtube.com/watch?v=yzvLfHb0nqE&lc)\ub97c \uc0b4\ud3b4\ubcf4\uc138\uc694.",
"height": 100,
"width": 317,
"color": 6
},
"id": "0fd88611-391d-46d9-9e80-92f1201a8fa3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
0,
400
]
},
{
"parameters": {
"calendar": {
"__rl": true,
"value": "datapopcorn@gmail.com",
"mode": "list",
"cachedResultName": "datapopcorn@gmail.com"
},
"start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
"end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
"additionalFields": {
"summary": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Summary', ``, 'string') }}"
}
},
"id": "4f229367-5eb8-4254-82f0-9dffa9e98829",
"name": "Google Calendar1",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.2,
"position": [
1020,
220
]
}
],
"connections": {
"Google Calendar": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Google Calendar1": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "8da28da1-1466-4ec0-85e9-5f8dd05959c1",
"id": "g2gQBlK3NzYBtCQt",
"tags": [
{
"createdAt": "2025-04-24T07:21:45.484Z",
"updatedAt": "2025-04-24T07:21:45.484Z",
"id": "jqWurvS7xJkHjdlh",
"name": "inflearn"
}
]
}
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.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
1_3_Building_First_AI_Agent. Uses googleCalendarTool, chatTrigger, agent, lmChatOpenAi. Chat trigger; 9 nodes.
Source: https://github.com/2innnnn0/fastcampus-n8n-data-analysis-agent/blob/main/workflows/1_3_Building_First_AI_Agent.json — 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.
Think Tool. Uses stickyNote, agent, googleCalendarTool, memoryBufferWindow. Chat trigger; 28 nodes.
Overview Meet Maria, a sophisticated AI Booking Agent designed for Veterinary Clinics (but easily adaptable to any service business). This workflow transforms a simple chat interface into a full-scale
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
This workflow turns n8n into a smart, conversational personal assistant. Think of it as a digital manager for your daily work life. It can read your emails, write out message drafts, check when you ar
✨ Intro This workflow shows how to go beyond a “plain” AI chatbot by: