Skip to content
English
  • There are no suggestions because the search field is empty.

Why isn't my service showing on my self-booking link?

A self-booking page shows a service only if it survives every filter stacked on it: the link's type, service filter, and location filter; the service's payment plan and visibility settings; and the open hours and staff availability behind it. Any one of them hides the service silently. Work the ten checks below in order, and test in a private window — Opus1 shows Owners and Managers services that visitors cannot see.

Last updated: September 3, 2026
Applies to: Owner / Manager
Plan: All 

Table of Contents

  1. Overview
  2. Start here: match your symptom
  3. The ten checks
  4. Other things that can hide a service
  5. Still stuck? Send support the link URL
  6. FAQ
  7. Related Articles

Overview

A self-booking link is a public booking page hosted on your Opus1 business subdomain:

https://[your-business].opus1.io/w/[link-name]

What a visitor sees on that page is the result of several filters stacked on top of each other. The service has to survive every one of them. If any single filter excludes it, Opus1 drops the service from the grid silently — usually with no explanation on the page.

That is why "my service isn't showing" is rarely one problem. Ten settings can each cause it, spread across four different screens:

 

Screen What it controls
Business settings → Self-Booking Links Which link type, which services, which locations, and who can open the link at all
Services → your service Whether a payment plan is available for self-booking, and whether clients and visitors can see the service
Settings → Locations / Rooms Whether the location is open for business at all, and whether the service can run in the room
Staff availability Whether there are any bookable time slots to offer

Work through the checks below in order. Opus1 groups them by screen so you only open each one once, and they run from the settings that hide a service outright to the settings that only empty out the calendar.

💡 Test the link the way a client sees it. Open the URL in a private/incognito window, or log out first. While you are logged in as an Owner, Manager, or Staff member, Opus1 shows you services that visitors and clients cannot see — so the link will look fine to you even when it is broken for everyone else.

Who can fix these: Business settings in Opus1 are limited to Owners and Managers. Business settings state: "Only managers/owners are allowed to modify business settings." Staff can send links but cannot change them, so a Staff member troubleshooting this will need an Owner or Manager to make the change.

Start here: match your symptom

The message on the page narrows things down fast.

What you or your client sees Most likely checks
The page loads but your service is missing from the list 1, 2, 5, 7
"Invalid link - Please contact ..." 2, 6
"There are no available services. Please contact ..." 1, 2, 5, 6, 7
"Invalid service / plans" after picking a service 6
"Invalid Service. Service is not enabled for self-booking. Please contact ..." 5, 6
The link sends you to the login page 4
The service shows, but there are no times — "No availability" or "No Location Available" 3, 8, 9
"Service not available for room" 8
It looked fixed but reverted when you reloaded 10

If you are not seeing an error message at all — the page simply loads without your service in the list — start at check 1 and work down.

The ten checks

1. The link type matches the service type

Why it matters: Every Opus1 self-booking link is built for one service type. An Appointment link will never show a group class, no matter how the class is configured. This is the single most common cause of "the service just isn't there," and it is invisible from the client-facing page.

Where to look: Business settings Self-Booking Links tab → the Self-booking links card. Find your link in the list and open it. The link type was chosen when the link was created.

Link type Shows
Group Class Self-Booking Group classes and other class-based services (not events)
Appointment Self-Booking Private lessons and other appointment services
Event Self-Booking Event services

What "correct" looks like: The link's type matches how the service is set up. A private piano lesson belongs on an Appointment Self-Booking link. A Saturday guitar ensemble belongs on a Group Class Self-Booking link. A recital or workshop belongs on an Event Self-Booking link.

The tell: Open the link's service filter (check 2). If the service you are looking for is not even offered in the dropdown, the link is the wrong type. Opus1 only lists services matching the link's type.

The fix: You cannot convert a link from one type to another. Create a new link of the correct type. If you want clients to reach both from one URL, put both links on a landing page — see Using Landing Pages in Opus1.io.


2. The service is selected in the link's service filter

Why it matters: Each Opus1 link carries its own list of services. If that list has anything in it, only those services appear — everything else is filtered out, including services that are otherwise configured perfectly.

Where to look: Same screen as check 1. Open the link to get the Edit Link dialog, then find the section labelled "Add additional optional filters:". The first control is a multi-select with the placeholder "Select services".

What "correct" looks like: One of two things, and it is important to know which you are looking at:

  • Empty — no services chosen. This means all services of the link's type are shown. This is the safest setting for a general "book with us" link.
  • Populated — your service is explicitly listed among the selected services.

The failure mode is a filter that lists some services but not the one you are asking about. Adding a new service to your studio does not add it to existing filtered links. Someone has to go back and select it.

The fix: Either add your service to the selection, or clear the filter entirely to show everything. There is a Select All option in the dropdown.

⚠️ A completely filtered-out link shows "Invalid link - Please contact ..." rather than an empty page. If your link renders that message, this check and check 6 are where to look.


3. The location is included in the link's location filter

Why it matters: The location filter does not hide the service from the list — it removes the places the service could be booked. The result is a service that appears but offers nothing: "No Location Available", or a calendar with no times.

Where to look: Same Edit Link dialog, under "Add additional optional filters:". Look for the multi-select with the placeholder "(optional) Filter by location".

Opus1 offers this filter on Appointment and Group Class links. Event links do not have it — if you are on an Event link, skip to the next check.

What "correct" looks like: Same rule as the service filter — empty means all locations. If the filter is populated, the location where the service is actually taught (or your online location, for online lessons) must be in the list.

The fix: Add the missing location, or clear the filter. Watch for this after opening a second studio location: existing links keep pointing at the original location only.


4. "Make accessible by visitors" is on

Why it matters: This is the check to run when the complaint is "the link asks me to log in" rather than "my service is missing." When the toggle is off, the Opus1 link is not public at all.

Where to look: Same Edit Link dialog, below the filters. The toggle is labelled "Make accessible by visitors", with the help text: "If turned off, only logged-in clients will be able to access the link."

What "correct" looks like: The toggle is on for any link you are sharing publicly — on your website, on social media, in an ad, or with prospects who do not yet have an Opus1 login.

What happens when it is off: A visitor who is not logged in gets a "Not logged in" notice reading "please login before continuing" and is sent to the login page. Existing clients who are already signed in never see this, which is why prospects report it and staff cannot reproduce it.

Leave it off deliberately if the link is for current families only — an existing-student re-enrollment link, for example. That is a legitimate configuration, not a bug.


5. A payment plan is enabled for self-booking

Why it matters: Clients cannot book something they cannot pay for. Opus1 drops a service with no self-booking-enabled payment plan from the list entirely. This is the most common service-side cause.

Where to look: Services → open the service → Payment tab. The card is titled Plans, with the subtitle Payment Plan Options.

What "correct" looks like: At least one plan on that service carries the badge "enabled for self-booking". On each plan row there is a control that reads "Enable for Self Booking" when the plan is off, and "Disable for Self Booking" when it is on. You want at least one plan showing "Disable for Self Booking" — that is the confusing part; the button shows the action you can take, not the current state. Trust the badge, not the button.

If the toggle isn't on the plan at all: Not every plan shape can be self-booked in Opus1. Tuition-table plans cannot. For appointments, self-booking supports single-visit plans and weekly or bi-weekly visit plans billed monthly. For group classes, it supports drop-in, drop-in with pre-enrollment, full payment, and subscription plans. For events, drop-in only. If the plan you want does not offer the toggle, you need a different plan shape on that service. See How do I enable my payment plans for self-booking?.

Also confirm the plan covers the location. A payment plan applies to specific locations. If the plan is enabled for self-booking but does not include the location the client is trying to book, the service can still come up empty.


6. The service has more than a credit-only plan

Why it matters: This one burns the most support time, because the symptom looks nothing like a payment plan problem. A credit-only plan is one that can only be paid using existing credit on the client's account — a lesson pack or make-up credit. A new visitor with no credit has no way to pay, so Opus1 excludes the service. Depending on where in the flow that happens, the page reads "Invalid link" or "Invalid service / plans" — neither of which points you at the plan.

Where to look: Two places.

  1. Services → your service → Payment tab. Look at the plans carrying the "enabled for self-booking" badge. If the only enabled plan is the credit-only plan (Opus1 auto-creates one named "Single Visit (Credit Only)"), that is your cause.
  2. The link's payment plan type filter. In the Edit Link dialog, on Appointment links only, there is a multi-select with the placeholder "(optional) Filter by payment plan type". Its options are "Single visit", "Single visit (Credit Only)", "Weekly visits", and "Bi-weekly visits".

The specific trap: A link filtered to "Single visit" only, pointed at a service whose only self-booking plan is the credit-only one. Opus1 correctly refuses to offer a plan the visitor cannot pay for, and the service drops out. If it was the only service on the link, the page renders "Invalid link - Please contact {your business email}" — which reads like the URL is broken, so studios re-copy the link, rebuild it, and get the same result.

What "correct" looks like: For a link that new clients will use, the service has at least one payable plan enabled for self-booking (a single-visit, pack, or subscription plan) alongside any credit-only plan. Leave the payment plan type filter empty unless you have a specific reason to restrict it.

The fix: Enable a payable plan for self-booking on the service, or widen the link's payment plan type filter, or both. Credit-only plans are for existing clients spending credit they already hold — they cannot carry a public booking link on their own. See How Do Clients Buy Prepaid Lesson Packs? for how credit-based plans are meant to be used.

Related messages you may see instead: on the group class flow, "Invalid Service. Service is not enabled for self-booking. Please contact ..."; after selecting a service on an appointment link, "Invalid service / plans" where the plan list should be.


7. The service is visible to clients and visitors

Why it matters: This is a service-level privacy setting in Opus1, separate from everything on the link. It is also the check most often missed, because everything looks correct while you are logged in as staff.

Where to look: Services → open the service → General tab → the Details card. Two toggles:

Toggle What it controls
"Can visitors see this service?" Whether people who are not logged in can see it
"Can clients see this service?" Whether logged-in clients can see it

What "correct" looks like: For a public link aimed at new families, both are on. Turning on "Can visitors see this service?" automatically turns on "Can clients see this service?" — visitors are the broader audience, so the client setting comes along with it.

For an existing-client-only offering, turn visitors off and clients on. Opus1 then shows the service to signed-in clients and hides it from the public.

Why staff can't reproduce it: The subtitle spells it out — "If off, it will still be visible to client / staff / managers & owners, make sure you log out to see it take effect as a visitor." Staff, Managers, and Owners bypass these filters completely. Always retest in a private window. Full steps are in How do I make my services visible to clients/visitors?

If you don't see these two toggles: Some service types don't expose them, and Opus1 hides them on a deactivated service. If they aren't on the General tab, move on to the next check — but do confirm the service is not deactivated.


8. The location has open hours

Why it matters: Opus1 builds bookable slots inside your location's open hours. A location with no open hours — or hours that do not cover the days and times you expect — produces an empty calendar even when the service, the plan, and staff availability are all correct. Rooms work the same way: a service that is not assigned to any room at that location has nowhere to be booked.

Where to look: SettingsLocations / RoomsUpdate beside the location.

What "correct" looks like:

Requirement What to confirm
Open hours exist The location has open hours covering the days and times clients should be able to book
The location is not closed Holiday and closure settings are not covering the dates in question
The service is assigned to a room The service can run in at least one room at that location

What you'll see when it's wrong: an empty calendar, "No Location Available", or the message "Service not available for room".

The fix: Add or widen open hours — see How do I add open hours to my locations?. For the room error, see Why do I see "Service not available for room"? and How do I assign services to rooms? For closures, see How do I ensure that lessons are not booked on holidays when my studio is closed?


9. Staff availability exists for that service

Why it matters: By this point the service is showing. It just has nothing to book. On Opus1 appointment links, available times come from staff availability, and the service has to be attached to that availability — not merely assigned to the staff member.

Where to look: Staff availability for the teachers who deliver this service. Confirm all of the following:

Requirement What "correct" looks like
Staff assigned to the service The teacher lists this service among their applicable services
Availability includes the service The staff member's open availability hours explicitly include this service. Availability that doesn't list the service produces no slots for it, even for a teacher who "teaches piano."
Availability at the right location The availability covers the location the client is booking (or online availability, for online lessons)
Availability is in the future and open The hours fall inside the bookable window and are not fully consumed by existing lessons or blocks
Not excluded by the link's staff filter On Appointment links, the "(optional) Filter by staff" filter, if used, must include this teacher

What you'll see when it's wrong: "No availability" on each day, or "Choose a staff or a location to show available time slots" that never resolves into times after you select one.

One more link setting to check here: Appointment links have a toggle reading "Only show time slots available on a weekly on-going basis""If turned on, only time slots available on an on-going basis (including tolerated conflicts) will be offered." This is exactly right for recurring weekly lesson links and far too restrictive for one-off trial lessons. A teacher with plenty of scattered openings but no clean recurring weekly slot will show as fully booked. This is the usual cause when a trial link opens fine but the schedule never populates, while your drop-in and ongoing links work normally. It is also what bites when a teacher takes a single week off and clients can suddenly no longer register with them at all — turn the toggle off and retest.

For group classes and event links: The equivalent gate is on each individual class. Open the class (Services → service → the class or events list → the class) and confirm self-booking is on — the action reads "Enable Self-Booking" when it is off and "Disable Self-Booking" when it is on. Also confirm enrollment is currently open for that class and it is not full.


10. You clicked Update Business

Why it matters: The Opus1 self-booking link editor has two levels of saving, and missing the second one is a genuinely common cause of "I already fixed that and it's still broken."

Where to look: Business settings → Self-Booking Links tab.

What "correct" looks like: Saving in this order:

  1. In the link dialog, click "Add Link" (new link) or "Update" (existing link). This closes the dialog and updates the list on screen.
  2. Then click "Update Business" at the bottom of the settings form.

Step 1 alone changes nothing permanently. Your edits look applied because the list on screen reflects them, but Opus1 has not written anything until Update Business is clicked. Navigate away or reload before that, and every change is gone.

The tell: Reload the settings page. If your change is not there, it was never saved.

🚧 Caution: Changes made to a self-booking link can also affect any landing page that includes it. The settings screen notes: "Any changes to self-booking links could be reflected on the landing pages associated with the updated self-booking links."

Other things that can hide a service

If all ten checks pass, these less common Opus1 settings can also remove a service or its time slots:

Cause Where to look
Service is deactivated Services → the service → the Deactivated setting. Opus1 hides deactivated services from clients and visitors.
Service was deleted Deleted services do not appear anywhere client-facing.
Group Class self-booking disabled The individual session's "Enable Self-Booking" action (class and event links only).
Enrollment window The service's enrollment window settings can put every upcoming slot out of range.
Class is full Check the class size limit against current enrollment. If the class shows as full when it is not, that is not a configuration problem — contact support with the link URL.
Age requirements Minimum and maximum age settings do not hide the service, but they block checkout for a client outside the range.
Tag filters on the booking page If the client has selected a tag filter on the service screen, Opus1 hides non-matching services. Have them clear it.
Staff or location hidden from clients/visitors Staff and locations have their own visibility settings. A hidden location produces no slots there. See How do I prevent my teachers from being available for self-booking?.
Landing page missing a title or photo on the link A self-booking link needs both a title and a photo before Opus1 will show it on a landing page. See Using Landing Pages in Opus1.io.
Still stuck? Send support the link URL

If you have worked through all ten checks and the service still is not showing, contact Opus1 support — and include the full self-booking link URL in your first message.

It looks like this: https://[your-business].opus1.io/w/[link-name]

Support asks for this every single time, because the URL identifies which link's configuration to inspect. A studio can have a dozen links with overlapping services, and "our booking link" is not enough to find the right one.

Send all of the following and you will usually get a same-reply answer instead of a back-and-forth:

  • The full link URL, copied from the browser address bar 
  • The exact name of the service that should be showing
  • The location the client is trying to book
  • A screenshot of what the client sees, including any error message word for word
  • Whether you were logged out when you tested — a private/incognito window is the reliable way
  • Which of the ten checks you already confirmed

FAQ

It works when I'm logged in as an Owner, but clients say it's broken. Why? Opus1 lets Owners, Managers, and Staff bypass the client and visitor visibility filters. You are seeing services that visitors cannot. Always test in a private/incognito window, then start with checks 4 and 7.

Does an empty service filter mean no services or all services? All services of that link's type. In Opus1, empty is the "show everything" setting for both the service filter and the location filter.

I added a new service. Why isn't it on my existing link? If that link has a populated service filter, Opus1 does not add new services automatically. Open the link and add it, or clear the filter.

What does "Invalid link - Please contact ..." actually mean? Not that the URL is wrong. It means the Opus1 link resolved but has nothing valid to show — every service was filtered out. Check 2 (the service filter) and check 6 (credit-only plan) are the usual causes.

The service shows but the calendar is empty. Where do I start? Checks 3, 8, and 9 — the link's location filter, your location's open hours and room assignment, and staff availability. On Opus1 appointment links, also check the "Only show timeslots available on a weekly on-going basis" toggle, which is the most common cause on trial links.

Related Articles

Building and sharing links

Settings referenced in the checks

Payment plans

Related scheduling settings