Templates / Voice appointment booking & confirmation system with Vapi, Gemini & Google Calendar

Voice appointment booking & confirmation system with Vapi, Gemini & Google Calendar

Ready for 3.0

by Habeeb Mohammed ✓ · 2,806 views · created 2025-11-17 · Support Chatbot, AI Chatbot

Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.

Nodes used (7)

Google CalendarGoogle Gemini Chat ModelAI AgentGmail

What it does

!Workflow Overview AI Voice Appointment Booking with Vapi and Google Calendar Build an intelligent appointment booking system that lets customers schedule appointments through natural voice conversations. This workflow connects Vapi AI assistant with Google Calendar to check availability, create appointments, and send professional confirmation emails automatically. Who's It For Healthcare providers, consultants, service businesses, coaches, salons, or any business that schedules appointments and wants to automate booking through voice calls. What It Does This workflow creates two powerful tools for your Vapi voice assistant: Availability Checker: When customers ask about available time slots, the assistant calls this workflow which fetches busy times from Google Calendar, processes them through an AI agent, and returns open slots in natural language. Appointment Creator: Once the customer confirms their preferred time, the assistant triggers this workflow to create the calendar event and send a branded confirmation email with all appointment details. The entire booking process happens conversationally without requiring customers to navigate websites or apps. How It Works Availability Flow: 1. Customer asks Vapi assistant to check availability for a specific date 2. Vapi calls the first webhook with the requested date 3. Workflow queries Google Calendar for busy slots that day 4. JavaScript code formats the busy times into readable text 5. AI agent analyzes the schedule and identifies available time windows 6. Available slots are returned to Vapi in natural language 7. Assistant presents options to the customer Booking Flow: 1. Customer confirms their chosen appointment time and provides details 2. Vapi calls the second webhook with name, email, date/time, and appointment type 3. Workflow creates the calendar event in Google Calendar 4. Professional HTML confirmation email is sent via Gmail 5. Success confirmation is returned to Vapi 6. Assistant confirms the booking to the customer Requirements - Vapi account with a configured voice assistant - Google Calendar for appointment management - Gmail account for sending confirmation emails - Google Gemini API key for availability analysis How to Set Up 1. Activate the Workflow Import this template and activate it to generate the two webhook URLs. 2. Configure Google Calendar In both calendar nodes, select your appointment calendar and set your timezone. 3. Connect Gmail Add your Gmail credentials to the email node and customize the confirmation email template with your branding. 4. Set Business Hours In the Availability Checker AI agent node, update the system message to reflect your operating hours. 5. Create Vapi Tools In your Vapi assistant dashboard, add two server tools: Tool 1: availabilitychecker - Function name: availabilitychecker - Description: "Checks available appointment slots for a specific date" - Server URL: Your first webhook URL - Parameters: date (string, required, ISO 8601 format) Tool 2: Creatingtheappointmentandsendingtheconfirmationemail - Function name: Creatingtheappointmentandsendingtheconfirmationemail - Description: "Creates appointment and sends confirmation email" - Server URL: Your second webhook URL - Parameters: Name, Email, date and time, Appointment type (all strings, all required) 6. Update Assistant Prompt Ensure your Vapi assistant knows when to call each tool based on customer requests. Vapi Configuration Download the complete Vapi assistant configuration: vapi-config.json 7. Test End-to-End Call your Vapi assistant and test the complete booking flow. How to Customize Appointment Duration: Change the 30-minute default in the "Create an event" node by modifying the .plus(30, 'mins') expression. Email Template: Edit the HTML in the "Send confirmation email" node to match your brand colors, logo, and messaging. Business Hours: Update the system message in the "Availability checker" AI agent node to reflect when you accept appointments. Timezone: E

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.