Booking programs let your members book and pay for individual time slots, like a 30-minute private lesson with a specific coach, directly in LeagueApps. Families pick a participant, choose the times that work for them, and check out in one transaction. The sessions then show up on their schedule next to games and practices.
This article explains how Booking programs are structured, how setup works for admins, what the experience looks like for members, and what isn't available yet. Lessons are the main example throughout, since private and small-group lessons are what the Booking program type was built for first.
- What is a Booking program?
- When to use a Booking program
- How it works for admins
- How it works for members
- Payments, discounts, and refunds
- What's not available yet
- Moving from Classic Bookings
What is a Booking program?
Booking is a program type, just like League, Camp, or Class. Everything you rely on in a LeagueApps program, including registration, form fields, waivers, invoices, discount codes, and reporting, works in a Booking program too. The difference is that members register into a specific time slot rather than into a full season or session.
A Booking program has three levels:
- Booking program: the overall offering members find on your site. For example, "Private Hitting Lessons."
- Booking type: a specific kind of session within the program, with its own price, length, capacity, and staff. For example, "30-Minute Private Lesson" and "60-Minute Semi-Private Lesson (up to 3 players)."
- Slot: a single bookable time on the calendar for a booking type. For example, Tuesday from 4:00 to 4:30 PM with Coach Rivera at the North Cage.
Each slot a member books creates its own registration and its own invoice. If a family books four lessons, they'll have four registrations, even though they paid for all four in a single checkout.
| ⚠️ You may hear this feature called Lessons in LeagueApps announcements. In the Management Console and on your member site, it's labeled Booking. |
When to use a Booking program
Use a Booking program when members should choose their own time, one session at a time, and may return for additional registrations within the same program. Common lesson setups include:
- Private one-on-one lessons with a coach or instructor
- Semi-private or small-group lessons with a set number of spots
- Skills or position-specific training sessions (pitching, goalkeeping, serving)
- Player evaluations booked by time
A different program type is usually a better fit when:
- Everyone attends the same schedule for a set period. Use a Class, Camp, or Event instead.
- Members pay a set amount every month for ongoing training. Use a program with Recurring Billing. See the article Recurring Billing: An Overview.
- Members should request a time and have your staff decide. Collect requests through a regular program, then add the member to the right slot in your Booking program once the time is set.
How it works for admins
Create the Booking program
Create a new program and choose Booking as the program type. The program setup fields match the ones you already use for other program types, so most of this will feel familiar. Form fields, waivers, and discount codes are set at the program level.
Add booking types
Add a booking type for each kind of session you offer. Each booking type holds the defaults its slots will use:
- Price per slot
- Capacity (how many participants can book the same slot)
- Location and Sub-location
- Program staff who teach this type of session
- Confirmation messages members see after registering
Use the booking type's description area to introduce your instructors, including bios, credentials, and what a session covers. This is what families read when deciding what to book.
Add program staff
Register your coaches or instructors as program staff on each booking type they teach. A booking type can have as many staff as you need.
Each slot can have one staff member assigned, or none. You can create slots without staff and assign someone later. Once a staff member is assigned, the slot appears on their calendar on the web and in the LeagueApps Play app.
Add slots
Use the Add Slots wizard to create bookable times in bulk. It has two modes:
- Recurring: choose a start and end date, the days of the week, and a start and end time. LeagueApps creates a slot for each matching day. This is the fastest way to build out a coach's weekly lesson schedule.
- Individual: add one-off slots one at a time, then click Add to Schedule to create them all at once.
Slots start with the booking type's price, capacity, location, and staff, and you can change these for a single slot afterwards. New slots are named after their booking type, and you can rename any slot.
| ⚠️ Changing a booking type's price or capacity doesn't update slots you've already created. Changing a single slot's price only applies to new registrations. |
Control who can see and book slots
Slots follow the visibility of their booking type and program. If the booking type is visible, members can book its slots. If the program or booking type is private or unpublished, its slots are too. You can't publish or hide individual slots.
Manage slots and participants
From the program's Calendar tab, you can view slots in a list, calendar, or location view and filter by booking type, staff, or location. Open a slot's Actions menu to:
- Manage Participants
- Message participants
- Manage Staff
- Edit booking slot to change the date, time, location, or staff
- View invoice(s)
- Cancel booking slot
Rescheduling, cancelling, and removing a participant are done by an admin. Drag-and-drop on the calendar is turned off for Booking programs so slots can't accidentally be moved to a time you didn't set up.
Register a member on their behalf
If a family calls or emails to book, you can register the participant into a slot from the Management Console using manual registration. This creates the registration and its invoice, and you can collect payment from the invoice. Manual registration books one slot at a time.
How it works for members
Here's how a parent booking lessons for their child works.
- Find the Booking program on your site and choose a booking type. Each booking type shows the staff member, session length, price per session, and number of open slots.
- Log in and choose which participant they're booking for.
- Browse available slots by day. Full slots are grayed out and can't be selected. Families can filter by staff member to find times with a specific coach.
- Add one or more slots to the basket. The basket can hold slots from different booking types, different Booking programs, and different children at the same time.
- Complete form fields and waivers. Form field questions are asked once per booking type for each participant. If a family books a second booking type in the same program, they can check a box to reuse their answers and edit anything that's different. Waivers are signed once per program per checkout.
- Check out and pay for everything in the basket in one transaction.
After booking, the family gets a confirmation email, and each session appears in My Schedule, on their member dashboard, and in the LeagueApps Play app. Reminder emails go to both the participant and the assigned staff member before each session.
| ⚠️ Slots aren't held while a family is still shopping. Slots are first come, first served, and availability is checked again at payment. If a slot fills up before checkout, the family is told which slot is no longer available and can pick another time. |
Payments, discounts, and refunds
Payment timing
You choose when payment is due in the program's payment settings:
- During Registration: families pay when they book. This is the default.
- No Payment Deadline: families can book now and pay later from their invoice.
Free slots don't need a checkout. Families go straight from form fields and waivers to their confirmation.
Discount codes
Discount codes are set at the Booking program level. A family can use one discount code per program in their basket, and the code only applies to slots from the program it was created for.
Invoices and refunds
Every booked slot has its own invoice, even when several slots were paid for together. To refund a lesson, open that slot's invoice and issue a full or partial refund using the same refund tools you use today.
| ⚠️ Refunding an invoice doesn't cancel the registration or open the slot back up. If a family is cancelling, refund the invoice and then remove the participant from the slot (or cancel the slot) as a separate step. |
Reporting
Booking revenue shows up in the reports you already use. Filter the Transaction Report, Invoice Report, or registration reports by the Booking program type to see lesson activity.
What's not available yet
The first release of Booking programs focuses on admin-managed lessons. The following aren't available today:
- Members cancelling or rescheduling their own bookings (admins handle these)
- Instructors setting their own availability
- More than one staff member on a single slot
- Packages or punch passes (buying a set number of lessons up front)
- Account credits
- Members booking a recurring series in one step (admins can create recurring slots, but families book each slot)
- Automatic facility reservations through LeagueApps Facilities
- Usage limits on discount codes
- Booking several slots at once from the Management Console
- Copying slots when you copy a Booking program or booking type (add slots again after copying)
Moving from Classic Bookings
If your organization uses Classic Bookings today, the Booking program type is its replacement. Classic Bookings will be retired, and your Customer Success Manager will reach out to help plan your move. Your past Classic Bookings history will stay available to view.
FAQ
Why does it say Booking instead of Lessons?
Lessons are the most common use for this program type, but Booking describes the model: members book a time slot. You'll see Booking in the Management Console and on your member site.
Can more than one player book the same lesson time?
Yes. Set the booking type's capacity above one for semi-private or small-group lessons. Members see how many spots are open, and the slot shows as full once capacity is reached.
Can families choose their coach?
Families book a slot, not a person, but they can see which staff member is assigned to each slot and filter the list to one coach's openings.
Can a family cancel or reschedule a lesson themselves?
Not yet. Ask families to contact your organization, and an admin can reschedule the slot, remove the participant, or cancel the slot. Refunds are issued separately from the slot's invoice.
Can I charge different prices for different coaches?
Price is set on the booking type, not on the staff member. If your head coach charges more, create a separate booking type for their sessions (for example, "30-Minute Lesson with Director of Coaching") with its own price. You can also change the price on an individual slot.
Do booked lessons show up on the coach's schedule?
Yes. Once a staff member is assigned to a slot, it appears on their calendar on the web and in the LeagueApps Play app, and they receive reminder emails before the session.
Can I sell a 10-lesson package?
Not at this time. Each slot is booked and paid for individually. Families can add several slots to their basket and pay for them in one checkout.