Automate Client Reminders for Your Small Business (No Code Required)
Sending appointment reminders manually takes time and gets forgotten. Here's how to automate them using n8n, Google Sheets, and Telegram or email.
If you run a beauty salon, fitness studio, tutoring service, or any appointment-based business, you know the pain:
- You forget to send a reminder, and the client forgets to show up
- You spend 20 minutes every evening texting reminders manually
- You use three different tools and none of them talk to each other
The good news: this is one of the easiest things to automate. You don’t need expensive CRM software. You need a spreadsheet and a free automation tool.
The result: what you’ll have after this setup
- Automatic Telegram or email reminder 24 hours before each appointment
- Optional second reminder 1 hour before
- A simple Google Sheet as your “CRM”
- Zero manual work after setup
What you need
- Google Sheets — to track appointments (you might already have this)
- n8n — the automation engine (free, open-source)
- Telegram or an email address — to send reminders to clients
No coding knowledge required. This guide uses n8n’s visual interface.
Step 1: Set up your appointment sheet
Create a Google Sheet with these columns:
| Client Name | Phone / Chat ID | Service | Date | Time | Status |
|---|---|---|---|---|---|
| Maria S. | @maria_tg | Haircut | 2026-03-15 | 14:00 | confirmed |
| John D. | [email protected] | Massage | 2026-03-16 | 10:00 | confirmed |
Important columns:
- Phone / Chat ID — Telegram username or email address
- Date + Time — combined, this tells n8n when to send the reminder
- Status — only send reminders for “confirmed” appointments
Step 2: The automation workflow
The workflow runs every hour and checks: “Are there any appointments in the next 24 hours?”
Hourly trigger → Read Google Sheet → Filter (24h ahead) → Send Telegram / Email
Here’s the detailed flow:
Node 1 — Schedule Trigger
Run every hour (or every 30 minutes for higher reliability).
Node 2 — Google Sheets (Read)
Read all rows with Status = “confirmed”.
Node 3 — Filter (DateTime check)
Using an IF node: check if the appointment datetime is between 23 and 25 hours from now.
const appointmentTime = new Date($json.Date + 'T' + $json.Time);
const now = new Date();
const hoursUntil = (appointmentTime - now) / (1000 * 60 * 60);
return hoursUntil >= 23 && hoursUntil <= 25;
Node 4 — Telegram (or Email)
Send the reminder:
Hi {{ $json['Client Name'] }}! 👋
This is a reminder for your {{ $json.Service }} appointment tomorrow at {{ $json.Time }}.
📍 Address: [Your address here]
If you need to reschedule, reply to this message.
Node 5 — Update Sheet
After sending, update the Status to “reminded” so the reminder isn’t sent twice.
Step 3: Handle the “channel” question
You have two options depending on how your clients communicate with you:
Option A: Telegram
- Ask clients for their Telegram username when booking
- You’ll need to use Telegram’s Bot API (free)
- Reminders feel personal and arrive instantly
Option B: Email
- Works with any email address
- n8n has a built-in Email (SMTP) node
- More formal, may end up in spam for some clients
Option C: WhatsApp (advanced)
- Requires WhatsApp Business API or a third-party service like Twilio
- More complex to set up but has the highest open rates
For most small businesses, Telegram is the easiest and most reliable option.
The “CRM” that lives in your spreadsheet
This setup essentially turns Google Sheets into a minimal CRM:
- Add a new row = add a new appointment
- Change status to “cancelled” = no reminder sent
- Add a “Notes” column for anything extra
- Filter by date to see tomorrow’s schedule at a glance
It’s not Salesforce. But for a salon or a freelance tutor, it’s exactly what you need.
Real-world numbers
A beautician who implemented this setup reported:
- Reduced no-shows from ~20% to ~5%
- Saved 30–45 minutes per day on manual reminders
- Clients appreciated the professional touch
For a solo business owner, that’s a meaningful improvement in both revenue and sanity.
Extensions you can add later
Once the basics are running, extend it:
- Booking confirmation — send a message when you add a new row (Status = “confirmed”)
- Post-appointment follow-up — send a “How was your visit?” message 1 day after
- Review request — ask for a Google review 2 days after the appointment
- Birthday message — add a birthdate column and send a discount on their birthday
Each of these is an additional workflow that follows the same pattern.
Want us to build this for you?
Setting up this workflow (including connecting Google Sheets, creating the Telegram bot, and configuring all the filters) takes about 3–4 hours. If you’d rather focus on your clients and have this working by tomorrow, we can set it up for you.
Price: from $200 — complete setup for Telegram or email, with a guide and 2 weeks of support.
Common questions
Do your clients need to install anything? No. If you use email, they just receive an email. If you use Telegram, they need a Telegram account (which most people already have).
What if a client cancels? Just change the Status in the sheet to “cancelled”. The workflow won’t send a reminder.
Can you use this for multiple staff members? Yes — add a “Staff” column and create a separate sheet tab (or filter) per person.
Is this really free? n8n is open-source and free to self-host. Google Sheets is free. Telegram bots are free. The only cost might be a small server to host n8n (~$5/month on a basic VPS), or you can use n8n.cloud’s free trial.
This is part of our automation examples series. Browse more use cases in the blog or order a custom automation.