AI voice agents for class booking and reminder calls verify the member, book only spots the class timetable returns or add a waitlist entry, and read back what the system confirmed. Reminder calls let members keep or change a spot. Fees come from the club's written policy, and adding an offer to a reminder changes the consent rule.
Key Takeaways
- Offer only open spots your gym software returns, then read back its confirmation.
- Reminder calls free unwanted spots so the booking system can fill them.
- An offer in a reminder generally makes it a marketing call.
This post is part of our guide to AI voice agents for gyms and fitness studios. The guide's section "Members on the schedule: class booking and reminders" sums up this call in one line: "The class booking call books only spots the timetable returns, and it reads back what the system confirmed." Here is that call in full, run in Dograh, an open-source, self-hostable voice agent platform.
Why class calls suit a voice agent
Class calls have a clear answer that lives in one place, the timetable, so an agent can handle them without guessing.
The volume is real. The Health & Fitness Association's 2026 consumer report, based on a yearly survey of about 18,000 US residents, estimated 7 billion visits to US fitness facilities in 2025 by 81 million members. Many of those visits are classes with a fixed number of spots, and members phone to grab one or give one up.
Each of those calls comes down to whether a spot is open and whether the member can have it. The agent reads that answer from your gym management software and writes the result back. It never keeps its own copy of the timetable, so it cannot offer a spot someone else took a minute ago.
This post covers members who already belong. A prospect's first visit or trial class is booked through the flow in AI voice agents for free-trial and tour booking at gyms.
Booking a spot from the live timetable
The agent verifies the member, checks the class in your gym software, and books only what comes back.
A booking goes on the member's account, so the agent first finds the member by name and then asks for an approved check, such as date of birth or the last digits of the member number. A phone number or a name only finds the record. Until the check passes, the agent says nothing about the member's existing bookings.
Then an HTTP API tool asks your gym software for open spots in the class the member wants. If the 6 p.m. spin class is full, the agent offers what the system returned instead, such as a later class or a place on the waitlist. The tool's Custom Message, text or a recorded clip, plays once just before the tool runs. HTTP API tools wait 5 seconds by default and do not retry, so keep the lookup fast.

Before writing, the agent reads back the class, day, time and location, and the member confirms. A second HTTP API tool writes the booking, and the agent reads out the confirmation only after the system returns it. Add a Preset Parameter named workflow_run_id, type Number, with the value {{initial_context.workflow_run_id}}, so a retried request never books the same member into a class twice. Our post on booking meetings mid-call walks through the same read-then-write pattern with a calendar API.
One agent can answer for every club. Several phone numbers can point at the same agent, and Pre-Call Data Fetch receives the dialled number as to_number, so your endpoint returns that location's timetable. Personal training sessions work the same way, with the trainer's calendar as the source of open times.
Waitlists and freed spots
The agent adds the waitlist entry, and your booking system decides who gets a spot when one opens. A waitlist place is written like a booking, through an HTTP API tool, and the agent reads back the position or status the system returns. It never promises the member will get in.
When a spot frees up and you want a call instead of an app notice, your system can start one through the API Trigger and pass in the class. The agent verifies the member, offers that one spot in the class they waitlisted for, and writes the answer back. Dograh has no SMS tool, so any confirmation text comes from your booking system.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Reminder calls that settle the spot
A reminder call goes to a member who booked, and its job is to settle the spot before class starts. Your booking system exports the next day's bookings, or starts each call itself through the API Trigger. A list goes to Campaigns, whose calling hours run in one time zone, so a chain across time zones runs one campaign per zone. Retries run from 0 to 10, 2 by default, so set them to match how often you want to call.
The greeting names the club. The agent asks for the member and runs the same approved check before it names the class. Pre-Call Data Fetch re-reads the booking when the call connects, so if the member cancelled in the app an hour ago, the agent can change what it says. It cannot skip the call, and on outbound calls it runs after the person answers.
The member can keep the spot or change it. A move books another open class, and giving it up frees the spot for the waitlist. Each answer is written back during the call. Late-cancel and no-show fees are mentioned only as the club's written policy states them, from the Knowledge Base, never as a figure the agent works out.
Voicemail handling is off by default. Turn it on in Settings under Voicemail & Screening, then choose "Disconnect the call", or "Leave a message" with only the club's name and a callback number, since anyone in the household may play it. Healthcare No-Show Reduction explains why a call that can move or release a booking does more than a one-way message.
Consent, and the offer that changes it
A class reminder is generally a service call, and it stays one only while it is about the booked class. This section is general information, not legal advice.
In its February 2024 declaratory ruling, the Federal Communications Commission (FCC) confirmed that the TCPA's restrictions on the use of "artificial or prerecorded voice" "encompass current AI technologies that generate human voices." Under 47 CFR 64.1200(a)(1)(iii), such a call to a mobile number needs the "prior express consent of the called party", unless it is made for emergency purposes. For home lines, (a)(3)(iii) lets a commercial call with no advertisement go without consent if the caller "makes no more than three calls within any consecutive 30-day period to the residential line and honors the called party's request to opt out". The membership agreement can record consent to reminder calls.
Add an offer to the reminder, such as a discounted personal training pack, and it generally becomes a marketing call that needs prior express written consent. Those calls follow AI voice agents for gym membership sales and win-back. Confirm your position with counsel.
Dograh keeps no do-not-call list. When a caller opts out, an HTTP API tool writes it to your own list, and you remove those numbers before the next campaign upload. The do_not_call call tag records the request but never blocks a later call.
Self-hosted Dograh has no per-minute platform fee (servers, model keys and phone minutes still cost); Dograh Cloud has a 1¢-a-minute platform fee.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Glossary
- API Trigger
- A Dograh URL your own system calls to start an outbound call, passing in details such as the member and the class. The booking system uses it for reminders and freed spots, so it decides who is called.
- Late-cancel fee
- A charge in the club's written policy for giving up a class spot too close to the start. The agent mentions it only as the policy in the Knowledge Base states it.
- Prior express consent
- Permission given before the call to be called at that number. Under 47 CFR 64.1200, a class reminder in an AI voice to a mobile generally needs it, and the membership agreement can record it.
- Retry-safe booking
- A booking request that carries the call's workflow_run_id as a Preset Parameter, so the gym software can ignore a repeated request instead of booking the member twice.

