Connect your account
Integrations → Cal.com → Connect opens a three-step dialog. Connecting, testing, refreshing and disconnecting are owner and admin work; other roles see the card with the buttons disabled.1
API key
In Cal.com, open Settings → Developer → API keys and create a key. Choose
Never expires, or set yourself a reminder: an expired key stops bookings arriving.Paste the key (it starts with
cal_) into Watx and press Connect. Watx checks the
key with Cal.com before it is stored, so a wrong key is refused on the spot. It is
stored encrypted and never shown again. The dialog shows only the last four characters,
as cal_live_…a1b2, and the Cal.com account it belongs to.2
Ask for a phone
Watx reads your event types from Cal.com and shows, for each one, whether its booking
page asks for a phone number. See the next section, which is the step that matters most.
3
Bookings
Watx registers a booking webhook on your Cal.com account for you, so there is nothing to
paste back. This step confirms the webhook is registered, shows when the last booking
update arrived, and lists your recent bookings. Make a test booking to check.
Make each booking page ask for a phone
Cal.com asks for a name and an email by default. Without a phone number, Watx has nobody to message on WhatsApp. The booking is still recorded, but no confirmation or reminder can reach the customer, and nothing fails visibly, because nothing was tried. Step 2 labels every event type:
To fix one, press Edit beside it, go to Advanced → Booking questions in Cal.com, turn
on Phone number (or add a question of type Phone), mark it required and save. Then
press Refresh from Cal.com.
While any visible event type has no phone question, the card shows how many booking pages
are affected. Event types hidden on your Cal.com profile are listed but not counted.
What a booking does in Watx
A booking with a phone number finds the contact with that number, or creates one with the source Cal.com booking, and opens a WhatsApp thread for them. A new customer who has never written to you is still reachable, through a template. A booking with an email only is linked to an existing contact with the same email, if there is one. Otherwise it is recorded with no contact: Watx does not create a contact nobody can message. The recent bookings list marks these “no phone, not linked to a contact”. Bookings also appear on the contact’s activity timeline.Triggers
Each booking fires one of the three appointment triggers. They are the same triggers booking forms use, so one confirm-and-remind automation can serve both.
A booking that needs your confirmation fires nothing until you accept it in Cal.com, and a
request you decline fires nothing. A late or repeated delivery from Cal.com never fires a
trigger twice, and never brings a cancelled booking back.
In the trigger’s Appointment type picker, your Cal.com event types are listed beside your
booking forms as “Title (Cal.com)”. Leave it on Any type to fire for all of them.
These triggers carry no channel. Booking details are available as tokens, in the same place
a booking form puts them:
See Variables and expressions.
Sending a booking link
The Send booking link step can send a Cal.com event type’s booking page as well as a booking form. Pick the event type in the step’s Appointment type field.Let an AI agent book
Turn on the Cal.com booking skill on an agent. It is off by default.
The agent looks up open times up to 14 days ahead, offers two or three, and books only after
the customer agrees to one. The booking carries the phone number from the contact, never a
number the agent typed. The agent then sends the time and Cal.com’s link for that booking.
- The skill’s tools are withheld while Cal.com is not connected, and the agent’s readiness checklist says so.
- When you ask the agent to draft a reply in the inbox (Draft a reply with AI), it can look up times but cannot book, so drafting never creates a booking.
- A booking made by the agent fires Appointment booked once, like any other.
Disconnect
Disconnect in the dialog removes Watx’s webhook from Cal.com and forgets the key. The cached event types go with it. Bookings already recorded stay on your contacts.Not supported
- Team event types. Only the event types of the account that owns the key are read.
- Cancelling or rescheduling from Watx. Neither you nor an agent can do it here; the customer uses the Cal.com link in their confirmation, and you use Cal.com.
- Public API webhooks for Cal.com bookings. The
booking.*events under Settings → Developer → Webhooks are sent for Watx booking forms only. Use an automation on the appointment triggers instead.