Back to Catalog

Book appointments with voice using VAPI & Cal.com

Nabin BhandariNabin Bhandari
2431 views
2/3/2026
Official Page

This template uses VAPI and Cal.com to book appointments through a voice conversation. It detects whether the user wants to check availability or book an appointment, then responds naturally with real-time scheduling options.

Who is this for? This workflow is perfect for:

Voice assistant developers

AI receptionists and smart concierge tools

Service providers (salons, clinics, coaches) needing hands-free scheduling

Anyone building voice-based customer experiences

What does it do? This workflow turns a natural voice conversation into a working appointment system.

It starts with a Webhook connected to your VAPI voice agent.

The Set node extracts user intent (like “check availability” or “book now”).

A Switch node branches logic based on the intent.

If the user wants to check availability, the workflow fetches available times from Cal.com.

If the user wants to book, it creates a new event using Cal.com's API.

The final result is sent back to VAPI as a conversational voice response.

How to use it Import this workflow into your n8n instance.

Set up a Webhook node and connect it to your VAPI voice agent.

Add your Cal.com API token as a credential (use HTTP Header Auth).

Deploy and test using VAPI’s simulator or real phone input.

(Optional) Customize the OpenAI prompt if you're using it to process or moderate inputs.

Requirements A working VAPI agent

A Cal.com account with API access

n8n (cloud or self-hosted)

An understanding of how to configure webhook and API credentials in n8n

Customization Ideas Swap out Cal.com with another booking API (like Calendly)

Add a Google Sheets or Supabase node to log appointments

Use OpenAI to summarize or sanitize voice inputs before proceeding

Build multi-turn conversations in VAPI for more complex bookings Screenshot 20250802 at 20.55.48.png

n8n Workflow: Basic Webhook Responder

This n8n workflow demonstrates a fundamental pattern for receiving data via a webhook, performing a simple transformation, and then responding to the original webhook request. It serves as a basic template for building more complex webhook-triggered automations.

What it does

This workflow simplifies the process of receiving and responding to external HTTP requests:

  1. Listens for incoming requests: It starts by exposing a webhook URL that can receive HTTP POST requests.
  2. Edits incoming data: It then uses a "Set" node to potentially modify or add data to the incoming payload. In its current state, it's configured to add a static field.
  3. Responds to the webhook: Finally, it sends a response back to the service that initiated the webhook call, typically acknowledging receipt or providing processed data.

Prerequisites/Requirements

  • An n8n instance (cloud or self-hosted) to run the workflow.
  • A service or application capable of sending HTTP POST requests to a webhook URL.

Setup/Usage

  1. Import the workflow:
    • Copy the provided JSON code.
    • In your n8n instance, go to "Workflows" and click "New".
    • Click the three dots in the top right corner and select "Import from JSON".
    • Paste the JSON and click "Import".
  2. Activate the Webhook:
    • The "Webhook" node will automatically generate a unique URL when the workflow is activated.
    • Copy this URL.
  3. Configure the "Edit Fields (Set)" node:
    • By default, this node adds a field named newField with the value newValue.
    • You can customize this node to transform, add, or remove any data fields as needed for your specific use case.
  4. Configure the "Respond to Webhook" node:
    • This node is set to return the data from the previous "Edit Fields (Set)" node. You can modify its settings to return a specific status code, headers, or a different JSON structure.
  5. Activate the workflow: Click the "Activate" toggle in the top right corner of the n8n editor.
  6. Send a test request: Use a tool like Postman, cURL, or your application to send an HTTP POST request to the webhook URL obtained in step 2.
    • Example cURL command:
      curl -X POST -H "Content-Type: application/json" -d '{"message": "Hello from external service!"}' YOUR_WEBHOOK_URL
      
  7. Observe the execution: You can see the workflow execution history and the data flowing through each node in n8n's execution view. The external service should receive the configured response.

Related Templates

Generate verified job offer letters with OpenAI, Gmail and Slack

📄 AI-Powered Verified Job Offer Letter Generator Description Creating job offer letters manually is time-consuming, error-prone, and difficult to scale. This AI-powered workflow automates the entire job offer letter process — from validating candidate emails to generating and delivering professional PDF offer letters. This intelligent workflow eliminates repetitive drafting, reduces human errors, and ensures offer letters are sent only to verified email addresses, helping HR teams move faster while maintaining professionalism and accuracy. --- What This Workflow Does Transforms manual offer letter creation into a seamless, automated HR process: 📝 Capture Candidate & Job Details – Receives candidate name, email, job role, salary, joining date, and company details via webhook or form. 📧 Email Verification – Validates the candidate’s email address before sending any communication to prevent delivery errors. 🧠 AI-Powered Offer Letter Generation – Uses AI to generate a clear, professional, and structured job offer letter. 📄 HTML Offer Letter Formatting – Converts the AI-generated content into a clean and readable HTML layout. 📑 PDF Generation – Automatically converts the offer letter into a professional PDF document. 📧 Offer Letter Delivery – Sends the PDF offer letter directly to the verified candidate email. 🗂️ Document Storage – Saves a copy of the offer letter for internal records and future reference. 🔁 Confirmation Response – Returns a success response confirming completion. --- Key Features 🤖 AI Offer Letter Writing – Generates professional, ready-to-send offer letters automatically. 📧 Email Verification Built-In – Ensures offer letters are only sent to valid email addresses. 📑 PDF Generation – Creates clean, official-looking offer letters. ⚙️ End-to-End Automation – No manual drafting, formatting, or sending required. 📂 Centralized Record Keeping – Keeps copies of all generated offer letters. 🔄 Flexible Triggering – Can be triggered from HR systems, forms, or internal tools. --- Perfect For 🏢 HR & Recruitment Teams – Automate offer letter creation and delivery. 🚀 Startups & Growing Companies – Send professional offer letters without extra admin work. 🏫 Staffing & Hiring Agencies – Generate offer letters quickly for multiple candidates. 💻 Remote & Distributed Teams – Ensure consistent communication across locations. 🧠 Operations Teams – Maintain accurate records and reduce manual errors. --- What You’ll Need Required Integrations 🌐 Webhook Trigger – Receives candidate and job details. 🤖 OpenAI – Generates offer letter content. 📧 VerifyEmail – Validates candidate email addresses. 📄 HTMLCSS to PDF – Converts HTML into PDF offer letters. 📧 Gmail – Sends the offer letter email. ☁️ Google Drive (optional) – Stores generated offer letters. --- Optional Enhancements 🎨 Brand Customization – Add company logo, colors, and formatting to offer letters. 🧾 HR System Integration – Connect with ATS or HR tools for automatic triggering. 🌍 Multilingual Offer Letters – Generate offer letters in different languages. 🔐 Approval Step – Add internal approval before sending offer letters. 📊 Audit Logging – Store offer letter data in Google Sheets or databases. 📎 Additional Attachments – Include policies or onboarding documents with the offer letter. --- Quick Start 1️⃣ Import the workflow template into your n8n workspace 2️⃣ Connect credentials for OpenAI, VerifyEmail, Gmail, and HTMLCSS to PDF 3️⃣ Send test candidate data to the webhook 4️⃣ Review the generated PDF offer letter 5️⃣ Activate the workflow and start sending offer letters automatically --- Customization Options 1️⃣ Offer Letter Tone – Adjust AI prompt for formal or friendly tone. 2️⃣ Company Branding – Customize HTML layout and styling. 3️⃣ Email Content – Modify subject line and email message. 4️⃣ PDF Layout – Adjust spacing, fonts, and structure. 5️⃣ Storage Location – Change where offer letters are saved. 6️⃣ Validation Rules – Extend email or input checks. --- Expected Results ⚡ Faster Hiring Process – Generate offer letters in minutes. 🤖 Consistent Quality – Every offer letter follows a professional format. 📧 Error-Free Delivery – Verified emails reduce failed communication. 🗂️ Organized Records – All offer letters stored automatically. 🏢 Professional Candidate Experience – Clean, official documents every time. --- Workflow Structure Visualization 📝 Candidate & Job Details ↓ 📧 Email Verification ↓ 🧠 AI Offer Letter Generation ↓ 📄 HTML Formatting ↓ 📑 PDF Conversion ↓ 📧 Email Delivery ↓ 🔁 Confirmation Response --- 🚀 Ready to Automate Job Offer Letters? Import this template today and let AI handle offer letter creation, verification, and delivery — so your team can focus on hiring the right talent faster. ✨ ---

Jitesh DugarBy Jitesh Dugar
5

Create an AI Telegram bot using Google Drive, Qdrant, and OpenAI GPT-4.1

How it works This workflow creates an intelligent Telegram bot with a knowledge base powered by Qdrant vector database. The bot automatically processes documents uploaded to Google Drive, stores them as embeddings, and uses this knowledge to answer questions in Telegram. It consists of two independent flows: document processing (Google Drive → Qdrant) and chat interaction (Telegram → AI Agent → Telegram). Step-by-step Document Processing Flow: New File Trigger: The workflow starts when the New File Trigger node detects a new file created in the specified Google Drive folder (polling every 15 minutes). Download File: The Download File (Google Drive) node downloads the detected file from Google Drive. Text Splitting: The Split Text into Chunks node splits the document text into chunks of 3000 characters with 300 character overlap for optimal embedding. Load Document Data: The Load Document Data node processes the binary file data and prepares it for vectorization. OpenAI Embeddings: The OpenAI Embeddings node generates vector embeddings for each text chunk. Insert into Qdrant: The Insert into Qdrant node stores the embeddings in the Qdrant vector database collection. Move to Processed Folder: After successful processing, the Move to Processed Folder (Google Drive) node moves the file to a "Qdrant Ready" folder to keep files organized. Telegram Chat Flow: Telegram Message Trigger: The Telegram Message Trigger node receives new messages from the Telegram bot. Filter Authorized User: The Filter Authorized User node checks if the message is from an authorized chat ID (26899549) to restrict bot access. AI Agent Processing: The AI Agent receives the user's message text and processes it using the fine-tuned GPT-4.1 model with access to the Qdrant knowledge base tool. Qdrant Knowledge Base: The Qdrant Knowledge Base node retrieves relevant information from the vector database to provide context for the AI agent's responses. Conversation Memory: The Conversation Memory node maintains conversation history per chat ID, allowing the bot to remember context. Send Response to Telegram: The Send Response to Telegram node sends the AI-generated response back to the user in Telegram. Set up steps Estimated set up time: 15 minutes Google Drive Setup: Add your Google Drive OAuth2 credentials to the New File Trigger, Download File, and Move to Processed Folder nodes. Create two folders in your Google Drive: one for incoming files and one for processed files. Copy the folder IDs from the URLs and update them in the New File Trigger (folderToWatch) and Move to Processed Folder (folderId) nodes. Qdrant Setup: Add your Qdrant API credentials to the Insert into Qdrant and Qdrant Knowledge Base nodes. Create a collection in your Qdrant instance (e.g., "Test-youtube-adept-ecom"). Update the collection name in both Qdrant nodes. OpenAI Setup: Add your OpenAI API credentials to the OpenAI Chat Model and OpenAI Embeddings nodes. (Optional) Replace the fine-tuned model ID in OpenAI Chat Model with your own model or use a standard model like gpt-4-turbo. Telegram Setup: Create a Telegram bot via @BotFather and obtain the bot token. Add your Telegram bot credentials to the Telegram Message Trigger and Send Response to Telegram nodes. Update the authorized chat ID in the Filter Authorized User node (replace 26899549 with your Telegram user ID). Customize System Prompt (Optional): Modify the system message in the AI Agent node to customize your bot's personality and behavior. The current prompt is configured for an n8n automation expert creating social media content. Activate the Workflow: Toggle "Active" in the top-right to enable both the Google Drive trigger and Telegram trigger. Upload a document to your Google Drive folder to test the document processing flow. Send a message to your Telegram bot to test the chat interaction flow.

KonstantinBy Konstantin
167

Automate property inspections and reporting with OpenAI, Google Sheets and Slack

Who’s it for Property management companies, building managers, and inspection teams who want to automate recurring property inspections, improve issue tracking, and streamline reporting. How it works / What it does This n8n workflow schedules periodic property inspections using a Cron trigger. AI generates customized inspection checklists for each property, which are sent to assigned inspectors. Inspectors submit photos and notes via a connected form or mobile app. AI analyzes these submissions to flag issues based on priority (high, medium, low). High-priority issues are routed to managers via Slack/email, while routine notes are logged for reporting. The workflow also generates weekly or monthly summary reports and can optionally notify tenants of resolved issues. How to set up Configure the Cron trigger with your desired inspection frequency. Connect Google Sheets or your CRM to fetch property and tenant data. Set up OpenAI node with your API key and checklist generation prompts. Configure email/SMS notifications for inspectors. Connect a form or mobile app via Webhook to collect inspection data. Set up Slack/email notifications for managers. Log all inspection results, photos, and flagged issues into Google Sheets. Configure summary report email recipients. Requirements n8n account with Google Sheets, Email, Slack, Webhook, and OpenAI nodes. Property and tenant data stored in Google Sheets or CRM. OpenAI API credentials for AI checklist generation and note analysis. How to customize the workflow Adjust Cron frequency to match inspection schedule. Customize AI prompts for property-specific checklist items. Add or remove branches for issue severity (high/medium/low). Include additional notification channels if needed (Teams, SMS, etc.). Workflow Use Case Automates property inspections for property management teams, ensuring no inspections are missed, AI-generated checklists standardize the process, and potential issues are flagged and routed efficiently. Saves time, improves compliance, and increases tenant satisfaction. Created by QuarterSmart | Hyrum Hurst

Hyrum HurstBy Hyrum Hurst
71