Your booking site has a "Packages" section that lists every Public package on sale. The front page shows the first few as well. If none are on sale, the page says "No packages on sale right now." A bundle whose event has ended, or whose tickets aren't on sale, is left out of the list. Opened by a link, a package that can't be booked shows the reason, like "Not on sale", instead of the date fields.
The package page
The page shows your images, the name and short description, and two facts:
- "Dates": the length rule, like "2–4 nights" or "From 2 nights". A bundle shows "Any time".
- "Price", like "1,495 kr per guest" or "Depends on your dates". When the guest picks the room, this reads "Choose from" with the room names.
Below the description, "Package includes" lists everything except the room: "Included per guest" for included items, "Optional, from 150 kr per guest" for extras. Identical included items, other than choices, show once with their count, like "3 × Packed lunch".
Booking, step by step
- The guest picks "Dates" (stays only) and "Guests". The calendar only allows dates from your today onwards that fit the package's availability rules. A stay can't run across a blocked period or out of the season, but it can check out on the first day of a block. The guest count starts at 2, or at the package's "Minimum guests" if that is higher, and goes up to the package's "Max guests", else the lowest of the largest room and the smallest service the whole party books together.
- "Room". If the guest chooses, every room is listed with its total price, or the reason it can't be booked, like "No Double Room left on these dates". Available rooms show "Up to 2 guests". A room the guest picked stays picked when they change dates or guests; if it can't be booked any more, the button says "Not available" until they pick another. If SERVOS assigns the room, the page shows the one it picked.
- One section per choice, named after the component, with "Choose one.".
- "Included": what's already in the price. A service here opens its free times from check-in to check-out, and the guest picks one. Only times with room for the whole party show when every guest takes a place. A bundle without an event asks for a date first, greys out days when an included service has no time left, and shows that day's times; a bundle with an event shows the event's day. Identical items share one card with their count, and an included service there asks for one time per copy.
- "Extras": items the guest can tick, each with its added price. A ticked service asks for a time too. An extra that can't be booked for these dates says why and can't be ticked, and a service add-on waits until its service is added.
- The total with the number of guests, and Add to cart.
The button says "Choose a date" or "Choose a time" until the date and every service's time are picked; pressing it opens the date picker or scrolls to the first service without a time. It says "Not available" when the package can't be booked for these dates and guests. The guest then checks out like any other order.
Why a guest can't book
The booking panel shows the first reason it finds:
- "Not on sale": outside the sales period.
- "No price yet": a fixed-price package without a price.
- "Choose your dates", "Choose an end date", or "Choose a date from today".
- A date rule: "Not a start day", "At least 2 nights", "Closed on some of these dates", and the others on the Availability page.
- A part that can't be booked: "No room has space for 5 guests on these dates", a room's own rules like "Double Room needs at least 3 nights from this date", "No times left for Sauna on these dates", "Sauna is not available at that time", "Christmas Market is full on these dates", "Tickets for Jazz aren't on sale", "Breakfast is not offered with Double Room".
- The party size: "For at least 2 guests", "For at most 4 guests", or "Up to 2 guests in this room".
SERVOS checks everything again when the guest presses Add to cart. If the last room or time went in the meantime, the guest sees the reason, nothing is added, and the service times reload.