Appointment booking
Connect your Cal.com calendar so your agent offers real times and books during the call, without making up dates or touching someone else’s appointment.
Your agent can book appointments while talking: it checks your real availability, offers two or three options, confirms with the person and leaves the appointment created in your calendar. All of that comes from one thing you set up once: the connection to your Cal.com calendar.
We work with Cal.com because it is the only scheduler that truly exposes your free times and your appointment types. If you use Google Calendar, Outlook or Apple, connect them inside Cal.com first and you will see everything together from here.
Before you start
This guide takes you from zero to booking: first you get Cal.com properly set up (account, calendar, schedule and event types — steps 1 to 4), then you connect it to Enlassa AI (steps 5 to 7). If Cal.com is already running, jump to step 5. The only prerequisite: in Enlassa AI, an administrator role (connecting an external service stays in the hands of whoever manages the account).
Step 1 — Create your Cal.com account
- Sign up at cal.com
The free plan covers everything your agent does. Use the business email, not a personal one: the account owns the calendar.
- Pick your username
It becomes the public address of your booking page (cal.com/your-business). Use the business name.
- Verify the TIMEZONE it proposes
Cal.com guesses it from the browser, and if it lands wrong ALL your times shift. It is the most silent mistake in the whole setup — a real case below.
Step 2 — Connect your real calendar INSIDE Cal.com
Cal.com does not replace your calendar: it sits on top of it. Connecting your Google Calendar, Outlook or Apple Calendar does two things: it prevents double-booking over things you already had, and every new appointment shows up in the calendar you already check daily.
- Go to Settings → Calendars (or Apps)
Pick your provider (Google Calendar is the most common) and authorize access with the business account.
- Mark which calendar is CHECKED for conflicts
That is the "Check for conflicts" box. One calendar? Check that one. Several (personal + work)? Check every one that should block time slots.
- Choose WHERE new appointments are created
"Add events to": the calendar where the appointments your agent books will appear.
- Verify it shows green
In Settings → Calendars the connected calendar shows active. If it ever turns red, it got disconnected (happens when the account password changes) — reconnect it, because a broken calendar makes Cal.com return NO free slots at all.
Step 3 — Set your working schedule (Availability)
Availability is your working schedule: which days and time ranges can be booked. It lives under Availability (main menu). Cal.com ships a default schedule called "Working Hours" — edit it or create your own.
- Open Availability and edit the schedule
Enable the days you work and set the real ranges (say, Monday to Friday 8:00–12:00 and 14:00–18:00 — you can add more than one range per day with the «+»).
- Check the timezone OF THAT SCHEDULE
Each availability schedule carries its own timezone (below the editor). It must say yours — this is exactly where the shift from step 1 happens.
- Set it as default if it is the main one
Event types that do not pick a specific schedule inherit the default ("Set as default").
Step 4 — Create your event types
An event type is each bookable service: "30-min consultation", "15-min follow-up", "60-min initial assessment". Your agent offers times FROM one specific event type, so what you set up here defines what it can promise over the phone. In Event Types → New, for each one:
- Title and duration
The title carries the service name ("30-min consultation"). The duration defines the size of the slot that gets reserved.
- Assign its availability schedule
In the event type's Availability tab, pick the schedule from step 3. An event type with NO schedule assigned (and no default) never offers anything.
- The minimum booking notice — set it to 30 minutes
Under Limits → "Minimum Notice". It is how much advance a booking requires, and Cal.com tends to propose 120 minutes. We recommend 30 (why, below).
- Buffers between appointments (optional)
Under Limits: "Buffer before/after" adds free minutes around each appointment — useful if you need prep time between patients or clients.
- The booking questions
Under Advanced → Booking Questions: enable the PHONE and, if you want to book over the phone without asking for an email, leave the email as NOT required (what you give up is detailed further down).
- Do not leave it hidden
An event type marked "Hidden" cannot be booked through any channel — including your agent.
Step 5 — Create the key in Cal.com
- Open your Cal.com settings
Settings → Developer → API keys.
- Create a new key
The "Add" (or "New API key") button. Give it a name you will recognize, for example "Enlassa AI".
- Check "Never expires"
The single most important checkbox on that screen. See why below.
- Copy it
Cal.com shows it only ONCE. If you lose it there is no recovery: you generate another one.
Step 6 — Connect the calendar in Enlassa AI
- Open Integrations
In the side menu, "Integrations" → the "Calendar for booking appointments" card.
- Connect calendar
Give it a name (only you see it: "Clinic schedule", "Sales — Bogotá") and paste the key.
- Save
The key is stored encrypted and never shown again: from then on you will only see its last 4 characters.
Step 7 — Test the connection
The Test button is not a ping. It answers the three questions that fail differently and look identical from the outside:
- Does the key work? If Cal.com rejects it, we say so in those words and not as a technical error.
- What can each appointment type actually book? We read your appointment types, their duration, their minimum booking notice and which fields the form requires.
- Is your calendar syncing? This is the treacherous one: your schedule looks perfect in Cal.com yet returns not a single free time.
What if it says there are no times?
It is almost always one of these four, and the test tells you which:
- Your calendar disconnected. It happens on its own, with no warning: the account password changed, or the permission was revoked. Cal.com shows it in red under Settings → Calendars. Reconnect it and it works again.
- The appointment type has no availability schedule. With no hours assigned it will never offer a slot. Fix it in the appointment type → "Availability".
- The minimum booking notice is too long. If it requires 24 hours ahead, the agent cannot book anything for today or tomorrow. That is your call, but worth knowing.
- The appointment type is hidden. A hidden type in Cal.com cannot be booked through any channel.
If you would rather not ask for the email
Some businesses find asking for an email over the phone a nuisance: a clinic that only needs a name, a day and a time. Cal.com supports it — in the appointment type, under Advanced → Booking questions, turn on the phone number and leave the email as not required. With that, your agent books with name and phone only.
Changing or rotating the key
Edit the connection and paste the new key: it replaces the previous one and the connection verifies itself again. Leave the field blank and the key is untouched — useful for renaming only. And if you want to cut access off, the clean way is to revoke the key in Cal.com: it stops working that very instant, without depending on us.
Turn the action on in your agent
With the calendar connected, go to the agent → Agent actions tab → Book appointments → Add. There you pick the calendar and the appointment type from a list (no number to copy out of a URL), and that is it.
There are two actions and you want both: Check times (the agent asks your calendar what is free and offers up to three options) and Book (it takes the time the person chose and creates the appointment). Booking needs the other one: with no check there are no times to choose from, and the editor warns you if one is missing.
The check understands specific times: if the person asks for "tomorrow at ten", the agent offers ten o'clock if it is free, and otherwise the closest options to that time. And when the calendar has more open times than the ones it says out loud, it says so ("I have more times if none of those work") — it will never claim that a free time does not exist.
The appointment's contact phone defaults to the number the person is calling from — the system takes it directly, with no dictation and no digit errors. If the person prefers to be reached at another number, the agent asks for it, repeats it back exactly as they said it — same natural grouping — and confirms it before booking; that number is stored on the appointment and also helps find it later when rescheduling or cancelling.
- Function name
This is the name your agent sees. The default works for almost every case.
- Calendar and appointment type
When you pick the appointment type we show you what it requires: whether it asks for an email, how much minimum notice it has, whether it is hidden.
- Time zone
Inherited from the agent. It defines what "today" and "tomorrow" mean when offering times: with no zone, the agent cannot book.
- How many times to offer
Up to three. That ceiling is deliberate: a longer list is not retained over the phone.
- Phrase while it checks
Optional. Only said if the lookup takes a while; if it answers fast, your agent says nothing.
Let the assistant set it up for you
You don't have to build both actions by hand. Open the agent and ask the AI assistant (the ✨ "Improve with AI" button) something like "set up scheduling with my clinic calendar": it reads your real calendars and event types, builds both actions, adjusts the script so it checks availability before offering, and shows you what will change before saving anything. You approve.
In the Copilot chat you can also ask about your calendar: "what appointments do I have this week?" returns the list with each one's status and a link to the call where it was booked. It is read-only on purpose: moving or cancelling someone's appointment belongs in your calendar, not in a chat.
Rescheduling an appointment over the phone
With the Reschedule appointment action active, the caller can change their appointment without talking to anyone else. The agent finds it by the number they are calling from — it never asks them to read out a code —, describes it out loud ("I found your Tuesday 10 am appointment under Maria, is that the one?"), offers real times and only moves it once the person confirms the new one.
- If the person has two appointments, the agent asks which one ("Tuesday or Thursday?") — it never picks by elimination.
- If they call from another number (or from the web), the agent asks for the email it was booked with: without something that identifies them, nobody's appointment gets touched.
- A moved appointment keeps its history: in Appointments it shows as a single row with how many times it moved.
Cancelling an appointment over the phone
With the Cancel appointment action active, the person can void their appointment in the same call. The agent finds it by the number they call from, describes it out loud and asks for explicit confirmation ("do you confirm I should cancel it?") before executing — cancelling is irreversible, so that confirmation is not optional. The freed time becomes available instantly for the next person who asks.
Appointment confirmation campaigns
An outbound agent can call your patients or clients to confirm the appointment they already have: upload to a campaign a file with each person's name and their appointment date and time (those columns reach the script as variables), and the agent calls, reminds them of the appointment and asks for confirmation. If the person wants to move or cancel it in that same call, the reschedule and cancel actions work just like on inbound calls: the agent finds the appointment by the number it is calling, offers real time slots and executes with explicit confirmation.
For this use case, enable only reschedule and cancel (without booking): the campaign's goal is to manage the existing appointment, not create new ones. And a good script practice: if the person wants to cancel, offer once to move it to another time before accepting the cancellation.
Pausing an action without deleting it
Each action has a switch. When it is off, the action stays configured but the agent does not use it on calls: useful to stop booking for a few days without losing the calendar or the event type you picked. The same switch turns it back on, and editing it from "Edit" does not silently re-enable it.
Where you see the appointments
In the menu, Appointments. Each row is one appointment: when it is, who it is with, where it came from (a call, a campaign, your own calendar) and what state it is in. An appointment moved three times shows up once, with the number of times it moved in plain sight — not three rows you have to interpret.
Can you see my appointments? Can you delete them?
The key you paste belongs to your account and carries the permissions Cal.com gives it. We use it for three things: reading your appointment types, checking free times, and creating or moving the appointments your agent books. It is stored encrypted and never leaves the system again.
Can I connect more than one calendar?
Yes, and how many depends on your plan. It helps when you have genuinely separate schedules: two locations, two professionals, sales and support.
What about appointments booked from the Cal.com website?
They show up all the same. Cal.com notifies us of every new, cancelled or moved appointment, so the schedule you see here is the same as your calendar, no matter where the appointment came in from.
I use a different scheduler, not Cal.com. Does it work?
Today the integration is with Cal.com. It is free to start and connects Google, Outlook and Apple inside it, so in practice it works as a bridge to the calendar you already use.