May 18, 2026

Telegram booking bot: build a reservation system

Build a complete Telegram booking system with Google Sheets backend, AI scheduling, confirmation messages, and automated reminders — no app required.
Reading time :  
6
 min
Codewords
Codewords

Telegram booking bot: build a reservation system

Booking systems shouldn't require downloading another app. Telegram has 950 million monthly active users (Telegram, Q1 2025), and its Bot API is one of the most developer-friendly interfaces for building conversational services. A Telegram booking bot meets your customers where they already are — inside a chat app they open 20+ times daily.

The concept is straightforward: a customer messages your bot, states what they want to book (service, date, time), and the bot confirms availability, locks the slot, and sends reminders. No web forms. No account creation. No password resets. Just a conversation.

Unlike generic AI automation posts, this guide shows real CodeWords workflows — not just theory. You'll build a complete reservation system with Telegram as the interface, Google Sheets as the backend, and AI handling natural language scheduling.

Think of the Telegram booking bot as a receptionist who never sleeps, speaks every language your customers do, and never double-books.

APP: CodeWords — connect Telegram Bot API, Google Sheets, and LLMs into a booking workflow via native integrations.


TL;DR - Build a Telegram bot that accepts natural language booking requests, checks availability in Google Sheets, and confirms slots in under 10 seconds - Add AI for parsing ambiguous requests ("tomorrow afternoon," "next available slot") and handling rescheduling - Deploy reminders, waitlists, and cancellation handling without any additional infrastructure


Why use Telegram for booking instead of a web app?

Three reasons that matter for small businesses and service providers:

Zero friction for customers. No app download, no account creation, no form fields. Customer opens Telegram, searches your bot, types "Book haircut Saturday 3pm," done. Conversion rates for chat-based booking run 40–60% higher than web forms for local services (Tidio 2024 Conversational Commerce Report).

Global reach without localization. Telegram's user base skews heavily toward Europe, Central Asia, the Middle East, and Latin America — markets where WhatsApp dominates messaging but Telegram handles commerce. Your bot automatically works in any language if you pair it with an LLM for parsing.

Rich interaction without development overhead. Telegram's Bot API supports inline keyboards, callback queries, media messages, and payment integration — all through simple HTTP requests. No frontend framework needed.

The tradeoff: Telegram booking works best for appointment-based services (salons, clinics, consultants, tutors, fitness classes) with moderate volume (5–100 bookings per day). High-volume commerce (restaurants with 500+ reservations/night) benefits from purpose-built systems.

How does the booking bot architecture work?

Four components:

1. Telegram Bot (interface layer) - Receives messages via Telegram's webhook or polling API - Sends responses with inline keyboards for slot selection - Handles callback queries when users tap buttons

2. AI Parser (intent extraction) - Takes freeform text input: "I need a 1-hour consultation next Wednesday" - Extracts: service type, duration, preferred date/time, flexibility - Handles ambiguity: "soon" → next 3 available slots, "afternoon" → 12:00–17:00

3. Google Sheets (backend database) - Tab 1: Available slots (date, time, service, status, customer) - Tab 2: Bookings (confirmation ID, customer details, slot reference, status) - Tab 3: Config (services offered, durations, business hours, buffer times) - Acts as both the database and the admin interface (staff updates availability directly in Sheets)

4. Notification engine (reminders and updates) - 24-hour reminder before appointment - 1-hour reminder before appointment - Cancellation/rescheduling confirmation - Waitlist notifications when slots open

In CodeWords, the entire system runs as a webhook-triggered workflow. Telegram sends a webhook on each message, CodeWords processes it, and responds — all serverlessly. No server to maintain.

How do you set up the Telegram bot?

Step 1: Create the bot Message @BotFather on Telegram. Send /newbot, choose a name and username, receive your bot token.

Step 2: Set up the webhook Configure Telegram to send all messages to your CodeWords workflow endpoint. Each incoming message triggers the workflow.

Step 3: Define the conversation flow

The bot handles these commands/intents: - /book or "I want to book..." → Start booking flow - /cancel or "Cancel my appointment" → Cancellation flow - /reschedule or "Move my booking to..." → Rescheduling flow - /availability or "When are you free?" → Show available slots - /mybookings or "My appointments" → List upcoming bookings

Step 4: Connect Google Sheets Wire up your availability spreadsheet through CodeWords' Google Sheets integration. The workflow reads available slots and writes confirmed bookings.

Step 5: Add the AI parser Connect an LLM (GPT-4o or Claude) to parse natural language into structured booking requests. The LLM receives the user's message plus your service catalog and returns extracted intent.

The templates library has pre-built Telegram bot workflow patterns to accelerate setup.

What does the booking conversation look like?

A typical happy-path interaction:

Customer: Hi, I'd like to book a haircut for this Saturday

Bot: I have these slots available Saturday: 🕐 10:00 AM 🕐 11:30 AM 🕐 2:00 PM 🕐 4:30 PM Tap to select: [10:00] [11:30] [2:00] [4:30]

Customer: taps 2:00

Bot: ✅ Confirmed! Haircut on Saturday, May 24 at 2:00 PM. Confirmation #HCT-2847 📍 123 Main Street ⏱ Duration: 45 minutes

You'll receive a reminder 24 hours before. Reply /cancel to cancel or /reschedule to change.

Edge cases the bot handles:

  • No availability: "Sorry, Saturday is fully booked. Would you like to see Sunday or Monday slots?"
  • Ambiguous time: "You said 'afternoon' — I have slots at 1:00, 2:30, and 4:00. Which works?"
  • Past dates: "That date has already passed. Would you like to book for next week instead?"
  • Outside business hours: "We're open 9 AM – 6 PM. The closest available slot is 9:00 AM."

How do you manage availability and prevent double-booking?

The critical operation: when a user selects a slot, your workflow must atomically check availability AND mark it as booked. The race condition (two users selecting the same slot simultaneously) needs handling.

Solution in Google Sheets: 1. Read the slot's status 2. If "available," immediately write "pending" with a timestamp 3. Confirm to the user 4. Update status to "confirmed" with customer details

If step 1 returns "pending" or "confirmed," the slot is taken — offer alternatives.

For higher-volume businesses, consider upgrading from Sheets to Airtable or Redis, which handle concurrent writes more gracefully. The pricing tier for webhook-triggered workflows supports the throughput most appointment businesses need.

Staff-side management: Your team manages availability directly in Google Sheets. Add new slots, block off time, mark vacations — the bot reads current state on every request. No admin panel to build.

How do you add reminders and follow-ups?

Reminders reduce no-shows by 38% (GetApp 2024 appointment scheduling study). Build a scheduled CodeWords workflow that:

Runs every hour: 1. Query confirmed bookings for the next 24 hours 2. For bookings not yet reminded, send the 24-hour reminder via Telegram 3. Mark as "reminded" in the sheet

Reminder message:

🔔 Reminder: You have a haircut tomorrow at 2:00 PM. 📍 123 Main Street

[Confirm] [Reschedule] [Cancel]

Post-appointment follow-up (24 hours after):

How was your appointment? We'd love your feedback! [⭐ Rate 1-5]

This drives repeat booking and review generation. The entire notification system runs on CodeWords scheduled workflows — no cron server needed.


Frequently asked questions

Can the bot accept payments? Yes. Telegram's Bot API supports native payments (Stripe, various payment providers by region). You can require payment at booking time or send a payment request after confirmation. Integrate through CodeWords' workflow to validate payment before confirming the slot.

How do I handle multiple services with different durations? Store service definitions in your Config tab: name, duration, buffer time, and price. The AI parser matches the customer's request to the appropriate service, and the availability check respects the correct duration requirement.

Can multiple staff members share the bot? Absolutely. Add a "staff" column to your availability sheet. When a customer books, the bot can either auto-assign to the next available staff member or ask the customer for a preference. Each staff member manages their own rows in the availability sheet.

What about group bookings? Handle by treating group size as a parameter. If your service has capacity limits (fitness class: 12 spots), decrement available capacity rather than marking a slot as fully booked after one reservation.


The deeper opportunity in conversational commerce

A Telegram booking bot isn't just a scheduling tool — it's a relationship channel. Once a customer has messaged your bot, you have a direct communication line that bypasses email open rates (20%) and SMS costs ($0.01–0.05 per message). Telegram messages are free and have 80%+ open rates.

The reservation system is the wedge. Repeat booking reminders, loyalty rewards, flash availability notifications ("A slot just opened tomorrow at 3pm — want it?") — these are the features that turn a booking bot into a retention engine.

Start with basic booking and reminders. Build your Telegram reservation system in CodeWords this week and prove the model with your first 50 bookings before adding sophistication.

Contents
Ready to try CodeWords?
Get started free
Sign in
Sign in