Streamline your team’s event scheduling by automating Google Calendar management using n8n and Google Calendar API. This workflow eliminates manual entry and potential scheduling conflicts, ensuring that your team's calendar is always up-to-date with accurate event information. Features include real-time event synchronization, the ability to execute workflows with a single trigger, and intelligent decision-making with switch functionality. Perfect for business teams managing multiple calendars or coordinating events across departments. Requires 1 account: Google Calendar OAuth. Save up to 5 hours per week by reducing scheduling errors and improving team collaboration through automated event updates.
Categories
APIs
Credentials
Copy or download to import into your n8n instance
{ "id": "aiKrExd0rAxJO6xi", "meta": { "instanceId": "f8eaf8bef1c6467fb3687216a5c1296ee5e886fb01cb197574b7f8e91332a8d8", "templateCredsSetupCompleted": true }, "name": "MCP_google_calendar", "tags": [], "nodes": [ { "id": "17ccfdbf-d121-4ff0-95d4-bb38644d2bb1", "name": "MCP Server Trigger", "type": "@n8n/n8n-nodes-langchain.mcpTrigger", "position": [ 80, -40 ], "webhookId": "c734cf98-3d5a-4cbd-af97-8ad2da760944", "parameters": { "path": "c734cf98-3d5a-4cbd-af97-8ad2da760944" }, "typeVersion": 1 }, { "id": "174a13be-04f1-417c-8510-26798dae3447", "name": "When Executed by Another Workflow", "type": "n8n-nodes-base.executeWorkflowTrigger", "position": [ 1060, 220 ], "parameters": { "workflowInputs": { "values": [ { "name": "operation" }, { "name": "startDate" }, { "name": "endDate" }, { "name": "eventId" }, { "name": "timeZone" } ] } }, "typeVersion": 1.1 }, { "id": "f74799f0-67b4-4247-905c-46adb1be4739", "name": "Operation", "type": "n8n-nodes-base.switch", "position": [ 1460, 180 ], "parameters": { "rules": { "values": [ { "outputKey": "getEvent", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "81b134bc-d671-4493-b3ad-8df9be3f49a6", "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $json.operation }}", "rightValue": "getEvent" } ] }, "renameOutput": true }, { "outputKey": "deleteEvent", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "8d57914f-6587-4fb3-88e0-aa1de6ba56c1", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.operation }}", "rightValue": "deleteEvent" } ] }, "renameOutput": true }, { "outputKey": "createEvent", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "7c38f238-213a-46ec-aefe-22e0bcb8dffc", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.operation }}", "rightValue": "createEvent" } ] }, "renameOutput": true }, { "outputKey": "updateEvent", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "ee9b6783-a0f2-4848-9166-aba6645c1ebc", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.operation }}", "rightValue": "updateEvent" } ] }, "renameOutput": true }, { "outputKey": "getEventData", "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "9ea6980d-a7be-4dec-8ddf-d2fcffb00af1", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "getEventData", "rightValue": "getEventData" } ] }, "renameOutput": true } ] }, "options": {} }, "typeVersion": 3.2 }, { "id": "b8007362-0d41-4875-872b-877f33b74bf8", "name": "validate_busy_time", "type": "@n8n/n8n-nodes-langchain.toolWorkflow", "position": [ -80, 240 ], "parameters": { "name": "validate_busy_time", "workflowId": { "__rl": true, "mode": "list", "value": "aiKrExd0rAxJO6xi", "cachedResultName": "MCP_google_calendar" }, "description": "Call this tool to validate if the gap of time is already busy. it is useful to validate before creating a new event", "workflowInputs": { "value": { "endDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('endDate', ``, 'string') }}", "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('eventId', ``, 'string') }}", "timeZone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('timeZone', ``, 'string') }}", "operation": "=getEvent", "startDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('startDate', ``, 'string') }}" }, "schema": [ { "id": "operation", "type": "string", "display": true, "removed": false, "required": false, "displayName": "operation", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "startDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "startDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "endDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "endDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "eventId", "type": "string", "display": true, "removed": false, "required": false, "displayName": "eventId", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "timeZone", "type": "string", "display": true, "removed": false, "required": false, "displayName": "timeZone", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false } }, "typeVersion": 2.1 }, { "id": "51f39673-4657-401b-b1bf-34e816318acf", "name": "create_new_event", "type": "@n8n/n8n-nodes-langchain.toolWorkflow", "position": [ 80, 240 ], "parameters": { "name": "create_new_event", "workflowId": { "__rl": true, "mode": "list", "value": "aiKrExd0rAxJO6xi", "cachedResultName": "MCP_google_calendar" }, "description": "Use this tool to create a new event; always validate if the gap of time is available before creating a new event ", "workflowInputs": { "value": { "endDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('endDate', ``, 'string') }}", "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('eventId', ``, 'string') }}", "timeZone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('timeZone', ``, 'string') }}", "operation": "createEvent", "startDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('startDate', ``, 'string') }}" }, "schema": [ { "id": "operation", "type": "string", "display": true, "removed": false, "required": false, "displayName": "operation", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "startDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "startDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "endDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "endDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "eventId", "type": "string", "display": true, "removed": false, "required": false, "displayName": "eventId", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "timeZone", "type": "string", "display": true, "removed": false, "required": false, "displayName": "timeZone", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false } }, "typeVersion": 2.1 }, { "id": "3587c022-2f57-4bf6-8066-c292bcab5399", "name": "delete_event", "type": "@n8n/n8n-nodes-langchain.toolWorkflow", "position": [ 360, 240 ], "parameters": { "name": "delete_event", "workflowId": { "__rl": true, "mode": "list", "value": "aiKrExd0rAxJO6xi", "cachedResultName": "MCP_google_calendar" }, "description": "Call this tool to delete a event, to delete a event you need the even id. it is required", "workflowInputs": { "value": { "endDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('endDate', ``, 'string') }}", "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('eventId', ``, 'string') }}", "timeZone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('timeZone', ``, 'string') }}", "operation": "deleteEvent", "startDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('startDate', ``, 'string') }}" }, "schema": [ { "id": "operation", "type": "string", "display": true, "removed": false, "required": false, "displayName": "operation", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "startDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "startDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "endDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "endDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "eventId", "type": "string", "display": true, "removed": false, "required": false, "displayName": "eventId", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "timeZone", "type": "string", "display": true, "removed": false, "required": false, "displayName": "timeZone", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false } }, "typeVersion": 2.1 }, { "id": "1da9a808-b478-47cd-b129-2a11d83d8735", "name": "update_event", "type": "@n8n/n8n-nodes-langchain.toolWorkflow", "position": [ 220, 240 ], "parameters": { "name": "update_event", "workflowId": { "__rl": true, "mode": "list", "value": "aiKrExd0rAxJO6xi", "cachedResultName": "MCP_google_calendar" }, "description": "Call this tool to update the event name, startDate or endDate. Validate with validate_busy_time before any action", "workflowInputs": { "value": { "endDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('endDate', ``, 'string') }}", "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('eventId', ``, 'string') }}", "timeZone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('timeZone', ``, 'string') }}", "operation": "updateEvent", "startDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('startDate', ``, 'string') }}" }, "schema": [ { "id": "operation", "type": "string", "display": true, "removed": false, "required": false, "displayName": "operation", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "startDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "startDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "endDate", "type": "string", "display": true, "removed": false, "required": false, "displayName": "endDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "eventId", "type": "string", "display": true, "removed": false, "required": false, "displayName": "eventId", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "timeZone", "type": "string", "display": true, "removed": false, "required": false, "displayName": "timeZone", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false } }, "typeVersion": 2.1 }, { "id": "f3105e5b-0dec-44d0-ba5c-5bd91b0887d1", "name": "validate_availability_event", "type": "n8n-nodes-base.googleCalendar", "position": [ 2100, -220 ], "parameters": { "options": {}, "timeMax": "={{ $json.endDate }}", "timeMin": "={{ $json.startDate }}", "calendar": { "__rl": true, "mode": "list", "value": "your-calendar@gmail.com", "cachedResultName": "your-calendar@gmail.com" }, "resource": "calendar" }, "credentials": { "googleCalendarOAuth2Api": { "id": "google-api-id", "name": "Google Calendar account" } }, "typeVersion": 1.3 }, { "id": "43f2125b-85ea-455d-92ed-b84d0eb4a566", "name": "check_availability_to_create", "type": "n8n-nodes-base.googleCalendar", "position": [ 1780, 220 ], "parameters": { "options": {}, "timeMax": "={{ $('map_data').item.json.endDate }}", "timeMin": "={{ $('map_data').item.json.startDate }}", "calendar": { "__rl": true, "mode": "list", "value": "your-calendar@gmail.com", "cachedResultName": "your-calendar@gmail.com" }, "resource": "calendar" }, "credentials": { "googleCalendarOAuth2Api": { "id": "google-api-id", "name": "Google Calendar account" } }, "typeVersion": 1.3 }, { "id": "7f2e1fef-79cb-4728-aa63-1afe038598ab", "name": "If", "type": "n8n-nodes-base.if", "position": [ 2000, 220 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "4ee8a84d-c48a-416f-aa31-0633ee59124b", "operator": { "type": "boolean", "operation": "true", "singleValue": true }, "leftValue": "={{ $json.available }}", "rightValue": "" } ] } }, "typeVersion": 2.2 }, { "id": "b2523fe9-526b-4617-b404-59a0b0e6d0e0", "name": "Stop and Error", "type": "n8n-nodes-base.stopAndError", "position": [ 2220, 320 ], "parameters": { "errorMessage": "The time you are trying to create the event is busy" }, "typeVersion": 1 }, { "id": "c72026c4-820d-4be0-9bbd-37b9ec6d2bf1", "name": "create_event", "type": "n8n-nodes-base.googleCalendar", "position": [ 2220, 160 ], "parameters": { "end": "={{ $('map_data').item.json.endDate }}", "start": "={{ $('map_data').item.json.startDate }}", "calendar": { "__rl": true, "mode": "list", "value": "your-calendar@gmail.com", "cachedResultName": "your-calendar@gmail.com" }, "additionalFields": {} }, "credentials": { "googleCalendarOAuth2Api": { "id": "google-api-id", "name": "Google Calendar account" } }, "typeVersion": 1.3 }, { "id": "61f84fdb-768e-4b5f-9df9-21316dfa7678", "name": "delete_event1", "type": "n8n-nodes-base.googleCalendar", "position": [ 2120, -20 ], "parameters": { "eventId": "={{ $('map_data').item.json.eventId }}", "options": {}, "calendar": { "__rl": true, "mode": "list", "value": "your-calendar@gmail.com", "cachedResultName": "your-calendar@gmail.com" }, "operation": "delete" }, "credentials": { "googleCalendarOAuth2Api": { "id": "google-api-id", "name": "Google Calendar account" } }, "typeVersion": 1.3 }, { "id": "2544e1e6-e620-4794-b1d4-898b2e9722ad", "name": "Edit Fields", "type": "n8n-nodes-base.set", "position": [ 2320, -220 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "973dfb96-eeda-45be-bc93-668c9118677f", "name": "available", "type": "boolean", "value": "={{ $json.available }}" } ] } }, "typeVersion": 3.4 }, { "id": "966dc7bb-b2c8-40b1-95d9-ad10b232d1b2", "name": "get_event_in_time_gap", "type": "n8n-nodes-base.googleCalendar", "position": [ 1860, 700 ], "parameters": { "options": {}, "timeMax": "={{ $('map_data').item.json.endDate }}", "timeMin": "={{ $('map_data').item.json.startDate }}", "calendar": { "__rl": true, "mode": "list", "value": "your-calendar@gmail.com", "cachedResultName": "your-calendar@gmail.com" }, "operation": "getAll" }, "credentials": { "googleCalendarOAuth2Api": { "id": "google-api-id", "name": "Google Calendar account" } }, "typeVersion": 1.3, "alwaysOutputData": true }, { "id": "7010b476-f500-4891-a795-30c75f0f077c", "name": "update_calendar", "type": "n8n-nodes-base.googleCalendar", "position": [ 1860, 480 ], "parameters": { "eventId": "={{ $json.eventId }}", "calendar": { "__rl": true, "mode": "list", "value": "your-calendar@gmail.com", "cachedResultName": "your-calendar@gmail.com" }, "operation": "update", "updateFields": { "end": "={{ $json.endDate }}", "start": "={{ $json.startDate }}" } }, "credentials": { "googleCalendarOAuth2Api": { "id": "google-api-id", "name": "Google Calendar account" } }, "typeVersion": 1.3 }, { "id": "933163a6-5597-48da-95de-7067dd55ad84", "name": "get_events_in_gap_time", "type": "@n8n/n8n-nodes-langchain.toolWorkflow", "position": [ 520, 240 ], "parameters": { "name": "get_events_in_gap_time", "workflowId": { "__rl": true, "mode": "list", "value": "aiKrExd0rAxJO6xi", "cachedResultName": "MCP_google_calendar" }, "description": "Use this tool to get event data in a gap of time. but if you have just validate the availibity of the time use \"validate_busy_time\" tool this is tool is to get data", "workflowInputs": { "value": { "endDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('endDate', ``, 'string') }}", "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('eventId', ``, 'string') }}", "timeZone": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('timeZone', ``, 'string') }}", "operation": "getEventData", "startDate": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('startDate', ``, 'string') }}" }, "schema": [ { "id": "operation", "type": "string", "display": true, "required": false, "displayName": "operation", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "startDate", "type": "string", "display": true, "required": false, "displayName": "startDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "endDate", "type": "string", "display": true, "required": false, "displayName": "endDate", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "eventId", "type": "string", "display": true, "required": false, "displayName": "eventId", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "timeZone", "type": "string", "display": true, "removed": false, "required": false, "displayName": "timeZone", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false } }, "typeVersion": 2.1 }, { "id": "01c9435e-0258-4048-a3ad-cf84424fad6c", "name": "map_data", "type": "n8n-nodes-base.set", "position": [ 1240, 220 ], "parameters": { "mode": "raw", "options": {}, "jsonOutput": "={\n \"operation\": \"{{ $json.operation }}\",\n \"startDate\": \"{{ DateTime.fromISO($json.startDate).setZone($json.timeZone).toISO() }}\",\n \"endDate\": \"{{ DateTime.fromISO($json.endDate).setZone($json.timeZone).toISO() }}\",\n \"eventId\": \"{{ $json.eventId }}\",\n \"timeZone\": \"{{ $json.timeZone }}\"\n}\n" }, "typeVersion": 3.4 }, { "id": "0e3a8817-7485-499c-9692-7b920bb34b3f", "name": "response_data_get_data", "type": "n8n-nodes-base.set", "position": [ 2080, 700 ], "parameters": { "mode": "raw", "options": {}, "jsonOutput": "={\n \"isAvailableTime\":{{$json.values().length === 0}},\n\"eventData\":{\nid:\"{{ $json.id }}\"\n}\n}\n" }, "typeVersion": 3.4 } ], "active": true, "pinData": { "When Executed by Another Workflow": [ { "json": { "endDate": "2025-05-17T20:00:00Z", "eventId": null, "timeZone": "America/Argentina/Buenos_Aires", "operation": "getEventData", "startDate": "2025-05-17T19:00:00Z" } } ] }, "settings": { "executionOrder": "v1" }, "versionId": "fbb67adf-7d52-4b42-8b61-a3c01470a1f9", "connections": { "If": { "main": [ [ { "node": "create_event", "type": "main", "index": 0 } ], [ { "node": "Stop and Error", "type": "main", "index": 0 } ] ] }, "map_data": { "main": [ [ { "node": "Operation", "type": "main", "index": 0 } ] ] }, "Operation": { "main": [ [ { "node": "validate_availability_event", "type": "main", "index": 0 } ], [ { "node": "delete_event1", "type": "main", "index": 0 } ], [ { "node": "check_availability_to_create", "type": "main", "index": 0 } ], [ { "node": "update_calendar", "type": "main", "index": 0 } ], [ { "node": "get_event_in_time_gap", "type": "main", "index": 0 } ] ] }, "delete_event": { "ai_tool": [ [ { "node": "MCP Server Trigger", "type": "ai_tool", "index": 0 } ] ] }, "update_event": { "ai_tool": [ [ { "node": "MCP Server Trigger", "type": "ai_tool", "index": 0 } ] ] }, "create_new_event": { "ai_tool": [ [ { "node": "MCP Server Trigger", "type": "ai_tool", "index": 0 } ] ] }, "validate_busy_time": { "ai_tool": [ [ { "node": "MCP Server Trigger", "type": "ai_tool", "index": 0 } ] ] }, "get_event_in_time_gap": { "main": [ [ { "node": "response_data_get_data", "type": "main", "index": 0 } ] ] }, "get_events_in_gap_time": { "ai_tool": [ [ { "node": "MCP Server Trigger", "type": "ai_tool", "index": 0 } ] ] }, "validate_availability_event": { "main": [ [ { "node": "Edit Fields", "type": "main", "index": 0 } ] ] }, "check_availability_to_create": { "main": [ [ { "node": "If", "type": "main", "index": 0 } ] ] }, "When Executed by Another Workflow": { "main": [ [ { "node": "map_data", "type": "main", "index": 0 } ] ] } } }
Automate customer queries with an AI assistant powered by OpenAI GPT and Serp API. Use the chat Trigger and memory Buffer Window to provide instant and accurate responses to customer inquiries 24/7. Features include conversation memory for seamless interactions, real-time data processing for updated answers, and automatic filtering to prioritize urgent messages. Perfect for e-commerce businesses handling over 100 daily product inquiries, SaaS support teams, or any customer-facing role that requires fast, reliable answers. Requires 2 accounts: OpenAI API and Serp API. Save up to 5 hours daily by managing unlimited customer conversations with contextual, product-specific answers from your resources.
Streamline your RSS feed updates using Google Gemini and AI Agent for real-time content delivery. This automation workflow connects your RSS Feed Read Tool with the HTTP Request Tool, ensuring you receive instant updates on critical information. Features include conversation memory for personalized interactions, intelligent data processing via Google Gemini, and a memory buffer window for efficient handling of requests. Ideal for developers and integrators managing multiple content streams or building news aggregation tools. Requires 0 accounts: simply set up your RSS feeds. Experience a 90% reduction in manual update time and handle thousands of feed entries seamlessly.
Streamline document retrieval and management for your team with an automation workflow powered by Google Drive API and Google Gemini. Automate the process of loading, processing, and retrieving company documents stored in Google Drive using advanced AI embeddings and vector storage. Features include real-time document processing, vector database for quick access, and AI agent chat for instant queries. Perfect for business teams managing large volumes of documents or onboarding new employees. Requires 4 accounts: Pinecone API, Google Palm API, Google Drive OAuth, and more. Save up to 10 hours weekly by automating document searches and retrieval, allowing your team to focus on high-impact tasks.
Automate your team scheduling process using Google Calendar and an AI assistant powered by OpenAI GPT. Streamline meeting setups and reminders through automated Telegram messages that keep your team informed in real-time. Features include conversation memory for context-aware interactions, automatic processing of scheduling requests, and seamless integration with Gmail for confirmation emails. Perfect for communication teams managing multiple schedules and ensuring no double bookings occur. Requires 2 accounts: Telegram Bot Token and OpenAI API Key. Save up to 10 hours weekly by automating meeting coordination and reduce scheduling conflicts by 95%.
Configure credentials and update service-specific settings before executing the workflow. Review required credentials in the Technical Details section above.