Documentation ›CRM: leads, tasks, calendar
Appointment reminders
What it does.
For every booked appointment it automatically sends the customer a reminder twice — in WhatsApp, or in Telegram when that is where the customer wrote from:
- T-24h: "Reminder: you have an appointment tomorrow at HH:MM."
- T-2h: "Heads-up: your appointment is in 2 hours, at HH:MM."
Fewer people forget their visit.
WhatsApp's 24-hour rule. WhatsApp delivers a plain reminder only to a customer who wrote to you in the last 24 hours. A customer who booked by phone, or several days ahead, gets it only through a WhatsApp message template approved for your account — write to support to have one attached before you rely on the T-24h reminder.
Default: OFF.
Turn on in Settings → Appointment reminders to customer. Until then, no messages are sent — booking still works, just without reminders.
Requirements before enabling:
- WhatsApp Business is configured (the same setup you already use for incoming chats)
- Customers have a phone the AI captured during booking (it does — book_appointment fills it from caller_id/Meta user_id)
Template customization.
Built-in defaults are tone-neutral and work for most businesses. To customize, fill the two textareas in Settings. Placeholders:
{time}— local HH:MM in your timezone{service}— the service field from the appointment (empty if not set){practitioner}— the practitioner's name
Example: "Tomorrow at {time} we're expecting you for {service}. See you!"
Leave the field empty to use the built-in default in the language chosen as «Notification language (operator team)» in Settings (RU or EN).
How it works under the hood.
- A background scheduler ticks every 5 minutes and looks for appointments with starts_at in the next 24h ± 10min OR next 2h ± 10min that haven't been reminded yet.
- Each reminder fires once per appointment per slot (the row remembers when it sent). Re-running the scheduler is a safe no-op.
- Cancelled and no-show appointments do NOT get reminders.
- If a send fails for a passing reason, it is tried again while the reminder is still due; a send WhatsApp refuses outright (for example, outside the 24-hour rule) is not repeated.
Pitfalls.
- Reminders fire only for active appointments. Operator cancellation in /calendar/ stops further reminders immediately.
- Time zone matters. {time} is rendered in your Settings timezone. If you change the timezone after appointments are booked, future reminders show the new zone.
- Customer changes contact. Reminders go to the phone stored on the contact at send time. Update the contact's phone if it changed.
iCal subscribe URL — read-only feed of appointments.
Generates a public URL that Apple Calendar / Google Calendar / Outlook / Fantastical poll once per hour and display alongside personal events. Read-only: nobody can edit appointments via the feed; the dashboard remains the source of truth.
How to set up:
- Go to Settings → iCal subscribe URL and press Generate subscribe URL.
- Copy the URL shown. It looks like
https://your-domain/api/v1/calendar/feed/<token>.ics. - In Google Calendar: Other calendars → + → From URL → paste. In Apple Calendar: File → New Calendar Subscription. In Outlook: Add calendar → Subscribe from web.
Security note. The token is the auth — anyone with the URL reads all upcoming appointments for your account. If it leaks (forwarded email, screenshot in Slack), press Rotate token in Settings. The old URL stops working immediately; everyone subscribed via it must re-subscribe with the new URL.
The feed includes ~14 days of past appointments and ~365 days forward, with practitioner name + service + customer label + status. Cancelled appointments stay in the feed marked CANCELLED so the calendar app can clear them.