Skip to main content

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

Workflow preview

Workflow preview
100%
Voice appointment booking & confirmation system with Vapi, Gemini & Google Calendar preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

AI Voice Appointment Booking with Vapi and Google Calendar Build an intelligent appointment book...

Best for

  • Support Chatbot automation workflows
  • AI Chatbot automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.respondtowebhook, n8n-nodes-base.googlecalendar, @n8n/n8n-nodes-langchain.lmchatgooglegemini, n8n-nodes-base.code, @n8n/n8n-nodes-langchain.agent, n8n-nodes-base.gmail, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Habeeb Mohammed.

Original n8n.io source

1.1 Workflow description

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

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: availability_checker

  • Function name: availability_checker
  • Description: "Checks available appointment slots for a specific date"
  • Server URL: Your first webhook URL
  • Parameters: date (string, required, ISO 8601 format)

Tool 2: Creating_the_appointment_and_sending_the_confirmation_email

  • Function name: Creating_the_appointment_and_sending_the_confirmation_email
  • 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: Ensure both Google Calendar nodes use your correct timezone for accurate scheduling.

Calendar Selection: Point both calendar nodes to the same Google Calendar to avoid double-bookings.

Appointment Types: Customize the event description format in the "Create an event" node to include relevant details for your business.

This workflow transforms appointment scheduling from a manual back-and-forth into an automated, professional experience that runs 24/7 through voice conversations.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Webhook - Availability Checker

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 2 - Return Availability to Vapi

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 3 - Get Busy Slots from Calendar

Type / Role
n8n-nodes-base.googleCalendar - googleCalendar
Config choices
Version 1.3

Block 4 - Google Gemini Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - lmChatGoogleGemini
Config choices
Version 1

Block 5 - Format Busy Slots

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 6 - Webhook - Create Appointment

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 7 - Return Confirmation to Vapi

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 8 - Create Calendar Event

Type / Role
n8n-nodes-base.googleCalendar - googleCalendar
Config choices
Version 1.3

Block 9 - AI Availability Analyzer

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 2.2

Block 10 - Send Confirmation Email

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 11 - Setup Instructions

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 12 - Availability Section Label

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 13 - Booking Section Label

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Voice appointment booking & confirmation system with Vapi, Gemini & Google Calendar
Complexity intermediate
Nodes 13
Categories Support Chatbot, AI Chatbot
Author Habeeb Mohammed
Published 17 Nov 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/10905/10905.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Voice appointment booking & confirmation system with Vapi, Gemini & Google Calendar do?

AI Voice Appointment Booking with Vapi and Google Calendar Build an intelligent appointment book...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Support Chatbot, AI Chatbot use case.