IntegrationsIntermediate

How to build an AI scheduling assistant that books meetings via email

Combine Cal.com booking links with an AI email agent so requests like can we meet next week get answered with a real time slot.

9 minIntermediate

Back-and-forth scheduling emails are a productivity tax. This guide wires an AI agent to your calendar availability through Cal.com so that when someone emails asking to meet, the agent reads your free slots and replies with concrete options or a booking link, instead of leaving you to negotiate by hand.

  • A Cal.com account (free tier is fine) connected to your calendar
  • A Cal.com API key
  • An automation tool such as Make, n8n, or a small script
  • An AI API key

Step 1: Connect your calendar to Cal.com

In Cal.com, add your Google or Outlook calendar under Settings, Calendars. This lets Cal.com see your real busy times so it never offers a slot you are already booked for. Create an event type, for example a 30 minute meeting, and note its link.

Step 2: Get available slots from the API

Cal.com exposes a slots endpoint. Your automation calls it with a date range and gets back open times. This is the data your AI agent will turn into a friendly reply.

zsh - cal.com slots
$curl -s 'https://api.cal.com/v2/slots?eventTypeId=12345&start=2026-06-23&end=2026-06-25' \
$ -H 'Authorization: Bearer cal_live_xxx'
{ "data": { "2026-06-23": ["09:00","11:30"], "2026-06-24": ["14:00"] } }
$

Step 3: Let the AI compose the reply

Pass the incoming email plus the slots JSON to the model and ask it to propose two or three options in natural language and include the booking link. Keep the agent honest by telling it to only offer times present in the data.

reply prompt
You are my scheduling assistant. Someone emailed asking to meet.
Offer 2 to 3 times ONLY from the available slots below, in the sender's
likely timezone. Be brief and friendly. Always include this booking link
so they can confirm: https://cal.com/alex/30min

Their email:
{{email_body}}

Available slots (my local time):
{{slots_json}}
Always include the link
Even when the agent proposes specific times, including the Cal.com link as a fallback means the other person can self-book if none of your suggestions work, ending the thread in one round.

Step 4: Send and let bookings flow back

Send the AI reply as a Gmail or Outlook draft (or auto-send if you trust it). When the recipient picks a time, Cal.com writes the event to your calendar and emails both of you. The loop is closed without you typing a single date.

Email reply (draft)
You
Incoming: Any chance we could chat next week?
Agent
Happy to. I am free Tue Jun 23 at 9:00 or 11:30, or Wed at 2:00. Pick whatever suits, or grab any slot here: cal.com/alex/30min
The agent offers real, conflict-free times plus a self-serve link.

Result: a meeting request that used to take four emails now ends in one reply, with the booked event already on both calendars.

Watch related tutorials

Tags
#scheduling#cal.com#email#ai-agent