How Do I Set Up an Appointment-Based Service?
Appointment services are how Opus1.io handles private lessons and other one-at-a-time bookings — a client picks a time, a staff member, and a location, and each visit is scheduled individually based on staff availability. Most studios need three related appointment services working together: ongoing lessons, trial lessons, and makeup lessons. This article is the starting point — it covers the settings that work the same way on all three, so the linked guides can focus on what actually differs.
Last updated:Age August 14, 2026
Applies to: Owner / Manager
Feature: Services, Scheduling
PLUS Feature: No
Table of Contents
- Overview
- Which guide do I need?
- How the three services work together
- What differs between the three
- Prerequisites (all appointment services)
- Shared Configuration Reference
- FAQ
- Who can configure
- Related Articles
Overview
Why it matters: getting these three services set up correctly — and connected to each other — is what turns a trial lesson into a paying student without your front desk chasing anyone down, and turns a cancelled lesson into a self-served makeup instead of a refund request. Each service type carries its own settings for a reason: an ongoing lesson bills recurring tuition, a trial converts a prospect, and a makeup redeems a credit without competing for paid teaching time.
Location: Business → Services → Create Service → choose Appointment (e.g. Private Lessons)
Which guide do I need?
| I want to… | Start here |
|---|---|
| Set up weekly private piano (or guitar, drums, etc.) lessons with monthly tuition | How Do I Set Up Ongoing Private Lessons? |
| Let prospects book a trial lesson and convert them to ongoing enrollment | How Do I Set Up Trial Lessons? |
| Let students book makeup slots when they cancel an ongoing lesson | How Do I Set Up Makeup Lessons? |
| Configure pricing, proration, deposits, or sibling discounts on a plan | Setting up payment plans for your appointment-based services |
| Map cancelled lessons to makeup credits | Mapping Makeup Credits to Makeup Services |
How the three services work together
A typical private-lesson studio runs this pattern:
Trial lesson → converts to → Ongoing lesson → cancellation issues a credit → Makeup lesson → client redeems the credit (loops back into Makeup)
- Trial — Family books a single intro lesson, often via a landing page or self-booking link.
- Ongoing — After the trial, they enroll in recurring weekly lessons with monthly billing.
- Makeup — When an ongoing lesson is cancelled, a credit is issued that can only be booked into the matching makeup service.
Each is a separate appointment service in Opus1.io, usually with matching duration — for example, a 30-minute trial, a 30-minute ongoing lesson, and a 30-minute makeup all pointing at each other.
What differs between the three
| Area | Ongoing lessons | Trial lessons | Makeup lessons |
|---|---|---|---|
| Typical payment plan | Monthly membership (recurring visits + payments) | Single Visit | Credit Only |
| Self-booking visibility | Visible to visitors and clients | Visible to visitors and clients | Often hidden — clients book via Use on a credit |
| Cancellation policy | Issue makeup credits → mapped to makeup service | Studio choice; may forfeit or issue credit | Usually forfeit — no makeup for a makeup |
| Credit restrictions | Issues credits to makeup service | N/A | Limit to student's assigned staff; optionally canceled slots only |
| Conversion & auto-hold | Target service for trials | Track conversion, auto-hold, automate conversion | Not applicable |
| Lifecycle statuses | Not needed — Member is applied automatically on subscription | Common — Trial Scheduled → Trial Completed | Not needed |
| Schedule optimization | Often on | Less critical | Often on |
| Spotlight (Today dashboard) | Optional | Often on | Rare |
Prerequisites (all appointment services)
Before any appointment service can be booked — by staff or clients — you need:
| Requirement | Where to configure |
|---|---|
| Staff availabilities | Per staff member — when each teacher can be booked |
| At least one location | Business settings |
| At least one payment plan | Service → Payment tab, with Enabled for self-booking turned on or off |
| Self-booking link (for client booking) | Business settings → Self-Booking Links |
ℹ️ Note: Admin Staff and above can always book appointments from the calendar on behalf of clients, even when self-booking is disabled — so you can start using a service internally before it's public.
Shared Configuration Reference
Everything in this section works the same way on ongoing, trial, and makeup services. The linked guides call out where a service type should deviate.
Naming, Descriptions, and Tags
Name — the suggested format is Piano Private Lessons - 30 min
Why: instrument first means your service list sorts alphabetically by instrument, so a front desk scanning forty services finds all the piano options in one block. Always include both the service type (private vs. trial vs. makeup) and the duration — those are the two things staff mistake for each other when they're booking quickly.
Short description — treat it as a tagline. This is what a family sees on the self-booking page when they're looking at a grid of service options. Keep it simple: "1-on-1 private piano lessons."
Long description — this is what a family sees after clicking into a service to learn more. Why: it's your last chance to set expectations before someone books. Put what they can expect from lessons, what to bring, and any policies you'd rather they know up front than argue about later.
Tags — service tags, used for filtering internally and by students on a self-booking link or landing page. Bare minimum, tag every service with:
- Duration (e.g. 30 min)
- Instrument or class type (e.g. Piano)
- Service type (e.g. Private, Trial, Makeup)
Why: tags do two jobs. As the owner, they're how you find a group of services to update in bulk — raising the price on every 30-minute private lesson is a tag filter, not forty separate edits. On the client side, if your booking page covers multiple instruments and durations, tags are how a family narrows it down to what they're looking for.
Calendar Color
Colors can be set at the service level or the staff level.
⚠️ Warning: If a color is set in both places, the staff color wins. If your calendar isn't showing the colors you configured on the service, check whether a teacher has a color set on their profile.
Three schemes studios commonly use — pick one and stay consistent:
- By instrument — all piano services pink, all guitar blue
- By duration — all 30-minute services pink, all 60-minute blue
- By appointment type — trials one color, makeups another, ongoing lessons a third
Duration, Buffers, and Slot Intervals
| Setting | What it controls |
|---|---|
| Duration | Lesson length. Changing it updates all future appointments for that service; past appointments are untouched |
| Minutes before / after the service that staff and room are unavailable | Buffer time between services |
| How many minutes apart can each appointment availability be | The self-booking time grid — where on the hour lessons can start |
Most studios teach back to back, so buffers get used less often than you'd expect. If you do use them, know that they stack:
Example — buffers compounding
Group Class A has a 10-minute buffer before and after, runs 10:00–10:30am.
- Nothing can be booked that doesn't end by 9:50am.
- Nothing can be booked starting before 10:40am.
- Group Class B, which carries its own 10-minute leading buffer, can't start until 10:50am — its buffer sits on top of Class A's.
Appointments Can Be Attended Online
Toggling this on gives families the option to join a regularly scheduled in-person lesson remotely. A Join Online button appears on the lesson in the student's profile.
⚠️ Warning: The button needs somewhere to point. Save a meeting link (Zoom or Google Meet) on the staff member's profile or in the room settings — without one, the button goes nowhere.
Age Limits
Set a minimum and maximum age on the service.
Why: it stops a parent from self-booking a 4-year-old into a service your teachers only take from age 5. For "ages 5 and up," set the minimum to 5 and leave the maximum open.
Enrollment Windows
Minimum booking time — how soon before a lesson a family can self-book it.
Example: set to 2 days. A family looking at the schedule on Monday sees nothing before Wednesday. Why: it gives you and the teacher a heads-up before a new student appears on the calendar.
Maximum booking time — how far out a family can self-book.
Example: set to 30 days. A family only sees availability for the next month. Why: it stops someone from claiming a prime slot three months out and holding it without paying for it.
Schedule Optimization
This is built on a maximum scheduling gap you set per service — the largest hole you're willing to leave in a teacher's day. The cap is 60 minutes. If you set 30 minutes, anything that would open a gap larger than 30 minutes is treated as non-optimal.
It runs in two modes, and they behave very differently:
| Mode | Behavior |
|---|---|
| Enabled / Minimize Gaps | Advisory. Tells you as an admin whether the time you're booking is optimal and suggests better ones. You can override it. |
| Self-booking | Enforced. Families only see slots that respect the maximum gap. No override. |
Example — a 30-minute maximum gap
Teacher A already teaches 4:00–6:00pm. The studio allows starts on the :00, :15, :30, and :45. A family self-booking a 30-minute lesson sees:
- 3:30pm and 6:00pm — no gap created ✅
- 3:15pm and 6:15pm — 15-minute gap ✅
- 3:00pm and 6:30pm — 30-minute gap ✅
- Anything earlier or later — over the limit, hidden ❌
ℹ️ Note: If a teacher has a large block of availability with nothing booked in it — a new teacher, for instance — Opus1.io offers slots in the middle of the block and builds outward from there.
Conflict tolerance (Advanced settings)
Conflict tolerance looks ahead over a time period you set and hides slots that won't hold up.
Example: short-term threshold set to 30 days, 0 conflicts allowed.
A family wants Mondays at 5pm with Teacher A. Teacher A is generally free then, but has one Monday off in the next 30 days. The family won't be offered Mondays at 5pm.
Why: it prevents a brand-new student's first month from including a lesson you already know you'll have to reschedule. Nothing sours a first impression faster than a rescheduling email in week two.
Terms and Conditions
Terms are shown to the client during self-booking, and stay available on their profile alongside their subscription.
Reference Managing Your Terms and Conditions Policies to build those out.
Email Templates
Automatic client emails are customized per service under Service → Update → Templates. Defaults are populated when the service is created. See Client Automated Email Notifications for previews — everything highlighted in blue is what you control in these service settings.
Require client note at self-booking
Ask a question the family answers while booking. See How do I customize the client notes requested at a self-booking?
The Self-Booking Enforcement Rule
Several settings only bind clients, not staff. Knowing which is which saves a lot of "why can't I book this?" confusion at the front desk:
| Setting | Enforced at self-booking | Admin can override |
|---|---|---|
| Slot interval / start snap | Yes | Yes |
| Age limits | Yes | Yes |
| Minimum / maximum lead time | Yes | Yes |
| Conflict tolerance | Yes | Yes |
| Schedule optimization (self-booking mode) | Yes | Yes |
| Schedule optimization (Minimize Gaps mode) | When enabled | Yes |
Why it matters: these are guardrails for the public, not hard rules for your business. You can always book the exception yourself.
FAQ
Q: Can I switch a service from Appointment to Session later?
A: The service type is chosen at creation and drives how the rest of the configuration works — plan around your booking model before you build the service rather than after clients have already booked into it.
Q: I changed the service duration and now appointments look wrong. What happened?
A: Duration changes apply to all future appointments for that service. Past appointments are untouched, but anything not yet completed will reflect the new length.
Q: Why isn't a plan showing up during self-booking?
A: Check the Enabled for self-booking toggle on the plan list — it's separate from the plan editor, and duplicated plans start with it off.
Q: I renamed a service. Why are enrolled students still seeing the old name?
A: Renaming doesn't automatically update currently enrolled students. Contact support — they'll run Resync calendar in your business settings, which pushes the new name through to existing enrollments.
Q: Can I turn lesson reminders on for some services but not others?
A: No — reminders are on or off for the entire account. Individual clients can opt out in their own profile settings, but you can't scope them by service.
Q: Can I stop the reminder emails about accepting terms and conditions?
A: No. The only way those stop is when the client accepts the terms.
Q: Does auto-hold work for any service, or just trial lessons?
A: It's designed for trial lessons, but it can point to any appointment service via the Hold service setting — typically your recurring private-lesson service.
Q: What's the difference between "Deactivated" and turning off visitor/client visibility?
A: Deactivated hides the service from everyone except managers. Turning off visitor or client visibility separately still leaves the service usable by the other audience — for example, visible to logged-in clients but not the public.
Who can configure
| Role | Create / edit services | Book for clients | Self-booking |
|---|---|---|---|
| Owner | Yes | Yes | N/A |
| Manager | Yes | Yes | N/A |
|
Staff |
No | Yes | N/A |
|
Limited Staff |
No | No | |
| Client | No | No | Yes (when enabled) |
| Visitor | No | No | Yes (when enabled) |
Staff availabilities are configured per staff member. Self-booking links are configured at the business level under Business > Self-Booking Links.
Related Articles
- How Do I Set Up Ongoing Private Lessons? — recurring billing, cancellation-to-credit mapping
- How Do I Set Up Trial Lessons? — conversion tracking, auto-hold, automated follow-up
- How Do I Set Up Makeup Lessons? — credit-only booking, staff restrictions
- Setting Up Payment Plans For Your Appointment-Based Services — pricing, proration, deposits, and discounts
- Creating Self-Booking Links — how self-booking links expose services to the public