← Back to projects

Automated Appointment Reminder System

Overview

Automatically sends SMS and email reminders 24 hours and 2 hours before each appointment, tracks client confirmations, handles cancellations and generates a daily no-show report — reducing them by an average of 80%.

reminder-appuntamenti.py · Wed 3 JunActive
Appointment Reminder System
Sends SMS/email reminders · tracks confirmations · reduces no-shows
1 confirmed1 reminders
Today's appointments
09:30
Marco B.
Hair color + cut
Confirmed ✓
11:00
Giulia R.
Full manicure
Reminder sent
14:00
Sara M.
Balayage
Pending
15:30
Luca T.
Men's cut
Pending
17:00
Elena F.
Highlights
Pending
Today's stats
Confirmed1
Reminders sent1
Awaiting reply0
Event log
Waiting...
Result:
Average no-show rate drops from 25% to under 5% with automated reminders

Details

The problem
No-shows are one of the most costly problems for hairdressers, beauticians, medical practices, physiotherapists and any professional with a booking calendar. A missed appointment means a direct revenue loss and an empty slot that can't be filled in time. Manually reminding every appointment is time-consuming and unreliable.
The solution
A Python script connected to Google Calendar (or a CSV appointments file) that automatically sends two reminders for each appointment: the first 24 hours before via email, the second 2 hours before via SMS with Twilio. The client can reply to the message to confirm or cancel. The script collects responses and updates the log on SQLite. At the end of the day, it sends the owner a summary with confirmed, cancelled and no-show counts.
How it works
1. Read appointments from Google Calendar / CSV 2. Calculate send windows (−24h and −2h) 3. Send email reminder 24h before (smtplib) 4. Send SMS reminder 2h before (Twilio) 5. Receive and parse client replies 6. Update appointment status (confirmed / cancelled) 7. Evening report to owner: confirmed, cancelled, no-shows
Typical results
Reduction of no-show rate from an average 20–25% to under 5%. Estimated recovery of 4–6 hours of lost work per month. Improved client satisfaction through proactive and professional communications.