🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Telegram + Google Calendar: book meetings in chat

Lisa Granqvist Partner Workflow Automation Expert

Booking meetings shouldn’t feel like playing calendar Tetris in three different apps. But the back-and-forth, the “does 2pm work?”, the double-checking contacts, and the inevitable reschedule turns a simple request into a small project.

Marketing managers get pulled into this when leads want “a quick call.” Agency owners juggle it across clients. And ops folks end up as the human router. This Telegram calendar booking automation turns a chat message into a confirmed Google Calendar event, without you babysitting the process.

You’ll see what the workflow does, what it saves you, and how to set it up in a way that feels professional to the person booking time with you.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Telegram + Google Calendar: book meetings in chat

Why This Matters: Scheduling Is a Hidden Time Drain

Meeting requests arrive at the worst moments. You’re in the middle of work, a Telegram message comes in, and now you’re switching context to check the calendar, confirm business hours, look up an email address, and propose times that won’t collide with internal calls. Then there’s the follow-up. If the contact details are wrong, you get bounce-backs or awkward “who is invited?” replies. And when two people ask for similar slots on the same day, double booking becomes a real risk. Honestly, it’s not hard work. It’s constant work.

The friction compounds. Here’s where it usually breaks down.

  • Each meeting request pulls you into 10 minutes of admin before the meeting even exists.
  • Contact info lives in a sheet, a CRM, or someone’s memory, so invites go out late or with missing guests.
  • Availability checks happen “in your head,” which is how two calls end up stacked on top of each other.
  • Confirmations are inconsistent, so your business looks sloppy even when your work isn’t.

What You’ll Build: Meeting Scheduling Through Telegram

This workflow creates an AI scheduling assistant that works inside Telegram and does the “real work” of booking meetings. A user sends a natural message like “Schedule a meeting with Jamie tomorrow afternoon.” n8n captures the chat, maps the key fields (message text, chat ID, user details), and loads your contact list from Google Sheets. Then an AI Agent (powered by an OpenAI chat model) decides what to do next: it can look up the right person in your sheet, check Google Calendar availability within your business hours (9 AM to 4 PM by default), and propose a few open time slots. Once the user confirms a slot in chat, the workflow creates the Google Calendar event and sends a clean confirmation email through Gmail with the invite included.

The workflow starts in Telegram, then pulls contact data from Google Sheets. After that, Google Calendar is used to find open times and create the event. Finally, Gmail sends the confirmation so you don’t have to copy-paste details or chase people.

What You’re Building

Expected Results

Say you book 10 meetings a week. Manually, it’s usually about 10 minutes to check availability, find the right email in a sheet, create the calendar event, and send a proper confirmation, which is roughly 100 minutes weekly. With this workflow, you spend maybe 1 minute sending or approving the final “yes, book it” message in Telegram, then wait while it checks the calendar and sends the email. That’s around 1.5 hours back most weeks, plus fewer “oops, wrong person invited” moments.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram for the chat-based scheduling interface.
  • Google Sheets to store contacts (Name, Email, Phone).
  • OpenAI API key (get it from your OpenAI dashboard under API keys).

Skill level: Beginner. You’ll connect accounts, paste IDs for your Sheet/Calendar, and tweak a prompt.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A Telegram message triggers everything. Someone sends your bot a meeting request in plain English. n8n grabs the chat ID and message content so replies stay in the same conversation.

Contact data is pulled from Google Sheets. Your sheet acts like a lightweight CRM, so the workflow can match “Meet with Alex” to the correct email address and avoid manual lookup.

The AI Agent coordinates scheduling decisions. It chooses the right tool calls, checks Google Calendar availability inside your business hours, and proposes three realistic time slots instead of guessing.

Booking and confirmation happen automatically. After the user confirms a time in Telegram, n8n creates the Google Calendar event and Gmail sends a professional confirmation email with the invite.

You can easily modify business hours or the number of proposed time slots 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 starts when a Telegram message is received, then maps incoming text and user details for scheduling.

  1. Add the Telegram Message Trigger node and set Updates to message.
  2. Credential Required: Connect your Telegram credentials in Telegram Message Trigger.
  3. Connect Telegram Message Trigger to Map Incoming Fields.

Step 2: Connect Google Sheets for CRM Data

Incoming messages are normalized and enriched with CRM contacts from Google Sheets.

  1. In Map Incoming Fields, create three fields: user_message = {{ $json.message.text }}, chat_id = {{ $json.message.chat.id }}, and user_name = {{ $json.message.from.first_name }}.
  2. Configure Retrieve CRM Sheet with Sheet Name set to CRM and Document ID set to YOUR_GOOGLE_SHEET_ID.
  3. Set Authentication to serviceAccount in Retrieve CRM Sheet.
  4. Credential Required: Connect your Google Sheets credentials in Retrieve CRM Sheet.
  5. Connect Map Incoming FieldsRetrieve CRM SheetScheduling AI Agent.

⚠️ Common Pitfall: If your CRM sheet columns are not named Name and Email, update the mapping in the AI prompt inside Scheduling AI Agent.

Step 3: Set Up the Scheduling AI Agent

The agent analyzes the user request, checks availability, and decides whether to propose slots or create an event.

  1. In Scheduling AI Agent, set Text to =Current date: {{ $now.setZone('Europe/Warsaw').toFormat('yyyy-MM-dd') }} User message: {{ $('Map Incoming Fields').item.json.user_message }} CRM contacts: {{ JSON.stringify($('Retrieve CRM Sheet').all().map(item => ({name: item.json.Name, email: item.json.Email}))) }}.
  2. Keep Prompt Type as define and enable Has Output Parser.
  3. Attach OpenAI Chat Model as the language model with Model set to gpt-4o-mini.
  4. Credential Required: Connect your OpenAI credentials in OpenAI Chat Model (this supplies the language model for Scheduling AI Agent).
  5. Connect Calendar Availability Tool and CRM Lookup Tool as tools for Scheduling AI Agent.
  6. Credential Required: Connect your Google Calendar credentials in Scheduling AI Agent (used by Calendar Availability Tool).
  7. Credential Required: Connect your Google Sheets credentials in Scheduling AI Agent (used by CRM Lookup Tool).

AI tool sub-nodes like Calendar Availability Tool and CRM Lookup Tool inherit credentials from the parent Scheduling AI Agent, so set credentials there.

Step 4: Configure Messaging and Conditional Routing

The agent’s response is sent back to Telegram and routed for event creation when confirmed.

  1. In Post Telegram Reply, set Text to {{ $json.output.message || $json.message }} and Chat ID to {{ $('Map Incoming Fields').item.json.chat_id }}.
  2. Credential Required: Connect your Telegram credentials in Post Telegram Reply.
  3. In Branch on Event Creation, set the condition to check Left Value {{ $json.output.action }} equals create_event.
  4. Scheduling AI Agent outputs to both Post Telegram Reply and Branch on Event Creation in parallel.

Step 5: Configure Calendar Event Creation and Email Confirmation

When the agent signals event creation, the workflow creates a calendar event and emails the attendee.

  1. In Add Calendar Meeting, set Start to {{ $json.output.meeting_date }}T{{ $json.output.meeting_time }}:00 and End to {{ $json.output.meeting_date }}T{{ String(parseInt($json.output.meeting_time.split(':')[0]) + 1).padStart(2, '0') }}:00:00.
  2. Set Calendar to YOUR_CALENDAR_ID and Summary to Meeting: {{ $('Map Incoming Fields').item.json.user_name }} & {{ $json.output.contact_name }}.
  3. Set Attendees to {{ $json.output.contact_email }}.
  4. Credential Required: Connect your Google Calendar credentials in Add Calendar Meeting.
  5. In Dispatch Confirmation Email, set Send To to {{ $('Scheduling AI Agent').item.json.output.contact_email }}, Subject to Meeting Scheduled: {{ $('Scheduling AI Agent').item.json.output.meeting_date }} {{ $('Scheduling AI Agent').item.json.output.meeting_time }}, and keep the HTML Message content as provided.
  6. Credential Required: Connect your Gmail credentials in Dispatch Confirmation Email.
  7. Connect Branch on Event CreationAdd Calendar MeetingDispatch Confirmation Email.

Step 6: Test and Activate Your Workflow

Validate the end-to-end scheduling experience before turning the workflow on.

  1. Use Execute Workflow and send a Telegram message to the bot to trigger Telegram Message Trigger.
  2. Confirm that Post Telegram Reply responds with proposed time slots or a confirmation message.
  3. If the action is create_event, verify that Add Calendar Meeting creates the event and Dispatch Confirmation Email sends an email with the calendar link.
  4. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Calendar credentials can expire or need specific permissions. If things break, check the connected account and OAuth scopes in n8n’s Credentials 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.

Quick Answers

What’s the setup time for this Telegram calendar booking automation?

About 30 minutes if your Google accounts and bot token are ready.

Is coding required for this Telegram calendar booking?

No. You’ll mainly connect accounts and paste your Sheet ID and Calendar ID into the right nodes.

Is n8n free to use for this Telegram calendar booking workflow?

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, which are roughly $0.001 per conversation with GPT-4o-mini.

Where can I host n8n to run this automation?

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.

Can I modify this Telegram calendar booking workflow for different use cases?

Yes, and it’s the best part. You can change the AI Agent instructions (the system prompt) to enforce your timezone, meeting length, buffers, and even how “formal” messages sound. If you want to use a different contact source, swap the Google Sheets CRM Lookup Tool for another database connector and keep the rest the same. Common tweaks include changing business hours, offering 2 slots instead of 3, and requiring a human approval message before the calendar event is created.

Why is my Telegram connection failing in this workflow?

Usually it’s the bot token. Confirm the token from BotFather is correct, then check that the n8n Telegram credentials are using that exact value. If the workflow triggers but replies don’t send, it can be a chat ID mismatch (the Set node maps this) or the bot not being allowed to message the user until they start the chat. Rate limits are rare at small volumes, but group chats can behave differently than direct messages.

What volume can this Telegram calendar booking workflow process?

On n8n Cloud Starter you can run a healthy number of executions each month for a small team, and higher tiers cover more. If you self-host, there’s no execution cap from n8n (it depends on your server). In practice, booking requests are “bursty,” so the bigger constraint is usually Google API quotas and how many parallel conversations you handle at once. For most small businesses, it’s plenty.

Is this Telegram calendar booking automation better than using Zapier or Make?

Often, yes. This flow relies on an AI Agent making multi-step decisions, which is easier to manage in n8n because you can branch, merge, and call tools without turning it into a fragile maze of zaps. You also get self-hosting, which matters if you expect higher volume or want tighter control over data. Zapier or Make can still work if your version is very simple, like “create event from a form,” but the conversational back-and-forth is where n8n shines. Talk to an automation expert if you want help picking the right platform.

Once this is live, scheduling becomes a quick chat instead of a mini admin task. The workflow handles the repetitive parts so you can stay focused on work that actually moves the business.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal