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.
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.
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
- Go to Settings, Integrations
- Connect your Cal.com account using your API key
- Open any agent and scroll to the Booking section
- Switch from “Native” to “Cal.com”
- Pick which Cal.com event type this agent should book into
- 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:
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.
.png)