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:

  1. Go to Settings → iCal subscribe URL and press Generate subscribe URL.
  2. Copy the URL shown. It looks like https://your-domain/api/v1/calendar/feed/<token>.ics.
  3. 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.