Workflow: 🤖Calendar Agent
Integrations: executeWorkflowTrigger, googleCalendarTool, noOp, set, stopAndError

{"name": "\ud83e\udd16Calendar Agent", "nodes": [{"parameters": {"model": "gpt-4o", "options": {}}, "id": "a34e2d84-ae30-4bfe-afa9-23dbd5dd3845", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "typeVersion": 1, "position": [740, 540], "credentials": {"openAiApi": {"id": "BP9v81AwJlpYGStD", "name": "OpenAi account"}}, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"parameters": {"assignments": {"assignments": [{"id": "7ab380a2-a8d3-421c-ab4e-748ea8fb7904", "name": "response", "value": "Unable to perform task. Please try again.", "type": "string"}]}, "options": {}}, "id": "ec5518af-86f7-4f41-9682-ddddc621f356", "name": "Try Again", "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [1660, 380], "notes": "This set node performs automated tasks as part of the workflow."}, {"parameters": {"assignments": {"assignments": [{"id": "39c2f302-03be-4464-a17a-d7cc481d6d44", "name": "=response", "value": "={{$json.output}}", "type": "string"}]}, "options": {}}, "id": "fc889778-08ca-431e-8109-7133110aa0db", "name": "Success", "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [1660, 180], "notes": "This set node performs automated tasks as part of the workflow."}, {"parameters": {"promptType": "define", "text": "={{ $json.query }}", "options": {"systemMessage": "=# Overview\nYou are a calendar assistant. Your responsibilities include creating, getting, and deleting events in the user's calendar.\n\n**Calendar Management Tools**  \n   - Use \"Create Event with Attendee\" when an event includes a participant.  \n   - Use \"Create Event\" for solo events.   \n   - Use \"Get Events\" to fetch calendar schedules when requested.\n   - Use \"Delete Event\" to delete an event. You must use \"Get Events\" first to get the ID of the event to delete.\n   - Use \"Update Event\" to update an event. You must use \"Get Events\" first to get the ID of the event to update.\n\n## Final Notes\nHere is the current date/time: {{ $now }}\nIf a duration for an event isn't specified, assume it will be one hour."}}, "id": "47814b5d-390b-4d4c-b6ec-578075200739", "name": "Calendar Agent", "type": "n8n-nodes-base.noOp", "typeVersion": 1.6, "position": [980, 280], "onError": "continueErrorOutput", "notes": "This agent node performs automated tasks as part of the workflow."}, {"parameters": {"calendar": {"__rl": true, "value": "nateherk88@gmail.com", "mode": "list", "cachedResultName": "nateherk88@gmail.com"}, "start": "={{ $fromAI(\"eventStart\") }}", "end": "={{ $fromAI(\"eventEnd\") }}", "additionalFields": {"attendees": ["={{ $fromAI(\"eventAttendeeEmail\") }}"], "summary": "={{ $fromAI(\"eventTitle\") }}"}}, "type": "n8n-nodes-base.googleCalendarTool", "typeVersion": 1.3, "position": [1440, 540], "id": "2d26c039-4756-4a86-b09c-1160b7cd6022", "name": "Create Event with Attendee", "credentials": {"googleCalendarOAuth2Api": {"id": "HYMNtkm0oglf42QP", "name": "Google Calendar account"}}, "notes": "This googleCalendarTool node performs automated tasks as part of the workflow."}, {"parameters": {"calendar": {"__rl": true, "value": "nateherk88@gmail.com", "mode": "list", "cachedResultName": "nateherk88@gmail.com"}, "start": "={{ $fromAI(\"eventStart\") }}", "end": "={{ $fromAI(\"eventEnd\") }}", "additionalFields": {"attendees": [], "summary": "={{ $fromAI(\"eventTitle\") }}"}}, "type": "n8n-nodes-base.googleCalendarTool", "typeVersion": 1.3, "position": [1300, 640], "id": "8bd1e7c7-98a0-4cc1-96e3-cfd2107475a9", "name": "Create Event", "credentials": {"googleCalendarOAuth2Api": {"id": "HYMNtkm0oglf42QP", "name": "Google Calendar account"}}, "notes": "This googleCalendarTool node performs automated tasks as part of the workflow."}, {"parameters": {"operation": "getAll", "calendar": {"__rl": true, "value": "nateherk88@gmail.com", "mode": "list", "cachedResultName": "nateherk88@gmail.com"}, "timeMin": "={{ $fromAI(\"dayBefore\",\"the day before the date the user requested\") }}", "timeMax": "={{ $fromAI(\"dayAfter\",\"the day after the date the user requested\") }}", "options": {}}, "type": "n8n-nodes-base.googleCalendarTool", "typeVersion": 1.3, "position": [1160, 680], "id": "b148f124-e2b4-4e47-8053-45d03d77ff6e", "name": "Get Events", "credentials": {"googleCalendarOAuth2Api": {"id": "HYMNtkm0oglf42QP", "name": "Google Calendar account"}}, "notes": "This googleCalendarTool node performs automated tasks as part of the workflow."}, {"parameters": {"operation": "delete", "calendar": {"__rl": true, "value": "nateherk88@gmail.com", "mode": "list", "cachedResultName": "nateherk88@gmail.com"}, "eventId": "={{ $fromAI(\"eventID\") }}", "options": {}}, "type": "n8n-nodes-base.googleCalendarTool", "typeVersion": 1.3, "position": [1020, 660], "id": "923acc0e-85b5-44e6-a063-f1642f5108b3", "name": "Delete Event", "credentials": {"googleCalendarOAuth2Api": {"id": "HYMNtkm0oglf42QP", "name": "Google Calendar account"}}, "notes": "This googleCalendarTool node performs automated tasks as part of the workflow."}, {"parameters": {"operation": "update", "calendar": {"__rl": true, "value": "nateherk88@gmail.com", "mode": "list", "cachedResultName": "nateherk88@gmail.com"}, "eventId": "={{ $fromAI(\"eventID\") }}", "updateFields": {"end": "={{ $fromAI(\"endTime\") }}", "start": "={{ $fromAI(\"startTime\") }}"}}, "type": "n8n-nodes-base.googleCalendarTool", "typeVersion": 1.3, "position": [880, 620], "id": "41941ae4-9cc7-4c96-8e4f-957804fc8be2", "name": "Update Event", "credentials": {"googleCalendarOAuth2Api": {"id": "HYMNtkm0oglf42QP", "name": "Google Calendar account"}}, "notes": "This googleCalendarTool node performs automated tasks as part of the workflow."}, {"parameters": {"inputSource": "passthrough"}, "type": "n8n-nodes-base.executeWorkflowTrigger", "typeVersion": 1.1, "position": [740, 280], "id": "8abc645d-345e-4113-966d-0d3373f4141b", "name": "When Executed by Another Workflow", "notes": "This executeWorkflowTrigger node performs automated tasks as part of the workflow."}, {"id": "error-cd00c98a", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [1000, 400], "parameters": {"message": "Workflow execution error", "options": {}}}], "pinData": {}, "connections": {"a34e2d84-ae30-4bfe-afa9-23dbd5dd3845": {"main": [[{"node": "error-handler-a34e2d84-ae30-4bfe-afa9-23dbd5dd3845-c1a8f01a", "type": "main", "index": 0}]]}, "2d26c039-4756-4a86-b09c-1160b7cd6022": {"main": [[{"node": "error-handler-2d26c039-4756-4a86-b09c-1160b7cd6022-757bd424", "type": "main", "index": 0}]]}, "8bd1e7c7-98a0-4cc1-96e3-cfd2107475a9": {"main": [[{"node": "error-handler-8bd1e7c7-98a0-4cc1-96e3-cfd2107475a9-c2b3bf1c", "type": "main", "index": 0}]]}, "b148f124-e2b4-4e47-8053-45d03d77ff6e": {"main": [[{"node": "error-handler-b148f124-e2b4-4e47-8053-45d03d77ff6e-ea1fc865", "type": "main", "index": 0}]]}, "923acc0e-85b5-44e6-a063-f1642f5108b3": {"main": [[{"node": "error-handler-923acc0e-85b5-44e6-a063-f1642f5108b3-5d9ba082", "type": "main", "index": 0}]]}, "41941ae4-9cc7-4c96-8e4f-957804fc8be2": {"main": [[{"node": "error-handler-41941ae4-9cc7-4c96-8e4f-957804fc8be2-681c6911", "type": "main", "index": 0}]]}}, "active": false, "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "64d1923c-64fc-4d17-b776-cf0528ac9366", "meta": {"instanceId": "workflow-c10ec8da", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:45.307159", "updatedAt": "2025-09-29T07:07:45.307187", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "id": "0NtlJ41IozGhtFa6", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "description": "Automated workflow: \ud83e\udd16Calendar Agent. This workflow processes data and performs automated tasks.", "notes": "Excellent quality workflow: \ud83e\udd16Calendar Agent. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}