Platform

Booking System

Let your AI agents book real appointments during calls, with slot management, business hours, and CRM sync built in. No third-party tools required.

Overview

Vaaad's native booking system lets your AI agents capture and confirm real appointments during live calls. When a caller says “Can I book a demo?” or “Call me back tomorrow”, the agent offers available slots, the caller confirms a time, and the booking is created instantly in your dashboard.

You can also point your agent at Cal.com if you already use it. Cal.com event types become the slot pool that the agent works with. Native and Cal.com are configured per agent, so you can mix them across your team.

Real slot booking
Agent books actual time slots. No double bookings possible.
Business hours
Set open and close times per day. The agent never books outside them.
CRM sync
Every booking fires to your webhook endpoints automatically.
Live during calls
Slots are injected into the agent's context before each call.

How it works

When a call is dispatched, your agent automatically fetches available slots from the booking source you configured (native or Cal.com). These slots are injected directly into the agent's system prompt, so it genuinely knows what times are open without having to call any external API during the conversation.

When the caller agrees to a time, the agent calls an internal function that atomically claims that slot, preventing two agents from booking the same time if campaigns are running simultaneously. The caller receives a verbal confirmation on the call, and you see the booking instantly in your dashboard.

Call flow example
CallerCan I schedule a demo with your team?
AgentAbsolutely! I have slots available today at 3pm and 4:30pm, or tomorrow at 10am, 11:30am, and 2pm. Which works best for you?
CallerTomorrow at 11:30 works.
AgentDone! Your demo is confirmed for tomorrow at 11:30 AM. You'll receive a confirmation shortly. Is there anything specific you'd like to cover in the demo?

Setting up native booking

Booking is disabled by default. You enable and configure it in Settings, Booking tab. The setup takes about 2 minutes.

Step 1. Enable booking

Go to Settings, Booking and toggle Native Booking System to Enabled. Without this, agents will still capture booking requests as notes (so you can follow up manually), but they won't offer real time slots or prevent double booking.

Step 2. Configure your slots

Set these parameters to match how you operate:

  • Slot duration. How long each appointment is (15, 20, 30, 45, or 60 minutes). Default is 30 minutes.
  • Buffer between slots. Gap between back-to-back bookings, 0 to 30 minutes. Useful for preparation, notes, or travel time. Default is 10 minutes.
  • Max bookings per day. A hard cap on total daily bookings regardless of how many slots are open. Default is 10.
  • Book up to X days ahead. How far in advance customers can book (1 to 30 days). Default is 7.

Step 3. Set business hours

Set your open and close time for each day of the week. Toggle days off for days you don't operate. The system shows you how many slots that generates per day based on your duration and buffer settings, so you can see exactly what the agent will offer callers before going live.

For example: 9am to 6pm with 30-min slots and 10-min buffer gives you 12 slots per day.

Step 4. Block specific dates

If you have public holidays, planned days off, or pre-booked events, add those dates to the Blocked Dates list. The agent won't offer slots on those days even if they fall on regular business days.

Step 5. Write your confirmation message

This is the exact sentence your agent will say after a booking is confirmed. Make it natural and on-brand. For example: “Perfect, you're all set for [time]. We'll see you then. Is there anything else I can help with?”

Step 6. Save and test

Save your settings, then make a test call to your own number. Ask the agent to book a demo or schedule a callback. It should offer real available slots and confirm a booking that appears in your Bookings page within seconds.

Using Cal.com instead

If you already manage your team's calendar in Cal.com, you can use it as the booking source for any agent. The agent fetches availability from your Cal.com event types and creates bookings there. Your existing Cal.com automations (reminders, conferencing links, follow-ups) all keep working.

Connecting Cal.com

  1. Go to Settings, Integrations
  2. Connect your Cal.com account using your API key
  3. Open any agent and scroll to the Booking section
  4. Switch from “Native” to “Cal.com”
  5. Pick which Cal.com event type this agent should book into
  6. Save

The native settings (slot duration, hours, max per day) don't apply when an agent is using Cal.com. Cal.com's own availability rules are the source of truth.

Configuring your agent's system prompt

Once booking is enabled, available slots are automatically injected into every call. You don't need to add anything specific to your system prompt for basic booking to work. However, you can improve the experience by being explicit in your prompt:

Recommended system prompt addition
If the caller expresses interest in a demo, consultation, or follow-up call, 
proactively offer to book a slot. Always use the available slots provided to you, 
never invent or suggest times not in the list. Once a time is agreed, 
confirm it clearly including the day and time before ending the call.

Booking types

Your agent can capture four types of bookings, each shown differently in your dashboard:

  • Appointment. A scheduled meeting at a specific time. Uses real slot validation.
  • Demo. A product demonstration. Also uses real slots.
  • Callback. Caller requests to be called back. No slot validation, just a request with preferred time noted.
  • Lead. Captured when a caller shows strong interest or asks about pricing. No time booking, just a lead record for follow-up.

CRM integration

Every booking automatically fires a call.booking_created event to all your active CRM webhook endpoints. The payload includes the booking type, requested time, contact details, and the full call summary.

Bookings flow automatically into HubSpot, Salesforce, Zoho, Pipedrive, or any tool connected via webhook. That includes Zapier and Make automations.

Managing bookings

All bookings appear in the Bookings page in your dashboard. From there you can:

  • View all upcoming and past bookings with full contact info and notes
  • Filter by status: Pending, Confirmed, Cancelled
  • Confirm or cancel individual bookings
  • See which bookings have been synced to your CRM

Slot bookings (appointments and demos) are automatically marked Confirmed since the slot was agreed live on the call. Callback and lead bookings start as Pending and need manual confirmation.

Preventing double bookings

Vaaad prevents double bookings at the database level using atomic transactions. When two agents try to claim the same slot simultaneously (which can happen during bulk campaigns), only the first succeeds. The second agent immediately offers the next available slot to the caller without any interruption or error on the call.

Coming soon: Calendly and Google Calendar

Calendly and Google Calendar integrations are in development. Once connected, your agents will pull real-time availability from those calendars and create bookings there directly. Cal.com is already supported as described above.