Which widget type should my self-booking link use?
Each self-booking link in Opus1 runs one booking engine, and it has to match the service type. Use Appointment Self-Booking for private lessons and trials, Group Class Self-Booking for group classes, and Event Self-Booking for recitals. A link only lists services of its own type, and the type cannot be changed after you create it — so check the service type before you start.
Last updated: September 8, 2026
Applies to: Owner / Manager (create and save); Staff (share links, diagnose)
PLUS Feature: No
Plan: All
Table of Contents
- Overview
- Why this choice exists
- Which widget do you need?
- Appointment Self-Booking
- Group Class Self-Booking
- Event Self-Booking
- What each widget supports
- You cannot mix types in one link
- Ways to offer more than one type
- How to check a service's type
- How to choose the type when you create a link
- If you picked the wrong type
- Troubleshooting
- FAQ
- Related Articles
Overview
The widget type is not a theme or a layout. It is the booking engine behind the URL, and Opus1 asks for it before you pick services:
| The offering | Widget to choose | What families are choosing |
|---|---|---|
| Private lessons, trials, make-ups | Appointment Self-Booking | A teacher and an open time |
| Group classes, courses, workshops | Group Class Self-Booking | A class that already has a day, time, and roster |
| Recitals, showcases, concerts | Event Self-Booking | A performance date, and often a slot on the program |
One link, one type. An appointment service will never appear on a group class widget, and a group class will never appear on an appointment widget. To put private lessons and a group class on the same public page, you need two links — or a landing page listing both.
Look at the service type on the offering, then pick the widget that matches. Toggling widget types will not convert a private-lesson program into a class.
Location: Settings → Business → Self-Booking Links → Add a custom link
Why this choice exists
A self-booking link is a public door into a specific kind of inventory, and those inventories are not interchangeable.
Private lessons live on a teacher's calendar. The family is asking who is free and when. The widget has to read staff availability, respect rooms and locations, and — for a weekly series — offer only times that can repeat.
Group classes live on a roster. The family is asking which class to join. The Monday 4pm beginner guitar class already exists, so the widget shows that session, its remaining seats, its payment plans, and a waitlist when it is full.
Recitals live on a program. The family is asking which performance they are in. The widget shows event dates and enrolls a performer, rather than finding an empty Tuesday at 3:30.
Opus1 asks Choose the type of widget for the link before you pick services because the rest of the window, and the entire public flow, is built for one of those three jobs. Picking the wrong type does not give you a different layout of the same catalog — it gives you a catalog that cannot contain the offering you came to publish.
That is why the choice is worth a minute rather than a guess. A well-matched link is a marketing asset that families complete. A mismatched link looks empty, or walks people through the wrong booking story, and they leave.
Which widget do you need?
Use the job you want the URL to do, not the word you use internally. Studios call a lot of things a "program"; Opus1 goes by the service type.
| What you are trying to do | Use this widget | Why |
|---|---|---|
| Let a new family pick a piano teacher and book a trial | Appointment | The inventory is staff time |
| Let them enroll in Fall Group Guitar, Tuesdays at 4 | Group Class | The inventory is a scheduled class with seats |
| Sign a student up for the December recital | Event | The inventory is a performance date and program |
| Put private lessons and group classes on one public page | Two links, optionally on a landing page | One URL can only run one booking engine |
| Sell instrument rental or a membership with no lesson attached | None of these | That is a subscription-only service, covered under How to check a service's type |
| Restrict make-ups to enrolled families | Appointment, with visitor access off | Same widget, different audience |
If you are still unsure, this question usually settles it: when a family books this, are they claiming a time on a teacher's calendar, joining a class that already has a schedule, or enrolling in a performance?
Appointment Self-Booking
Choose this when the offering is appointment-based — private lessons, trials, and other visits booked against staff availability. The picker describes it as 'Create custom links for appointment services.'
Why you would use it
- Trials convert when families see real openings. A parent deciding at 9pm picks a teacher and a time while they are still motivated. That is the job this widget is built for.
- You can publish a slice of the studio. Filter to "piano trials with Jordan at Downtown" rather than every teacher and instrument, so marketing links stay honest.
- You can protect weekly series. Turn on Only show time slots available on a weekly on-going basis so someone booking an ongoing lesson is not offered a one-off gap that cannot continue.
- You can steer how they browse. Default primary selection of Staff or Location decides whether they start with who or where — useful when you market a star teacher versus a neighborhood studio.
- You can advertise a billing rhythm. Filter by payment plan type so a trial link does not also show a full monthly package.
What families do: open the link, pick an appointment service, pick a teacher or location depending on your default, pick an open time from that teacher's calendar, then choose a plan and check out. They never pick a pre-built class roster — if that is what you wanted, this is the wrong widget.
Leave the service list empty and the link shows every appointment-based service with a self-booking-enabled plan. Still not group classes, still not recitals.
Group Class Self-Booking
Choose this when the offering is class-based — group classes, courses, and workshops, where several students attend each scheduled date. You create classes on the service in advance (Fall 2026, Tuesdays 4pm) and families enroll in the one they want. The picker describes it as 'Create custom links for session services.'
Why you would use it
- The class already exists. Families should not hunt a teacher's calendar for something like group guitar. They should see Group Guitar, pick Fall or Spring, and enroll.
- Capacity and waitlists are built in. When a session is full, this widget can offer the waitlist. An appointment widget has no class roster to waitlist onto.
- You can publish a season in one URL. One session widget can include several group-class services, or several classes of the same service, which is how a "Fall group classes" campaign usually works.
- Location still filters; the teacher does not. Staff assignment lives on the session rather than as a browse step, so there is no staff filter on this widget.
What families do: open the link, pick a group class service, pick a session, then choose a plan and check out — or join the waitlist if you have that open. They never pick a blank Tuesday at 3:30 on a private teacher's calendar.
On the Self-Booking Links card you can also set Default view for group class self-booking to Grid or List. That is a studio-wide default for session widgets, not a fourth widget type.
For enrolling students yourself, see How do I enroll my clients into session services?
Event Self-Booking
Choose this when the offering is event-based — recitals, showcases, concerts, and other performances. The picker describes it as Create custom links for event services.
Events self-booking exists so participants can enroll in a specific performance. It is not ticketing, and it is not a way to sell seats to an audience.
Why you would use it
- A recital is neither a lesson nor a class. Families need to pick which performance, not which weekly time with Jordan. A recital on an appointment or session widget is simply hidden.
- The program depends on enrollment. Self-booking into the event is how performers land on the program you later share as a link, QR code, or PDF.
- It keeps recital registration off the lesson catalog. A dedicated event link, often restricted to clients, is the usual pattern for dress rehearsals and recitals you do not want prospects treating as open classes.
The public flow is closer to session booking than appointment booking: pick an event service, pick a date, enroll as a performer with any slot details you use, then check out.
Setting up the service behind the link — locations, event attributes, performance details, email templates, and generating the program — is a longer job with its own guide: Events Services & Events Self-Booking.
One planning note: promotional links are appointment or session only. There is no event promo type, so do not build a recital discount around the Promotions copy with promo flow.
What each widget supports
| Appointment | Session | Event | |
|---|---|---|---|
| Service type it will show | Appointment based | Class based | Event based |
| Typical offerings | Private lessons, trials, make-ups | Group classes, courses, workshops | Recitals, showcases, concerts |
| What the family picks after the service | Teacher or location, then a time | A scheduled class | A performance date |
| Services filter | Yes | Yes | Yes |
| Staff filter | Yes | No | No |
| Location filter | Yes | Yes | No |
| Payment plan type filter | Yes | No | No |
| Weekly ongoing timeslots | Yes | No | No |
| Default primary selection (Staff / Location) | Yes | No | No |
| Make accessible by visitors | Yes | Yes | Yes |
| Call to action on empty client schedules | Yes | Yes | Yes |
| Waitlist | Not in the widget. Handled separately by Appointment Waitlist Notifications | Yes, in the booking flow when the session allows it | No |
| Can include the other two types | No | No | No |
| Works on a landing page beside the other types | Yes | Yes | Yes |
You cannot mix types in one link
The service picker is filtered by widget type, and it does not explain itself. On a Group Class Self-Booking link, Select services lists only session-based services. Your appointment-based piano program is not there. No error says "this service is appointment-based" — the service is simply absent. The same holds in reverse, and recitals appear on neither of the other two.
The type cannot be changed after you create the link. You choose it in Choose the type of widget for the link, and then it is locked. The edit window has no widget-type control. To switch, remove the link and create a new one of the right type, then save with Update Business — the steps are under If you picked the wrong type.
Toggling types does not convert a service. If Piano Program was created as an appointment service, it will never book through a session widget. Changing which widget type you are adding does not change the service. You either pick Appointment Self-Booking, or you rebuild the offering as a session-based service, which is a product decision rather than a link setting.
An empty public page is often this mismatch, not a broken link. A session widget with an empty service filter still loads only session-based services with self-booking enabled. If your studio is mostly private lessons, that page looks blank — and the link is doing exactly what a session widget does.
Ways to offer more than one type
You are choosing one widget per link, not one for the whole studio. Most studios run several.
1. Separate links, separate buttons
One appointment URL for trials, one class URL for group classes, one event URL for the recital, each on the matching website button, flyer, or ad.
- Best for: a website that already has "Book a trial" and "Enroll in a class" as separate calls to action
- Why choose it: each URL does one job well, and analytics and promotions stay clean
- Trade-off: families see two or three destinations rather than one menu
2. A landing page that groups the links
Create the links separately, then add them to a landing page (/m/…). Families land on one branded menu and each card opens the correct widget.
- Best for: a campaign, a new teacher, a location, or a season where you want one public URL
- Why choose it: this is the supported way to put an appointment offering and a group class on the same public page. The landing page is a menu, not a mixed widget
- Trade-off: each card still needs its own visitor access, title, and photo. A landing page can look finished while a card behind it still asks people to log in
3. Promotional links on the matching widget
A promotional URL is a self-booking link with promo ID. Appointment promotions attach only to appointment widgets, session promotions only to session widgets.
- Best for: a discounted trial or a discounted class term
- Why choose it: the discount applies in the flow that can actually sell that offering
- Trade-off: a class promotion will not appear on your trial link. Build both if the campaign spans both
4. Call to action on empty client schedules
Any of the three types can be offered as a Call to action on client profiles with an empty schedule.
- Best for: existing families who are not currently enrolled and should start from inside Opus1
- Trade-off: this is not a marketing URL, and prospects never see it
5. Staff book on the family's behalf
Always available. Widget type only constrains the public flow, so staff enrolling from inside Opus1 are not limited by the widget catalog.
Most studios run 1 and 2 together: public trial and class links, plus a landing page for the campaign that should feel like one destination.
How to check a service's type
Do this before you create the link. It is faster than discovering the service is missing from the picker.
- Go to Settings → Services.
- Open the offering.
- Read the type, which was set when the service was created:
| Service type in Opus1 | Typical offerings | Widget |
|---|---|---|
| Appointment based | Private lessons, trials | Appointment Self-Booking |
| Group Class based | Group classes, courses, workshops | Group Class Self-Booking |
| Event based | Recitals, showcases, concerts | Event Self-Booking |
| Subscription only | Instrument rental, membership fees | None |
Subscription-only services have no widget. They charge on a schedule without a booked appointment or class, and there is no fourth widget type for them. They appear in none of the three service pickers, so do not spend time toggling Appointment, Session, and Event looking for a rental plan — enroll those from inside Opus1 or handle them at the desk.
A service's type cannot be changed from the link window. It was set when the service was created.
How to choose the type when you create a link
- Go to Settings → Business → Self-Booking Links.
- Click the edit pencil on Self-booking links.
- Click Add a custom link.
- In Choose the type of widget for the link, pick the type matching your service.
- Continue into Create Link. Select services now lists only offerings of that type.
- Fill in Link name and any filters, then click Add Link.
- Click Update Business and wait for Business updated successfully.
Step 7 is the save. Add Link only puts the link into the form on your screen — see Saving self-booking links: the Update Business step.
The type is shown against each link in the list, as Appointment, Group Class, or Event.
If you picked the wrong type
You will usually notice because the service you want is missing from Select services, or the public URL loads empty.
- Cancel out of the create window if you have not clicked Add Link yet, and start again with the matching type.
- If the wrong link is already in the list, Remove it. A link that was already live stays live until you click Update Business.
- Click Add a custom link again, choose the correct type, add the service, and click Add Link.
- Click Update Business.
Troubleshooting
I cannot find my piano program in the service list. Check the service type. An appointment-based service needs an Appointment Self-Booking link, and a session widget will never list it. This is expected rather than a bug.
I created a session widget and the public page is empty. The widget loads only session-based services with at least one plan enabled for self-booking. Appointment services will not appear even with the service filter left empty. Confirm the type, then confirm the plan is enabled for self-booking.
I keep switching widget types and the service still is not there. Switching the type you are about to add does not change existing services or existing links. Open the service, read its type, and create a new link of that type.
The edit window has no way to change Appointment to Group Class. Correct. Remove the link and recreate it.
My promotional link will not attach to this widget. Appointment promotions list only appointment widgets, and session promotions only session widgets. Use a matching pair. There is no event promotion type.
The service is the right type and still missing. The payment plan may not be enabled for self-booking, the service may be hidden from visitors, or a location or staff filter on the link may be excluding it. Those are separate from widget type — test while logged out if the audience is visitors.
I cannot click the edit pencil. Only Owners and Managers can modify business settings in Opus1.
FAQ
Is widget type the same as service type? They have to match, but they are set in different places. Service type is chosen when you create the offering; widget type is chosen when you create the link. A link can only display services of its own type.
If I leave services blank, does the link show everything we offer? No. It shows everything of that widget's type with a self-booking-enabled plan. An empty session widget means all group classes, not the whole studio.
Does a landing page mix types? A landing page lists links of any type, and each card still opens a single-type widget. That is how Opus1 presents mixed offerings without mixing engines.
Can families pick a teacher on a group class widget? Not as a browse step. The teacher is part of the session you already scheduled, so staff filters exist only on appointment widgets.
Can staff book a group class if we only published an appointment link? Yes. Widget type constrains the public link only. Staff booking inside Opus1 is separate and unaffected.
Related Articles
The rest of the self-booking link cluster
- Creating Self-Booking Links — the setup checklist
- Saving self-booking links: the Update Business step — why a new link vanishes
- My self-booking link sends clients to a login page — visitor access
- Using Landing Pages in Opus1.io — grouping links of different types
- How do I create and share promotional links?
Setting up each kind of service
- Setting up payment plans for your appointment-based services
- How do I enroll my clients into session services?
- Batch duplicating group classes
- Events Services & Events Self-Booking
- Booking and self-booking participants in recitals, concerts, and other one-time events
- Using Appointment Waitlist Notifications