Voice Tools

Appointment Booking

Check calendar availability and book appointments directly during a voice call.

Appointment Booking

The Appointment Booking tool lets your voice agent check calendar availability and book appointments in real time during a call. It integrates with Google Calendar or your own scheduling API.

How It Works

Caller: "I'd like to schedule a consultation."
Agent: "I'd be happy to help! What date works best for you?"
Caller: "How about next Tuesday?"
-> Agent calls check_availability with date="2026-03-10"
Agent: "I have slots available at 9:00 AM, 10:00 AM, 11:00 AM, 2:00 PM, and 3:00 PM. Which works best?"
Caller: "2 PM please."
Agent: "And may I have your name and email?"
Caller: "John Smith, john@example.com"
-> Agent calls book_appointment with date, time, name, email
Agent: "Your consultation is confirmed for Tuesday, March 10th at 2:00 PM. You'll receive a confirmation email shortly."

Configuration

{
  "appointmentBookingEnabled": true,
  "appointmentCalendarId": "primary",
  "appointmentDuration": 30,
  "appointmentTimezone": "America/New_York",
  "appointmentBufferMinutes": 15,
  "appointmentConfirmationMessage": "Your appointment has been booked for {date} at {time}."
}
SettingTypeDefaultDescription
appointmentBookingEnabledbooleanfalseEnable appointment booking
appointmentCalendarIdstringGoogle Calendar ID or custom calendar reference
appointmentDurationinteger30Default appointment duration in minutes
appointmentTimezonestringAmerica/New_YorkTimezone for scheduling
appointmentBufferMinutesinteger15Buffer between appointments
appointmentConfirmationMessagestring"Your appointment has been booked for {date} at {time}."Confirmation message template

LLM Tools

check_availability

Check available appointment slots for a given date.

Parameters:
  date: string (YYYY-MM-DD format)

Returns: "Available slots for 2026-03-10: 9:00 AM, 10:00 AM, 11:00 AM, 2:00 PM, 3:00 PM (America/New_York). Each slot is 30 minutes."

book_appointment

Book an appointment at the specified date and time.

Parameters:
  date: string (YYYY-MM-DD format)
  time: string (HH:MM format)
  caller_name: string (attendee's name)
  caller_email: string (optional, for confirmation email)
  notes: string (optional, appointment notes)

Returns: "Your appointment has been booked for 2026-03-10 at 14:00."

Example — Create Agent with Appointment Booking

curl -X POST https://api.thinnest.ai/v1/agents \
  -H "Authorization: Bearer $THINNESTAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Scheduling Assistant",
    "model": "gpt-4o-mini",
    "instructions": "You help callers book consultations. Check availability first, confirm all details (date, time, name, email), then book. Default duration: 30 minutes.",
    "voiceEnabled": true,
    "transcriber": { "provider": "deepgram", "model": "nova-2-conversationalai" },
    "voice": { "provider": "deepgram", "voiceId": "aura-2-thalia-en" },
    "appointmentBookingEnabled": true,
    "appointmentCalendarId": "primary",
    "appointmentDuration": 30,
    "appointmentTimezone": "America/New_York",
    "appointmentBufferMinutes": 15,
    "appointmentConfirmationMessage": "Your appointment has been booked for {date} at {time}."
  }'

On this page