Skip to main content
What you’ll build: a Voice Agent that, while the caller is still on the line, checks a real calendar for open slots, offers them out loud, and books the appointment the caller picks — all before the call ends. The caller hangs up with a confirmed day and time, not a promise that “someone will call you back.” This recipe illustrates the mechanism with a banking scenario: an inbound caller says “I’d like to speak with someone about a mortgage,” and the agent offers to book them onto an advisor’s calendar right then. That’s an example, not a banking-specific feature — the two tools this recipe uses are generic. Any team with a Calendly, Cal.com, or Chili Piper calendar connected can attach them to any Voice Agent, for any kind of appointment.
Revve has no banking-specific compliance certifications and no built-in advisor-routing or branch logic. Anything in this recipe that sounds bank-specific — “speak with an advisor,” “mortgage,” “branch” — is scenario dressing you write into the prompt, not a product feature. The calendar-checking and booking tools themselves are generic: they read and write to whatever calendar app your team connects.
Time: about 20–30 minutes, assuming you already have a published Voice Agent and a calendar app you can connect.

Prerequisites

  • A published Voice Agent.
  • A calendar app connected under Apps in the dashboard, on a plan that supports the “book meeting” feature. Pick one:
    • Calendly — click Connect Calendly and complete the OAuth authorization on Calendly’s site. No manual fields.
    • Cal.com — fill in Alias (a friendly name, e.g. “[Advisor Team Calendar]” — useful if you’ll connect more than one), API Key (click Validate before saving), Event Length (minutes), and Event Type ID.
    • Chili Piper — fill in Tenant ID and Subdomain, then choose a mode with the Use Routing toggle: routing mode needs a Router Slug and API Key (plus an optional Router Form Mapping if you want to override the default email/first name/last name mapping); direct-link mode needs an Owner Booking Link Field and a Direct Link Form Mapping.
If you already have a calendar app connected for another agent, you can reuse it — skip to Step 2.

Step 1: Confirm your calendar app is connected

Go to Apps in the dashboard and check that your Calendly, Cal.com, or Chili Piper connection shows as active. If it isn’t there yet, connect it now using the fields above — the two tools you add in the next steps can’t do anything without a calendar app behind them.
If you manage appointments for more than one team or branch, consider a separate Cal.com profile (or Chili Piper Router Slug) per team, and a separate pair of tools per Voice Agent. One calendar mixing every team’s slots makes it hard to write clean prompt instructions later.

Step 2: Add the “Check Calendar Availability” tool

Open your Voice Agent, go to Advanced SettingsTools. This tab starts empty: The Tools tab in a Voice Agent's Advanced Settings, in its empty state — a "Tools" header, a + Add button, and an empty-state panel with "No tools added yet" and a + Add First Tool button Click + Add (or + Add First Tool) and choose Check Calendar Availability from the dropdown. This preset and the one in Step 3 are the only two items specific to Voice Agents — Chat Agents’ Tools dropdown doesn’t show them, because chat agents book meetings through a different mechanism (a “Schedule Meeting” node in the Conversational Flow builder — see the note at the end of this step). Configure it: The "Create Check Calendar Availability Tool" dialog, configured with Name "CheckAdvisorAvailability" and Calendar set to Cal.com, plus the Global Tool toggle and Tool Call Message field If you selected a Chili Piper calendar, a Chili Piper Booking Method field appears: choose Router to submit the caller’s data before assignment, or Direct Link to check availability against the configured user or contact owner link. Router is the better default if you route callers to different advisors by criteria you haven’t decided yet on the call; Direct Link is simpler if every call maps to one fixed advisor or link.
The Name field can’t contain spaces — the UI strips them as you type — because this is the literal name the agent’s underlying model uses to call the tool. Use a descriptive, code-like name (CheckAdvisorAvailability, not Check Availability), and keep it consistent with the name you reference in your System Prompt in Step 4.
Voice Agents can’t use the Schedule Meeting flow node that Chat Agents use — even Voice Agents built on the Conversational Flow engine have that node type filtered out of their node picker. These two Tools-tab presets are the only way to attach calendar booking to a Voice Agent. If you’ve already built the chat-side version of this (Build a Lead Qualification Agent That Books Meetings), it’s the same underlying calendar apps, a different attachment point.

Step 3: Add the “Book on the Calendar” tool

Still on the Tools tab, click + Add again and choose Book on the Calendar. Configure it the same way: Point both tools at the same calendar — the agent needs to book into the same place it just checked, or it can end up offering a slot from one calendar and writing the appointment into another. If you chose Chili Piper, set the same Chili Piper Booking Method here as you did in Step 2.

Step 4: Tell the agent when and how to use the tools

Adding the tools makes them available; the agent still needs instructions for when to reach for them and what to say around them. Add this to your System Prompt (Single Prompt engine) or to the Instruction of the node where booking should happen (Conversational Flow engine):
Adjust the bracketed parts for your scenario — the tool names here (CheckAdvisorAvailability, BookAdvisorAppointment) must match exactly what you typed into the Name field in Steps 2 and 3.
Step 3 of the instructions — confirming the time back to the caller before calling the booking tool — is worth keeping even though it costs one extra conversational turn. It’s the difference between the agent booking what it misheard and booking what the caller actually said.

Test scenarios

Run these from Preview before publishing: Fix issues at the field level: wrong or invented times → sharpen the instruction’s rule about only offering times the tool returned; booking the wrong calendar → recheck that both tools point at the same Calendar value; tool never fires → check the Name fields match what the prompt calls, with no spaces.

Variations

  • Outbound callback booking: the same two tools work on outbound calls — e.g. a callback campaign where the agent says “I have some times open this week, would any of these work?” instead of waiting for the caller to ask. The prompt instructions from Step 4 apply unchanged.
  • Inside a Campaign: pair this Voice Agent inside a Campaign the same way Build a Payment Reminder Campaign pairs a voice and SMS agent. Note the difference in mechanism: that guide’s “Branch appointment reminder” variation reminds and reschedules an appointment that already exists (a call now, an SMS fallback later); this recipe books a brand-new appointment live, during the call itself. Use this recipe for the booking step, and the campaign guide’s pattern if you also want reminder/reschedule follow-up around it.
  • Router vs. Direct Link (Chili Piper): Router costs one more step (submitting data before assignment) but lets you route callers dynamically; Direct Link is faster to set up and simpler to reason about, but ties every booking to one fixed link. Start with Direct Link for a single advisor or team; move to Router once you need the agent to route by criteria it learns during the call.

What’s Next