Introduction
A beauty salon owner in Nantes reached out to me. Problem: clients often can't get through by phone, appointments are tracked in a paper journal and the administrator's memory, frequent double-bookings and missed visits. Budget — limited, timeline — yesterday.
In this article, I'll walk through how I created a working booking chatbot integrated with a calendar and reminder system in just 2 days.
Step 1: Task Analysis and Tool Selection
First, I understood the salon's workflow:
-
Working hours: Tue-Sat, 10:00-20:00
-
Services: haircut, coloring, styling (different durations)
-
Stylists: 2
-
Booking: by phone or in person
Telegram Bot API was the perfect fit — fast, free, no app installation required for clients.
Step 2: Solution Architecture
The bot needed to handle several tasks:
-
Show available times based on stylist availability
-
Book the client for their selected time
-
Send confirmation to the client
-
Send notification to the administrator
-
Send appointment reminders 24 hours in advance
Step 3: Technical Implementation
For the database, I used a simple Google Sheet — the client wanted to see appointments without logging into an admin panel.
Sheet structure:
-
Date and time
-
Client name
-
Service
-
Stylist
-
Status (confirmed/canceled)
The bot was built with Python using the python-telegram-bot library. Basic logic:
# Simplified example
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, "Hi! I'm the salon booking bot. Please select a service:")
show_services(message.chat.id)
@bot.callback_query_handler(func=lambda call: call.data.startswith('service_'))
def service_selected(call):
service_id = call.data.replace('service_', '')
show_masters(call.message.chat.id, service_id)
Step 4: Calendar Integration
The most critical part — ensuring the bot sees real schedules. I used Google Calendar API:
-
Each stylist has their own calendar
-
The bot checks available slots in real-time
-
When booked, an event is created in the calendar
-
The client receives a calendar invitation
Step 5: Reminder System
A separate script runs every hour, checks tomorrow's appointments, and sends Telegram reminders. If a client doesn't respond within 2 hours, the bot notifies the administrator to follow up with a call.
Results After Launch
Three months in. Numbers:
-
85% of bookings now come through the bot (phone is only used for complex questions)
-
Zero scheduling conflicts
-
30% reduction in no-shows (thanks to reminders)
-
Administrator saves 15 hours per week
Technical Details for Developers
If you want to replicate something similar, here's the full stack:
-
Python 3.11 + python-telegram-bot
-
Google Sheets API (for simple logging)
-
Google Calendar API (for scheduling)
-
Cron jobs on the server (for reminders)
-
Hosting: any VPS for €5/month
Challenges I Encountered
-
Timezones — French clients might be traveling; the bot needs to account for their timezone
-
Cancellations — had to add a "cancel" button and logic to free up slots
-
Concurrent booking conflicts — solved with sheet-level locking
Conclusion
A business chatbot isn't rocket science — it's an accessible tool you can build in a couple of days. The key is understanding the business logic and choosing the right tools.