Client Calendars
Give every white-label client their own calendar, so bookings land in the right place.
Why this exists
Without this, every agent you run books into ONE calendar — yours. That's fine with a single business, but an agency with ten clients would have ten businesses' appointments in one place.
With client calendars on, each client connects their own Google or Outlook calendar and their agent books straight into it. You never see their appointments, and they never see each other's.
Turning it on for a client
- Dashboard → White Labeling → Client Portals → open the client.
- In Settings, tick "This client has their own calendar".
- Choose which providers they may connect (Google Calendar, Outlook, or both).
- Decide what happens before they've connected anything — see Fallback below.
- Save.
Who connects the calendar
Two ways, both ending in the same place:
- The client does it — a Calendar tab appears in their portal once you enable it. They click Connect, sign in to Google/Outlook, done.
- You do it for them — "Connect for them" in the client's panel. Useful during onboarding or for non-technical clients.
A client only ever sees their own connection. They can't see or reach another client's, or yours.
Fallback: what happens when a booking can't be made
The agent tries, in order, and stops at the first one that works:
- The client's own calendar. If it errors, it retries once — a brief network blip shouldn't cost you an appointment. If the client connected both Google and Outlook, it tries the other one too.
- Your calendar — but ONLY if the client hasn't connected anything yet, and only if you left "book into your own calendar" on. Once a client HAS a calendar, a failure never spills into yours.
- Email. If no calendar took the booking, the details are emailed to the client's notification address (or to you if they haven't set one) so the appointment is captured instead of lost.
- If even the email can't be sent, the agent tells the caller honestly that it couldn't confirm, takes their details, and says someone will call back.
Why a client's failure never uses your calendar
Once a client has connected a calendar, a failure stops there. It does not fall back to yours.
That's deliberate: writing a client's customer appointment into your own calendar would leak one client's customer data to you, and the appointment would sit somewhere nobody is looking. Capturing it by email and telling the caller the truth is both safer and more useful.
What to put in your agent's prompt
You don't need to mention calendars, providers, or clients in the prompt. The agent is given a booking tool, and the tool decides which calendar to use based on which client the agent is linked to. Prompting it to "book into Joe's calendar" does nothing — the routing isn't prompt-driven.
Do tell it when to book
Prompt the conversation, not the plumbing — when an appointment is appropriate, what to collect first, and how long a slot is. For example:
When the caller wants to schedule a visit, collect their name, the service they need, and a preferred day and time before booking. Confirm the time back to them in their own words before you create the booking.
Do NOT promise a confirmation before booking
Avoid prompts like "tell the customer their appointment is confirmed, then book it". If the booking then fails, the agent has already lied. Book first, then confirm what actually happened.
Let the tool's own result drive what it says
When a booking doesn't go through, the tool returns an explicit instruction for what to say next — for example, that the request was emailed to the team and someone will call back to confirm. The agent follows that. You don't need to write fallback wording into your prompt, and you shouldn't override it with something more optimistic.
Who the fallback email comes from
It goes out from the platform address by default, and the client doesn't need to set anything up. That's deliberate: this email is an internal notice addressed to the client themselves, so the sending domain doesn't affect anyone's trust in it.
If you'd rather it came from your own domain, connect your Resend account under Integrations → Resend (Email) — one API key and a from address on a domain verified at resend.com/domains. It applies to every client you serve.
Troubleshooting
| What you see | Likely cause |
|---|---|
| No Calendar tab in the client's portal | "This client has their own calendar" isn't ticked, or the portal page needs a reload. |
| Bookings land in your calendar, not the client's | The agent isn't linked to that client, or the client hasn't connected a calendar and fallback is on. |
| Agent says it couldn't confirm the appointment | The connected calendar errored twice. Check the connection is still valid — a revoked Google/Microsoft grant looks like this. |
| Client connected a calendar but sees "Not connected" | The consent screen was cancelled, or the connection was made on a different provider than the one shown. |
| Fallback emails aren't arriving | No recipient is set — add a notification email on the client, or make sure your workspace has a user. Check spam if sending from the platform default address. |
| Fallback email arrives from the wrong address | Connect your own Resend under Integrations, or check its from-address domain is verified at resend.com/domains. |