Bookings & scheduling
Take appointments without the back-and-forth
A team calendar, a public page customers book themselves, and confirmations and reminders that go out on their own.
- Day, week, month & agenda views
- A public page customers book themselves
- Double-booking prevented by the database, not by code
- Confirmations and reminders that send themselves
Four views, one calendar
Day, week, month and agenda, all fed by a single data load. The view, the date and the member filter live in the URL, so a given week is a link you can send someone and the back button behaves the way they expect. It updates in realtime — an appointment taken at another desk, by the AI assistant, or on the public page appears without a refresh. Every time on screen is rendered in the account's timezone, not the viewer's, so a colleague travelling doesn't see a different diary.
Let customers book themselves
Turn on a public booking link and a customer picks a service, a team member and a slot, then leaves their name and number. The booking creates or matches their contact and lands in the same calendar as everything else, tagged as customer-booked so you always know where it came from.
- Set the minimum notice and how far ahead people may book
- Custom page heading, and link rotation when you need a clean slate
- An unknown or disabled link returns a plain 404 — it never confirms an account exists
The slot you see is the slot that's free
Availability is derived, never stored: weekly working hours, minus one-off time off, minus existing bookings each extended by its type's trailing buffer, sliced into slots. One engine serves the staff slot picker, the public page and the AI's slot-finding tool, so staff and the assistant can never disagree about what's free. And double-booking is prevented by a database constraint rather than by application code — a clash surfaces as 'that time has just been taken' on every path, not as an error page.
Four messages that send themselves
Booking confirmed, a reminder before the start, booking cancelled, and a follow-up after the appointment is marked complete. Each rule carries an offset, a target channel, and a free-text body and/or an approved WhatsApp template — and you can add the reminder rule more than once for, say, 24 hours and 2 hours before. Messages go out on the contact's existing conversation, on whichever channel they already use.
- Variables for the contact, your business, the date, time, assignee, type and location
- An unknown variable collapses to nothing rather than printing a placeholder at a customer
- Rescheduling replaces the pending reminders instead of queueing a second set
Unless your industry module owns the diary
This is core's general-purpose scheduling. On an account running an industry module — an aesthetics clinic, for instance — that module owns scheduling instead, with its own diary shaped around the vertical, and this one stands down entirely.
Explore more
Works well with
Contacts & CRM
One clean record per customer
Tags, custom fields, notes and CSV import with automatic phone-number deduplication — so every customer is one record, not five.
Learn moreReviews & reputation
More public reviews. Unhappy feedback stays private.
Tokenized review requests, a star gate that routes happy customers to Google and friends, and a private queue for everyone else.
Learn moreAI copilot & assistant
Assistive today, autonomous when you're ready
Draft replies, summarise threads, and — when you're ready — let a configurable AI Assistant handle conversations with guardrails.
Learn moreReady to answer every customer in one place?
Bring WhatsApp, Messenger and Instagram together with AI that actually helps. Talk to us and we'll get you set up.