Documentation / Chatbots & AI / Cal.com variables in the AI agent prompt

Cal.com variables in the AI agent prompt

ES EN

If your agent uses the Cal.com integration, tools aren't activated automatically — you have to declare them explicitly in the prompt using {{cal_*}} variables. This guide explains which ones exist, how they work and when to use them.

Are you using Agent8Ai's native calendar? Then this doc does not apply. The native calendar activates its 5 tools automatically via the toggle in the panel — no variables in the prompt needed. See AI agent configuration.

Golden rule — Cal.com is explicit opt-in

For each Cal.com tool you want the agent to be able to use, you must mention its variable in the agent's prompt. If you don't mention it, the tool is not offered to the model even though Cal.com is configured.

This is by design — it lets the operator limit what the bot can do per channel. For example, the WhatsApp bot can check and book but not cancel, simply by mentioning only the first two variables.

The 6 available variables

Variable What it lets the agent do
{{cal_check_availability}} Check free slots in the calendar for a date range.
{{cal_create_booking}} Create a new booking.
{{cal_list_bookings}} List the client's appointments (by email).
{{cal_cancel_booking}} Cancel an existing appointment.
{{cal_modify_booking}} Change the date/time of an existing appointment.
{{cal_get_booking}} Look up the details of a specific appointment by its identifier.

Important: before sending the prompt to the model, Agent8Ai replaces each {{cal_*}} with a technical description of the function. The client never sees those placeholders — they only exist in the internal prompt.

Complete prompt example

You are the salon's receptionist.
Friendly and professional tone. Answer in English.

When the client asks about slots, use {{cal_check_availability}}.
To book, use {{cal_create_booking}}.
To list their appointments, use {{cal_list_bookings}}.
To cancel, use {{cal_cancel_booking}}.
To reschedule, use {{cal_modify_booking}}.

With this prompt, the agent can do 5 things with Cal.com: check, book, list, cancel and modify. If you also wanted to give it the ability to look up a booking by ID, you'd add {{cal_get_booking}}.

Common use cases

Check and book only

Useful when you don't want the bot to be able to cancel or move appointments — all that is handled by a human operator:

You are the receptionist.

To check slots use {{cal_check_availability}}.
To book use {{cal_create_booking}}.
If the client wants to cancel or change an appointment, tell them
they should speak with an operator — do not try to do it yourself.

WhatsApp more restrictive than Web

You can have two separate agents (one per channel) with different prompts — the WhatsApp one with fewer capabilities and the web one with all of them:

  • WhatsApp agent: only mentions {{cal_check_availability}} and {{cal_create_booking}}.
  • Web agent: mentions all 6 variables.

Cal.com + native calendar at the same time

If your plan allows both and you enable them, the model receives:

  • The 5 native tools of the Agent8Ai calendar (activated by the panel toggle).
  • The {{cal_*}} variables you mentioned in the prompt.

In that case it's worth clarifying in the prompt when to use each one:

You are the salon's receptionist.

IMPORTANT: for appointments with salon staff ALWAYS use the Agent8Ai
calendar tools. Cal.com tools are only for external meetings with
the director — use them only if the client asks to speak with her.

For external meetings with the director you can use
{{cal_check_availability}} and {{cal_create_booking}}.

Common mistakes

  • Writing {cal_check_availability} with a single brace: it's not replaced and shows up as plain text in the model's prompt. Always double braces: {{ }}.
  • Making up variables that don't exist (e.g. {{cal_reschedule}}): the system doesn't recognize them and leaves them in the prompt, confusing the model. Only the 6 variables listed above are available.
  • Mentioning variables but not having Cal.com configured: the system strips them from the prompt before sending — nothing happens, they simply have no effect.

See also

#AI Agents #Prompts