Booking & OpenDental3 min readUpdated May 6, 2026

How Salva fetches available appointment slots

When a patient asks for an opening, Salva queries OpenDental in real time for actual availability. Here's how the query works and what controls what you offer.

Booking & OpenDental

How Salva fetches available appointment slots

When a patient asks for an opening, Salva queries OpenDental in real time for actual availability. Here's how the query works and what controls what you offer.

Salva AI · Learn

What happens mid-call

When a caller says "I'd like to book a cleaning," Salva:

From request to offered times
  1. Look up the service duration
    Salva finds the typical length for the service in your Services tab — e.g. a cleaning is 60 minutes.
  2. Query OpenDental live
    It calls the appointment-slot API for the next N days — your booking window. There is no cached schedule.
  3. Filter to slots that fit
    Only openings that fit the full duration during your business hours survive the filter.
  4. Offer two or three out loud
    Salva reads back the best options for the caller to pick from.

The whole thing takes under 3 seconds.

The booking window

Under Settings → Integrations → Booking window, you set how many days ahead Salva can look. Options are 3, 7, or 14 days, defaulting to 7.

Salva can only offer slots within the next 3 days. Good for practices with very tight schedules or same-week booking workflows.

Most practices work well with 7 days — enough runway to find availability without booking so far ahead that patients forget.

How services map to durations

Each entry in your Services tab has a name and a typical duration (e.g., "New patient exam — 90 minutes"). When the caller asks about a service, Salva uses that duration to size the slot query.

If a service has no duration set, Salva falls back to 60 minutes. Get this right during the onboarding flow — accurate durations mean fewer double-books and tighter scheduling.

What the AI never offers

Salva never offers:

  • A slot that doesn't fit the service's duration
  • A slot outside your configured business hours
  • A slot already booked in OpenDental
  • A slot on a holiday or closed day (per your hours config)

This is enforced at the query layer — not relying on the AI to "know" the constraints.

When there are no slots

If the query returns zero matches, Salva tells the caller honestly and offers a callback instead of inventing a time. The most common reason for zero slots is that no provider schedules have been set up in OpenDental — see OpenDental provider schedule setup for the fix.

Where a booked request lands

In pending-review mode, Salva collects the appointment and drops it into your dashboard for one-tap approval — nothing books until you say so:

Action required
Salva sorts every conversation into a queue you can clear.
S
Sarah Miller
New patient exam · Requested Tue 2:00 PM
DismissReview
D
David Chen
Teeth whitening · Requested today 10:45 AM
DismissReview
J
Jessica Ross
Routine cleaning · Requested Wed 9:30 AM
DismissReview
Pending bookings queue up in your dashboard for review.

Published May 6, 2026

Related guides