Build an AI Appointment Booking Agency with Vapi: The Complete Step-by-Step Guide

Build an AI Appointment Booking Agency with Vapi: The Complete Step-by-Step Guide

You are going to build an AI appointment booking agency. Not a blog about scheduling. Not a course about AI. A service that deploys AI voice agents and chatbots that book appointments for businesses 24/7, reducing no-shows and recovering lost revenue. This guide covers every step. Follow it in order. Do not skip steps.

Prerequisites

  • A laptop with a modern browser
  • A Vapi Vapi account (free trial) — go to vapi.ai and sign up
  • A Cal.com account (free tier) — go to cal.com and sign up
  • A Google Google Calendar account (free)
  • A Make Make account (free tier) — go to make.com and sign up
  • A Twilio account (free trial) — go to twilio.com and sign up
  • A Notion Notion account (free) — for documentation
  • A Stripe Stripe account (free) — for payments
  • 4-6 hours of uninterrupted time

Total upfront cost: $0 during trial periods.

Step 1: Set Up Your Vapi Voice Agent

Open your browser and go to vapi.ai. Sign in. You should see the Vapi dashboard with a “Create Assistant” button.

Create Your First Assistant

Click Create Assistant. Name it: dental-booking-agent. This will be a voice agent that answers after-hours calls for a dental practice.

Configure the Assistant

Model: Select gpt-4o or gpt-4o-mini (cheaper, still excellent for booking).

Voice: Select a professional, warm voice. “Rachel” or “Sarah” work well for dental practices. Test different voices by clicking the preview button.

System Prompt: Paste this:

You are a friendly and professional receptionist for Bright Smile Dental. Your job is to help callers book, reschedule, or cancel appointments. You have access to the practice’s availability calendar.

RULES:

  1. Always greet the caller warmly: “Thank you for calling Bright Smile Dental, this is [name], how can I help you today?”
  2. If the caller wants to book an appointment, ask: (a) What type of service? (cleaning, consultation, emergency, whitening, root canal), (b) Do they have a preferred date and time?, (c) Are they a new or existing patient?
  3. Check availability and offer 2-3 options. Say: “I have availability on [date] at [time] or [date] at [time]. Which works better for you?”
  4. Confirm the booking: “Perfect, I’ve booked you for [service] on [date] at [time]. You’ll receive a confirmation text shortly.”
  5. If the caller wants to reschedule, ask for their name and current appointment, then offer new times.
  6. If the caller has a dental emergency, say: “For dental emergencies, please call our emergency line at (555) 123-4567. If it’s during business hours, we can see you today.”
  7. For any question you cannot answer, say: “Let me connect you with our team. Can I take your number and have them call you back?”
  8. Never fabricate information about services, prices, or insurance.
  9. Keep responses concise. Do not over-explain.
  10. Always end with: “Is there anything else I can help you with?”

Functions: Add a function called book_appointment that takes parameters: patient_name, service_type, date, time, phone_number, is_new_patient. This function will call your Make.com webhook to actually book the appointment.

Click Save.

Test the Voice Agent

Click Test Call in the Vapi dashboard. You should hear the agent greet you. Try saying: “I’d like to book a cleaning for next Tuesday.” Does the agent respond appropriately? Try: “How much does a root canal cost?” Does it redirect properly? Try: “I have a toothache and need to be seen today.” Does it handle the emergency correctly?

Run at least 10 test calls with different scenarios. Document every failure.

CHECK-IN: Step 1 Complete

  1. Vapi voice agent created with dental booking system prompt
  2. Voice selected and tested for professional tone
  3. Booking function configured
  4. 10+ test calls completed with acceptable results

Step 2: Connect the Booking Function to Cal.com

Set Up Cal.com

Go to cal.com and sign in. Create an event type called “Dental Appointment” with 30-minute slots, available Monday through Friday, 9 AM to 5 PM. Connect your Google Calendar.

Create the Make.com Scenario

Go to make.com. Create a new scenario called “Dental Booking Workflow.”

Module 1: Webhook — Add a Custom Webhook. This receives the booking data from Vapi.

Module 2: Google Calendar — Create an Event — Map the webhook data (patient_name, service_type, date, time) to create a calendar event. Set the event title to: [Service Type] - [Patient Name]. Add the patient’s phone number in the description.

Module 3: Gmail — Send an Email — Send a confirmation email to the practice: “New booking: [Patient Name] for [Service Type] on [Date] at [Time]. New patient: [Yes/No].”

Module 4: Twilio — Send an SMS — Send a confirmation text to the patient: “Hi [Name]! Your appointment at Bright Smile Dental is confirmed for [Date] at [Time]. Reply HELP if you need to reschedule.”

Connect Vapi to Make.com

In Vapi, edit your assistant’s book_appointment function. Set the URL to your Make.com webhook URL. Set the method to POST.

Test the full flow: call the Vapi agent, book an appointment, verify the calendar event is created, the email is sent, and the SMS is delivered.

CHECK-IN: Step 2 Complete

  1. Cal.com event type configured with availability
  2. Make.com scenario creates calendar event, sends email, sends SMS
  3. Vapi function calls the Make.com webhook successfully
  4. End-to-end test passes (call → book → calendar → email → SMS)

Step 3: Build the Reminder Sequence

Create the Reminder Automation

In Make.com, create a new scenario called “Appointment Reminders.”

Trigger: Schedule — Run every hour.

Module 1: Google Calendar — Search Events — Search for events happening in the next 25 hours (for 24-hour reminders) and in the next 3 hours (for 2-hour reminders).

Module 2: Router — Two paths:

  • Path A: Event is 24 hours away AND 24h reminder not yet sent → Send 24h SMS reminder
  • Path B: Event is 2 hours away AND 2h reminder not yet sent → Send 2h SMS reminder

Module 3a (Path A): Twilio — Send SMS

“Hi [Name]! Reminder: Your appointment at Bright Smile Dental is tomorrow at [Time]. Reply C to confirm or R to reschedule.”

Module 3b (Path B): Twilio — Send SMS

“Hi [Name]! Your dental appointment is in 2 hours at [Time]. We’re at 123 Main St. See you soon!”

Module 4: Google Sheets — Update Row — Mark the reminder as sent in a tracking spreadsheet to avoid duplicate reminders.

CHECK-IN: Step 3 Complete

  1. Reminder scenario runs hourly
  2. 24-hour and 2-hour reminders sent without duplicates
  3. Confirmation/reply tracking working

Step 4: Build the No-Show Re-engagement Sequence

Create the No-Show Detection

In Make.com, create a scenario called “No-Show Detection.”

Trigger: Schedule — Run every 2 hours during business hours.

Module 1: Google Calendar — Search Events — Find events that ended in the past 2 hours.

Module 2: Google Sheets — Check Attendance — Look up each event in a tracking spreadsheet. If the patient checked in, mark as “Attended.” If not marked after 2 hours, assume no-show.

Module 3: Router — If no-show → Send re-engagement sequence.

Module 4: Gmail — Send Email

“Hi [Name], we noticed you weren’t able to make your appointment today. We hope everything is okay! We’d love to get you rescheduled. Here are some available times this week: [Link to booking page]. No hard feelings — we’ll save your spot!”

Module 5: Twilio — Send SMS (3 days later)

“Hi [Name], still looking to get that appointment rescheduled? We have openings this week. Book here: [Link]”

CHECK-IN: Step 4 Complete

  1. No-show detection running every 2 hours
  2. Re-engagement email sent automatically
  3. 3-day follow-up SMS configured
  4. No-show tracking in Google Sheets

Step 5: Build the Website Chatbot

Create a Voiceflow Chatbot

Go to voiceflow.com. Create a free account. Create a project called “Dental Booking Chatbot.”

Step 1: Welcome Message

“Welcome to Bright Smile Dental! I can help you: 📅 Book an appointment, ❓ Answer questions about our services, 📋 Check your upcoming appointment. What can I help you with?”

Step 2: Add Intent Paths

  • book_appointment — Triggers booking flow (asks service type, preferred date, new/existing patient)
  • ask_services — Knowledge base response about services
  • ask_hours — Static response with office hours
  • ask_insurance — Knowledge base response about insurance
  • fallback — “I’m not sure about that. Let me connect you with our team.”

Step 3: Connect to Booking — The booking intent sends data to your Make.com webhook (same one as the voice agent).

Step 4: Deploy as Widget — Click Deploy → Web Widget. Copy the JavaScript snippet. This is what you will install on the client’s website.

CHECK-IN: Step 5 Complete

  1. Voiceflow chatbot handles 4 intents + fallback
  2. Booking flow connects to Make.com webhook
  3. Widget deployed and tested on a test page

Step 6: Package, Price, and Sell

Service Packages

Starter ($500/month + $1,500 setup): After-hours voice agent + SMS reminders. For solo practitioners.

Growth ($1,000/month + $2,500 setup): 24/7 voice agent + website chatbot + email + SMS reminders + no-show re-engagement. For practices with 2-4 providers.

Enterprise ($2,000/month + $5,000 setup): Multi-provider scheduling + HIPAA-compliant voice agent + chatbot + full lifecycle management + priority support. For practices with 5+ providers.

Sales Approach

Build a demo for your chosen vertical. Call after-hours and document the experience. Show the demo to business owners. The 2-minute Loom walkthrough of your voice agent handling a real booking call is your highest-converting asset.

Cost Breakdown

ItemFree TierPaid TierWhen to Upgrade
VapiTrial minutes$50/moAt first paying client
Make.com1,000 ops/mo$16/moAt 2+ clients
Cal.comFree$12/moAt 5+ clients
TwilioTrial credits~$30/moAt first client
Voiceflow3 projects$50/moAt 4+ clients
Google CalendarFreeAlways

Total monthly cost at 3 clients: ~$158 Total monthly revenue at 3 clients: $2,000-3,000

Production Checklist

  • Voice agent handles booking, rescheduling, and cancellation calls
  • Booking function creates calendar events via Make.com
  • Confirmation email and SMS sent automatically
  • 24-hour and 2-hour reminder sequence running
  • No-show detection and re-engagement configured
  • Website chatbot handles common inquiries and booking
  • All scenarios have error handling with Slack Slack notifications
  • Service packages defined and priced
Affiliate Disclosure: Some links on this page are affiliate links. If you purchase through them, we may earn a commission at no extra cost to you. This helps us keep creating free content.
PLAYBOOK

The AI Customer Onboarding Agency Playbook: 32 Steps to $35K/Month

The most advanced AI customer onboarding agency blueprint ever created. 10 modules, 42 step-by-step procedures, interactive check-ins at every stage, complete tech stacks, client delivery frameworks, and scaling systems. From zero to ₦30M/month.

SHARE YOUR STARTUP STORY
Built something with AI? We want to hear about it.