Telegram meets Google Calendar for conflict-free booking
You know the drill. Someone pings you for “tomorrow afternoon,” you jump into Google Calendar, you squint at time zones, then you bounce back to chat and try to sound confident.
This is where Telegram calendar booking automation pays off fast. Consultants who book calls all day feel the friction first. But agency owners coordinating clients and ops managers keeping internal meetings tidy run into the same mess.
This workflow turns Telegram into your scheduling command center so you can create conflict-free events and capture tasks in the same conversation. You’ll see what it fixes, what you need, and how the flow works.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Telegram meets Google Calendar for conflict-free booking
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n12@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Trigger"]
n14@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n15@{ icon: "mdi:wrench", form: "rounded", label: "Google Tasks MCP", pos: "b", h: 48 }
n16@{ icon: "mdi:wrench", form: "rounded", label: "Google Calender MCP", pos: "b", h: 48 }
n17@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Send Error Message"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Send Message"]
n14 --> n19
n19 --> n18
n17 -.-> n14
n15 -.-> n14
n13 --> n14
n12 -.-> n14
n16 -.-> n14
end
subgraph sg1["MCP Server Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "MCP Server Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:location-exit", form: "rounded", label: "Create an Event in Google Ca..", pos: "b", h: 48 }
n2@{ icon: "mdi:location-exit", form: "rounded", label: "Create an Event in Google Ca..", pos: "b", h: 48 }
n3@{ icon: "mdi:location-exit", form: "rounded", label: "Delete an event Google Calen..", pos: "b", h: 48 }
n4@{ icon: "mdi:location-exit", form: "rounded", label: "Create a weekly recurrent ev..", pos: "b", h: 48 }
n20@{ icon: "mdi:location-exit", form: "rounded", label: "Get_Events", pos: "b", h: 48 }
n21@{ icon: "mdi:location-exit", form: "rounded", label: "GetAll_Events", pos: "b", h: 48 }
n20 -.-> n0
n21 -.-> n0
n3 -.-> n0
n4 -.-> n0
n1 -.-> n0
n2 -.-> n0
end
subgraph sg2["MCP Server Flow"]
direction LR
n5@{ icon: "mdi:cog", form: "rounded", label: "complete_task", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "update tasks", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "create_task", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "get_tasks", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "delete task", pos: "b", h: 48 }
n10@{ icon: "mdi:web", form: "rounded", label: "move_task_position", pos: "b", h: 48 }
n11@{ icon: "mdi:play-circle", form: "rounded", label: "MCP Server Trigger1", pos: "b", h: 48 }
n8 -.-> n11
n7 -.-> n11
n9 -.-> n11
n6 -.-> n11
n5 -.-> n11
n10 -.-> n11
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n13,n0,n11 trigger
class n14 ai
class n12 aiModel
class n15,n16 ai
class n17 ai
class n10 api
classDef customIcon fill:none,stroke:none
class n13,n18,n19 customIcon
The Challenge: Booking meetings without calendar whiplash
Scheduling sounds simple until it’s not. You’re switching between Telegram, Google Calendar, maybe Google Tasks, and you’re doing the “does this overlap?” dance every time. Then the edge cases show up: recurring meetings, adding an attendee, deleting the right event ID, or realizing the time zone is off and now you’ve created a meeting that nobody can attend. It’s not just time. It’s attention. And honestly, the context switching is what drains you.
It adds up fast. Here’s where it breaks down in real life.
- You double-book because “tomorrow at 3” was interpreted differently across time zones or calendars.
- Recurring events get created with the wrong cadence, and you don’t notice until the third no-show.
- Tasks live in random places, so follow-ups slip even when the meeting went well.
- You waste about 10 minutes per request just moving between apps and confirming details.
The Fix: A Telegram assistant that schedules and tracks for you
This workflow introduces “Troy,” a Telegram-based assistant that understands natural language and turns it into clean Google Calendar events and Google Tasks. A message comes in through Telegram, the AI agent reads the intent (“schedule,” “list,” “delete,” “add a task,” “mark complete”), then routes the request to the right Google tool. Before creating an event, it checks for conflicts so you don’t accidentally stack meetings. It can handle single events, weekly recurring events, and invitations for one or two attendees. For tasks, it can create, update, reorder, and complete items, which means follow-ups stop living in your head.
The flow starts in Telegram and stays conversational. The AI layer (GPT-4o-mini via OpenAI) interprets what you meant, then the Google Calendar and Google Tasks MCP tools do the actual work. Finally, you get a confirmation back in Telegram, plus an error message if anything fails so you’re not left guessing.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you handle 10 scheduling requests a week. Manually, each one is usually 2 quick app switches (Telegram → Calendar → Telegram), a conflict check, then maybe a task reminder, which is easily 10 minutes per request. That’s roughly 100 minutes a week of pure coordination. With this workflow, you send one Telegram message, wait for the confirmation, and you’re done in about 1 minute of your time per request. You get back around 90 minutes weekly, and the calendar stays cleaner.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram for the chat-based command interface.
- Google Calendar to create, update, list, and delete events.
- Google Tasks to capture and manage follow-ups.
- Telegram Bot token (get it from BotFather in Telegram)
- OpenAI API key (get it from your OpenAI dashboard)
- Google OAuth2 credentials (enable Google Calendar and Tasks in Google Cloud)
Skill level: Intermediate. You’ll connect OAuth credentials, add API keys, and confirm your webhook/SSL setup.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A Telegram message kicks it off. You type something like “Schedule a meeting tomorrow at 3 PM with [email protected]” or “Add a task to buy groceries,” and the Telegram trigger hands that message to the assistant.
The assistant interprets intent and context. The AI agent uses an OpenAI chat model plus session-based conversation memory, so follow-up messages like “make it weekly” still make sense without you repeating yourself.
Google Calendar and Google Tasks actions run through MCP tools. If it’s a calendar request, the workflow can check conflicts, create a single event, schedule a weekly recurring event, fetch details, list events, update, or delete. If it’s a task request, it can create, modify, complete, remove, list, and even reorder tasks via an HTTP request tool for positioning.
Telegram sends a clean confirmation (or an error notice). You get instant feedback in chat, which keeps the workflow usable even when permissions or inputs are off.
You can easily modify the assistant’s prompts to match your voice and change the routing rules to support more attendee counts or different time zones based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Telegram Trigger
This workflow begins when a new Telegram message arrives, then passes the message to the AI agent.
- Add and open Telegram Incoming Trigger.
- Set Updates to
message. - Confirm the execution flow: Telegram Incoming Trigger → Intelligent Task Assistant.
Step 2: Connect Telegram and Google Services
Connect Telegram for messaging and prepare Google services for tasks and calendar operations.
- Open Telegram Response Sender and select your Telegram credentials. Credential Required: Connect your telegramApi credentials.
- Open Telegram Error Notice and select your Telegram credentials. Credential Required: Connect your telegramApi credentials.
- For Google Calendar tools (6 nodes including Add Calendar Event (1 Guest), Add Calendar Event (2 Guests), Remove Calendar Event, Schedule Weekly Event, Fetch Calendar Event, List Calendar Events), add Google Calendar OAuth credentials.
- For Google Tasks tools (5 nodes including Generate Task Item, Retrieve Task List, Modify Task Details, Mark Task Completed, Remove Task Item), add Google Tasks OAuth credentials.
- Open Reorder Task Position and connect Google Tasks credentials because it uses nodeCredentialType
googleTasksOAuth2Api.
Step 3: Set Up the AI Agent and Memory
The AI agent interprets the Telegram message, calls MCP tools, and formats the response.
- Open OpenAI Chat Engine and set Model to
gpt-4o-mini. Credential Required: Connect your OpenAI credentials. - Open Intelligent Task Assistant and set Text to
{{ $json.message.text }}. - In Intelligent Task Assistant, keep the system message that enforces conflict checks, timezone handling, and command logic (includes
{{ $now.setZone('Asia/Dhaka') }}). - Open Conversation Memory and set Session Key to
{{ $('Telegram Incoming Trigger').item.json.message.chat.id }}with Session ID Type set tocustomKey. - Confirm Tasks MCP Client and Calendar MCP Client are connected as tools for Intelligent Task Assistant.
Step 4: Configure MCP Entry Points and Tool Actions
MCP entry points expose the calendar and task tools so the AI agent can call them.
- Open Calendar MCP Entry and confirm Path is
c627d58d-63f5-4876-babb-5c3b1243d7e9. - Open Tasks MCP Entry and confirm Path is
562ffc95-cf8e-4d4d-8f5b-29b3ff22d5ee. - Review Google Calendar tools to ensure AI expressions are intact, e.g., Add Calendar Event (1 Guest) uses Start
{{ $fromAI('Start', `Take the time from the user message`, 'string') }}and End{{ $fromAI('End', `Take the time from the user message`, 'string') }}. - Review Google Tasks tools to ensure AI expressions are intact, e.g., Generate Task Item uses Title
{{ $fromAI('Title', `Title summary of the task to be done`, 'string') }}and Retrieve Task List uses Return All{{ $fromAI('Return_All', ``, 'boolean') }}. - In Reorder Task Position, keep the URL set to
https://tasks.googleapis.com/tasks/v1/lists/{{ $fromAI('Task_List_ID', 'ID of the task list containing the task to move', 'string') }}/tasks/{{ $fromAI('Task_ID', 'ID of the task to move', 'string') }}/moveand the query parametersparentandpreviousfrom AI.
Step 5: Configure Output and Error Messaging
The AI agent sends its response to Telegram and optionally posts a fallback error notice.
- Open Telegram Response Sender and set Text to
{{ $json.output }}. - Set Chat ID in Telegram Response Sender to
{{ $('Telegram Incoming Trigger').item.json.message.chat.id }}. - Open Telegram Error Notice and set Text to
We are facing troubles in providing a response right now. Please try again later.. - Confirm the output flow: Intelligent Task Assistant → Telegram Response Sender, and the error output from Telegram Response Sender routes to Telegram Error Notice.
Step 6: Test and Activate Your Workflow
Run a live test to validate AI parsing, tool calls, and Telegram output before enabling production use.
- Click Execute Workflow and send a Telegram message to your bot (e.g., “Add a task to buy groceries” or “Schedule a meeting tomorrow at 3pm with [email protected]”).
- Confirm that Intelligent Task Assistant processes the text and triggers the appropriate MCP tools.
- Verify that Telegram Response Sender returns a formatted response in the same Telegram chat.
- If errors occur, check Telegram Error Notice for fallback messaging and validate credentials on all tools.
- Once successful, switch the workflow to Active to enable ongoing automation.
Watch Out For
- Google OAuth credentials can expire or need specific permissions. If things break, check the connected account and scopes in your n8n Credentials section first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
- Telegram webhooks need SSL on your n8n URL. If messages stop arriving, confirm your webhook URL is reachable and HTTPS-enabled.
Common Questions
Usually about an hour if your Google and Telegram accounts are ready.
Yes, but you will need someone comfortable connecting OAuth and pasting API keys. No coding, just careful setup.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs (often a few cents per day for personal usage).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
You can. Most changes happen in the Intelligent Task Assistant prompt (what the assistant should handle and how it should respond), plus the routing logic that decides which Google tool to call. Common customizations include using your own time zone instead of Bangladesh Standard Time, tightening conflict rules (like blocking “tentative” overlaps), and expanding attendee handling beyond the built-in one- or two-guest variants.
Usually it’s the bot token or webhook URL. Regenerate the Telegram bot token if needed, then confirm your n8n instance is reachable over HTTPS so Telegram can deliver messages. If it connects but replies don’t send, check the chat ID mapping and confirm the bot has permission to message that chat.
For most small teams, it’s effectively “as much as you can chat.” On n8n Cloud, your limit is tied to your plan’s monthly executions, and each Telegram request typically counts as one run. If you self-host, there’s no execution cap from n8n, but your server and Google API rate limits become the real ceiling. In practice, this setup handles day-to-day scheduling volume easily because each request is just a handful of API calls plus a short AI response.
Often, yes, because this flow relies on an AI agent, conversation memory, and tool-routing that gets expensive or awkward in simpler automation builders. n8n also gives you the option to self-host, which matters when usage grows and you don’t want per-task pricing surprises. Zapier or Make can still be fine if your version is “when I send a form, create one calendar event,” with zero chat involved. This workflow is closer to a real assistant, and that’s where n8n shines. If you want help picking the right platform for your Telegram calendar booking setup, Talk to an automation expert.
Once this is in place, scheduling stops feeling like a side quest that hijacks your day. Let the workflow handle the repetitive coordination so you can focus on the work the meeting was supposed to support.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.