Skip to content

Connect a telephone assistant to an appointment system

Plan bookings, occupied slots, lost responses and appointment changes with a worked integration example.

Matthias Becker2 min read
Blue and cream telephone handset beside a ring-bound calendar with an empty grid.

A telephone assistant should confirm an appointment only after the authoritative booking system confirms the correct record. It needs narrowly defined integration functions and responses that expose the actual state. A list of available times is not a booking.

Keep booking rules in the authoritative system

In this fictional example, a software business offers existing customers 30-minute project discussions for resource consultation-a. The caller chooses 19 November 2026, from 14:00 to 14:30 in Europe/Berlin. The assistant reads back the date, time and duration and waits for the caller’s explicit choice.

The booking service checks permitted appointment types, permissions and overlaps when writing. The website and staff must use the same allocation rule. Later calendar synchronisation does not prevent two booking channels from allocating the same time concurrently.

Define four limited functions

Example function

Purpose

Required response

find_slots

Find suitable available times

Intervals with dates and time zones

create_booking

Book the explicitly selected interval

Confirmed booking or specific rejection reason

get_booking_status

Resolve a request’s outcome using its identifier

Existing booking, failed request or still-unknown state

reschedule_booking

Move an existing booking to a chosen time

Confirmed change or unchanged existing appointment

ElevenLabs describes external functions like these as webhook tools. The names and rules here are our own design. The server validates parameters and permissions itself; a model call grants no access rights. Access keys do not belong in conversation text. Stating a booking identifier alone does not establish permission to change it.

Fill in the request and response

The server assigns stable request identifier R-94 to this booking intention. Once the caller’s account association is established, the booking function receives these business data:

{"requestId":"R-94","resourceId":"consultation-a","start":"2026-11-19T14:00:00+01:00","timeZone":"Europe/Berlin","durationMinutes":30}

This is not a direct Google Calendar call. Google’s Freebusy query returns busy intervals; the chosen booking path must separately ensure exclusive allocation. In this example, checking and reserving are protected against concurrent bookings. Only this business confirmation permits a booking promise:

{"requestId":"R-94","status":"confirmed","bookingId":"B-94"}

The assistant can now confirm the agreed time. Creating a calendar entry alone does not prove that an invitation has been read.

Check four cases through to the stored result

Case

Expected system behaviour

Statement during the call

Selected time is free when writing

One booking B-94 is confirmed

Confirm the agreed appointment

The time has since been allocated

No further booking for the same resource and time

Offer new available times

Booking response is lost

First resolve the existing outcome using R-94

Confirmation is still pending

Requested move to 15:00 fails because the interval is occupied

B-94 remains at its original time

Change rejected; state the original appointment

Repeating the same request identifier and data within the same permission scope must return the existing outcome. A changed request receives a new identifier. If the outcome remains unknown, do not force another booking with a new identifier; use the established resolution path.

Rescheduling must not remove the old appointment prematurely. If the integration cannot provide a protected switch, it needs a separate workflow instead of an automatic promise. Use these four cases before launch to check that the conversation matches the stored booking state.

Sources

Written by

  • Matthias BeckerEditor for AI and AutomationMatthias Becker looks after the articles on artificial intelligence and automation at ASES. He examines how companies can use AI in their workflows and where the limits of each application lie.

Follow ASES

Read more

All articles

AI & Automation with ASES

AI assistants and automated workflows