Saltar al contenido
Documentation
Documentation
Connect and manage

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.

Available on every account
There is no need to ask us to turn it on: the calendar card is in Integrations for every account. If you do not see it, it is your role: ask whoever manages the account to grant you the permission.

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

  1. 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.

  2. Pick your username

    It becomes the public address of your booking page (cal.com/your-business). Use the business name.

  3. 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.

A wrong timezone never warns you: it shifts EVERY slot
Real case from our testing: a schedule set up "9 to 5" was saved under another timezone and the system offered 3 AM slots — with no visible error, because to Cal.com those times were perfectly valid. Check it in Settings → General → Timezone, and again in each availability schedule (step 3): each one has its own.

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.

  1. Go to Settings → Calendars (or Apps)

    Pick your provider (Google Calendar is the most common) and authorize access with the business account.

  2. 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.

  3. Choose WHERE new appointments are created

    "Add events to": the calendar where the appointments your agent books will appear.

  4. 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.

  1. 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 «+»).

  2. 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.

  3. 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").

If you run two different rhythms (say, consultations in the morning and follow-ups in the afternoon), create TWO availability schedules and assign each event type its own in step 4. Better than one giant schedule.

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:

  1. Title and duration

    The title carries the service name ("30-min consultation"). The duration defines the size of the slot that gets reserved.

  2. 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.

  3. 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).

  4. 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.

  5. 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).

  6. Do not leave it hidden

    An event type marked "Hidden" cannot be booked through any channel — including your agent.

Why 30 minutes of minimum notice (and not the 120 Cal.com proposes)
The minimum notice discards slots that are too close: with 120 minutes, someone calling at 9:00 cannot book ANYTHING before 11:00 — and "do you have anything this morning?" is precisely the most common call. With 30 minutes that same person can take the 9:30 slot, and the business keeps half an hour of margin against surprise walk-ins. Raise it only if you truly need more prep (say, each appointment requires setting up a room), and go below 30 only if you can serve almost immediately.

Step 5 — Create the key in Cal.com

  1. Open your Cal.com settings

    Settings → Developer → API keys.

  2. Create a new key

    The "Add" (or "New API key") button. Give it a name you will recognize, for example "Enlassa AI".

  3. Check "Never expires"

    The single most important checkbox on that screen. See why below.

  4. Copy it

    Cal.com shows it only ONCE. If you lose it there is no recovery: you generate another one.

Check "Never expires"
Cal.com defaults to 30 days. Leave it like that and a month from now your agent stops being able to book, with no signal at all inside the conversation: the person calls, asks for a slot, and nothing is created. If your security policy requires an expiring key, set the date in the connection form and we will warn you a week ahead.

Step 6 — Connect the calendar in Enlassa AI

  1. Open Integrations

    In the side menu, "Integrations" → the "Calendar for booking appointments" card.

  2. Connect calendar

    Give it a name (only you see it: "Clinic schedule", "Sales — Bogotá") and paste the key.

  3. Save

    The key is stored encrypted and never shown again: from then on you will only see its last 4 characters.

If you run Cal.com on your own server, open "Advanced options" and put your installation address there. If you use the cloud service, leave it empty.

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.
Checklist: is everything ready to book?
① Correct timezone on the account AND on each availability schedule · ② real calendar connected and green · ③ working schedule with the real days and ranges · ④ every event type with a duration, its schedule assigned and a 30-minute minimum notice · ⑤ phone enabled in the booking questions (and email not required, if you serve by phone) · ⑥ the connection test in Enlassa AI says "The connection works" and lists your event types with what each one requires. With those six green, your agent can check, book, reschedule and cancel.

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.

What you lose without the email
The person does not get the confirmation email or the link to move the appointment themselves: the only channel to change it is calling again. If the trade-off works for you, turn on SMS reminders for that appointment type so they still get a notice.

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.

  1. Function name

    This is the name your agent sees. The default works for almost every case.

  2. 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.

  3. Time zone

    Inherited from the agent. It defines what "today" and "tomorrow" mean when offering times: with no zone, the agent cannot book.

  4. How many times to offer

    Up to three. That ceiling is deliberate: a longer list is not retained over the phone.

  5. Phrase while it checks

    Optional. Only said if the lookup takes a while; if it answers fast, your agent says nothing.

Your agent cannot make up a time
The times it offers come from your calendar and carry an internal identifier the agent must use to book. It is not a guideline in the script it could ignore: it is the only way it has to refer to a time, so a made-up date simply does not exist for the system.

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.
No event type to pick
Unlike the other two actions, rescheduling is not tied to an event type: it moves the appointment the person ALREADY has, whatever its type, and offers times of that same type.

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.

Dates and times in whatever format your file has
If your column is named something with "date" or "time" (Fecha_Cita, Hora_Cita, date, appointment_date…), the platform understands it however it comes: 08/25/2026, 2026-08-25, 25-08-2026, "August 25", Excel's own date format, and times like 8, 8:00, 8 am, 8:00am, 3pm, 15:00. It is stored the way a person would say it ("Tuesday, August 25", "8 in the morning") so the agent reads it naturally, and it is used to go straight to that day's appointment when the person has more than one. If a value cannot be understood, it is left as-is and flagged in the batch report.

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.

If you pause availability, pause booking too
Booking needs the availability check: without it the agent has no times to choose from. If you leave only booking active, the editor warns you — but it is better to know before you find out on a call.

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.

If the appointment was booked without an email, the row says “Identified by phone”. That is the reminder that this person got no confirmation, and that the only channel to change it is calling again.
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.