Booking & OpenDental2 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:

  1. Looks up the typical duration for "cleaning" in your Services tab (e.g., 60 minutes).
  2. Calls OpenDental's appointment-slot API for the next N days (your booking window).
  3. Filters down to slots that fit a 60-minute block during business hours.
  4. Offers two or three options out loud.

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.


Published May 6, 2026

Related guides