Telegram to Google Calendar, schedule by chat
Scheduling shouldn’t feel like playing ping-pong across messages, notes, and a calendar tab you keep forgetting to refresh. But that’s exactly how double bookings happen. And why “quick changes” turn into a quiet hour of cleanup.
Consultants get hit when a client reschedules mid-call. Appointment-based teams feel it when three people are answering DMs. And if you run a small office, you already know how fast Telegram calendar automation pays for itself.
This n8n workflow lets you create, update, delete, and list Google Calendar events straight from Telegram chat. You’ll see how it works, what you need, and what kind of time it gives back.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Telegram to Google Calendar, schedule by chat
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:memory", form: "rounded", label: "Simple Memory", pos: "b", h: 48 }
n3@{ icon: "mdi:location-exit", form: "rounded", label: "Get Calendar Event", pos: "b", h: 48 }
n4@{ icon: "mdi:location-exit", form: "rounded", label: "Create Calendar Event", pos: "b", h: 48 }
n5@{ icon: "mdi:location-exit", form: "rounded", label: "Update Calendar Event", pos: "b", h: 48 }
n6@{ icon: "mdi:location-exit", form: "rounded", label: "Delete Calendar Event", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is start?", pos: "b", h: 48 }
n8["<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/>Welcome message"]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Variables TG", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Initialization", pos: "b", h: 48 }
n11["<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"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Define Type", 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/>Send Answer"]
n0 --> n13
n7 --> n8
n7 --> n12
n12 --> n0
n9 --> n10
n2 -.-> n0
n10 --> n7
n11 --> n9
n3 -.-> n0
n4 -.-> n0
n6 -.-> n0
n5 -.-> n0
n1 -.-> n0
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 n11 trigger
class n0 ai
class n1 aiModel
class n2 ai
class n7,n12 decision
classDef customIcon fill:none,stroke:none
class n8,n11,n13 customIcon
The Problem: Calendar Changes Get Lost in Chat
Clients don’t open your scheduling tool just to ask a small question. They message you. On Telegram. Then you’re scrolling up for dates, trying to interpret “next Friday after lunch,” switching to Google Calendar, and hoping you didn’t miss that earlier “actually make it 30 minutes later.” It’s not the one change that hurts. It’s the constant context switching, the tiny errors, and the slow confirmations that make you look less responsive than you really are.
The friction compounds. Here’s where it usually breaks down.
- Events get created with the wrong time zone or duration because you’re translating casual chat into calendar fields.
- Reschedules sit in the message thread, which means the calendar stays wrong until someone remembers.
- You spend about 10 minutes per appointment just confirming details and updating the invite.
- When multiple people answer Telegram messages, duplicate holds and “phantom” bookings show up fast.
The Solution: Telegram Chat Commands That Control Google Calendar
This workflow connects Telegram to Google Calendar so you can manage appointments from a chat conversation instead of bouncing between apps. A Telegram message comes in, the workflow captures the key details, and an AI agent can interpret natural language if you want that extra convenience. Then it routes the request (create, update, delete, or list) to the right Google Calendar action. Finally, it replies in Telegram with a clear confirmation so you can move on without second-guessing what happened.
The workflow starts with a Telegram trigger that listens for incoming messages. From there, it sets context (who sent it, what they asked), checks whether the user is just starting, and routes the message type through a switch. The AI orchestrator turns messy human input into structured calendar fields, and Google Calendar tools handle the real event changes. A final Telegram reply closes the loop.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you handle 20 appointments a week and about half of them involve a change. Manually, each create or reschedule is maybe 10 minutes between clarifying details, updating Google Calendar, and confirming back in Telegram. That’s roughly 5 hours of admin time weekly. With this workflow, you send one message in Telegram, wait a moment for processing, and you get a confirmation back. It turns that “calendar upkeep” block into something closer to a quick chat.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram for receiving and replying to messages
- Google Calendar to create and manage events
- Google Gemini or OpenAI for natural-language interpretation (optional)
Skill level: Intermediate. You’ll connect credentials, test message routing, and tweak prompts to match how people book with you.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A Telegram message triggers everything. When someone sends a message (or you do), the Telegram trigger captures it instantly. No forms required.
The workflow sets context and checks “start” logic. It assigns Telegram variables (like chat ID) and initializes a little bit of session context so replies go to the right place. If it’s a first-time interaction, it can send a welcome note before doing anything else.
An AI agent figures out what you meant. The AI orchestrator uses memory plus a chat model (Gemini in this workflow) to turn “Move Friday’s consult to 3pm and make it 45 minutes” into structured fields. Honestly, this is where the workflow stops feeling like “automation” and starts feeling like an assistant.
Google Calendar gets updated and Telegram gets a confirmation. Based on the routed intent, the workflow fetches, generates, modifies, removes, or lists events in Google Calendar. Then it dispatches a reply back in Telegram so you have a clean confirmation in the same thread.
You can easily modify the command style and the confirmation message to match your booking process. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Telegram Trigger
Set up the entry point that listens for incoming Telegram messages and starts the workflow execution flow.
- Add the Telegram Incoming Trigger node and keep its default settings.
- Connect Telegram Incoming Trigger to Assign Telegram Vars to pass incoming message data into the workflow.
- Credential Required: Connect your Telegram credentials in Telegram Incoming Trigger.
Step 2: Connect Telegram Message Handling
Configure the initial messaging actions, including the welcome flow and response delivery.
- In Welcome Telegram Note, set Execute Once to
trueif you want a one-time onboarding note when the start condition is met. - Ensure Dispatch Telegram Reply is connected to receive output from AI Orchestrator.
- Credential Required: Connect your Telegram credentials in both Welcome Telegram Note and Dispatch Telegram Reply.
Step 3: Set Up Message Context and Routing
Prepare context variables and route messages based on start flags and message types before invoking AI processing.
- Configure Assign Telegram Vars to extract key fields (e.g., chat ID, message text) from the incoming Telegram payload.
- Use Initialize Context to add default values or session state needed for AI decisions.
- Connect Initialize Context to Check Start Flag to determine whether to send a welcome message or proceed to routing.
- From Check Start Flag, send the “true” path to Welcome Telegram Note and the alternate path to Route Message Type.
- In Route Message Type, route qualifying messages to AI Orchestrator for natural language processing.
Step 4: Set Up AI Orchestration and Calendar Tools
Configure the AI layer to interpret the Telegram message and interact with Google Calendar tools.
- Open AI Orchestrator and verify it is connected to Gemini Chat Engine as the language model.
- Attach Buffer Memory Store to AI Orchestrator via the AI memory connection for conversational context.
- Connect the Google Calendar tools Fetch Calendar Entry, Generate Calendar Entry, Modify Calendar Entry, and Remove Calendar Entry as AI tools to AI Orchestrator.
- Credential Required: Connect your Google Gemini credentials for Gemini Chat Engine. This model is used by AI Orchestrator, so credentials should be set through the AI Orchestrator’s language model connection.
- Credential Required: Connect your Google Calendar credentials for the calendar tools. These tools are attached to AI Orchestrator, so configure their credentials via the AI tools panel in AI Orchestrator.
Step 5: Configure Output Delivery
Ensure the AI response is delivered back to Telegram as the final action in the workflow.
- Confirm the connection AI Orchestrator → Dispatch Telegram Reply is in place.
- In Dispatch Telegram Reply, map the output text from AI Orchestrator to the Telegram message field (use the node’s input data).
- Credential Required: Connect your Telegram credentials in Dispatch Telegram Reply if not already configured.
Step 6: Test and Activate Your Workflow
Run a manual test to validate message handling, AI responses, and calendar actions before enabling production use.
- Click Execute Workflow and send a test Telegram message to your bot.
- Confirm a successful run: Telegram Incoming Trigger fires, AI Orchestrator produces a response, and Dispatch Telegram Reply sends the message.
- Test a calendar command (e.g., “create event tomorrow at 3pm”) and verify the event is created in Google Calendar.
- Once validated, toggle the workflow to Active for production use.
Common Gotchas
- Telegram credentials can expire or the bot can lose permissions. If replies stop showing up, check your Telegram bot token and webhook/updates configuration 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.
Frequently Asked Questions
About 30 minutes if your Telegram bot and Google account are ready.
No. You’ll mostly connect accounts and adjust a few message rules. The hardest part is choosing how “free-form” you want the chat commands to be.
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 AI model usage if you enable it (often a few dollars a month at small volumes).
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.
Yes, but you’ll want to be intentional about it. You can route messages to different Google Calendar tools based on the Telegram chat, a keyword (like “book with Sam”), or a simple lookup table in Google Sheets. Most teams customize the AI agent prompt so it asks one clarifying question when the calendar choice is ambiguous. If you prefer structured commands instead, you can skip AI and require a calendar name in the message.
Usually it’s the bot token or permissions. Regenerate the Telegram bot token if needed, then update it in n8n and confirm the workflow is listening to the right chat. Also check that your Telegram trigger is receiving updates (messages arriving) and that your reply node is pointing to the same chat ID captured earlier. If failures happen only during busy periods, you may be hitting rate limits and need to reduce how many replies you send per message.
A lot. On n8n Cloud Starter you’ll be constrained by monthly executions, while self-hosting is mostly limited by your server and how heavy your AI steps are. In real usage, teams comfortably handle dozens of chat-driven scheduling actions per day without thinking about it.
For chat-based scheduling, n8n is usually the better fit because it handles branching logic cleanly and can keep lightweight memory/context without awkward workarounds. It’s also easier to self-host, which matters when you don’t want every “list my events” request counted as a pricey task. Zapier or Make can still work if you only need very simple commands and don’t care about natural language. The moment you want “update the one we booked yesterday” to work reliably, you’ll appreciate n8n’s control. If you want help choosing, Talk to an automation expert.
Once scheduling lives where the conversation already is, everything speeds up. Set it up once, and let chat handle the busywork while your calendar stays accurate.
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.