Guides/Getting Started

How to Set Up Booking Add-ons and Extras in Opencals

Stan|Jul 19, 2026
How to Set Up Booking Add-ons and Extras in Opencals

Add-ons are the paid extras a customer can attach to a booking at checkout — equipment rental, an extra guest, a premium upgrade, a treatment on top of a service. Instead of building a separate bookable service for every option, you create an add-on once and let it appear on the services it belongs to. This guide covers creating an add-on, pricing it, controlling quantity, and deciding exactly where it shows up.

Add-ons live under Products → Add-ons. Each one has a title, a price, and a few switches — Taxable, Duration-multiplied quantity, and a Max quantity cap. Leave the assignments empty and the add-on is offered on every service; assign specific services, locations, or staff to narrow where it appears. Add-ons show at checkout after the customer picks a time slot, and their price is snapshotted onto the order.

Before you start

You'll need admin access to your Opencals dashboard and at least one bookable service, since add-ons attach to bookings. If you want an add-on to appear only on certain services, create those services first — see Set up your services.

Step 1 — Open Add-ons

From the dashboard, go to Products → Add-ons. The list shows every add-on you offer with its title, price, type (Fixed or Per duration unit), how many services it's assigned to, and its status.

app.opencals.com/products/add-ons
Open
Filter add-ons...
Create Add-on
TitlePriceTypeProductsStatus
YYoga mat rental
$4.00Fixed2 service(s)Active
EExtra guest
$15.00FixedActive
GGPS device
$6.00Per duration unit1 service(s)Active
PPremium oils upgrade
$12.00Fixed3 service(s)Inactive
Products → Add-ons — every extra you offer, with price, type, service assignment, and status.

If you haven't created any yet, the list is empty and offers a Create Add-on button to get started.

app.opencals.com/products/add-ons
Open

No add-ons found

Create Add-on
Products → Add-ons — the empty state before you create your first add-on.

Step 2 — Create an add-on

Click Create Add-on. The General info card is where you name the extra and describe it.

app.opencals.com/products/add-ons
Open

General info

Enabled

This add-on is currently enabled and available to customers.

Title
Yoga mat rental
Description
A clean, non-slip mat provided at the start of your class.
Slug
yoga-mat-rental

The slug is used in the add-on URL. Auto-generated from the title — lowercase letters, numbers, and hyphens.

Images

Upload Image

Click to select an image or drag and drop it here to upload
Create Add-on → General info — status, title, description, slug, and images.
  • Enabled — the status toggle. When on the add-on is available to customers; turn it off to hide it at checkout without deleting it (the list shows it as Inactive).
  • Title — the name customers see, e.g. "Yoga mat rental". Required.
  • Description — an optional line explaining what the extra includes.
  • Slug — the URL identifier. It's generated automatically from the title (lowercase letters, numbers, and hyphens) so you rarely need to touch it.
  • Images — upload one or more images. The first becomes the default shown in the selection UI.

Step 3 — Set the price and tax

Open the Pricing card and enter what the customer pays for one unit of this add-on.

app.opencals.com/products/add-ons
Open

Pricing

Set the price customers pay for this add-on.

Price
$4.00
Create Add-on → Pricing — the unit price and whether tax applies.
  • Price — the unit price, in your store's currency. It must be zero or more.
  • Taxable — on by default. Tax is calculated per unit from your store's tax settings. Turn it off for items where tax doesn't apply, such as a tip or a donation.

Prices are locked to the order

When a customer adds an extra to their cart, Opencals snapshots the price onto that order. Changing the catalog price later never rewrites orders that already exist, so your historical totals and invoices stay accurate.

Step 4 — Choose the quantity behavior

The Quantity card controls how many of the add-on a customer can attach to a single booking.

app.opencals.com/products/add-ons
Open

Quantity

Control how many of this add-on a customer can add to a single booking.

Duration-multiplied quantity

Quantity automatically mirrors the appointment duration units.

Max quantity
Unlimited

Maximum a customer can add per booking. Leave empty for unlimited.

Create Add-on → Quantity — duration-multiplied quantity and the per-booking cap.
  • Duration-multiplied quantity — off by default. Turn it on and the quantity automatically mirrors the appointment's duration units — ideal for per-time charges. If your base duration is 30 minutes and a customer books 90 minutes (three units), a duration-multiplied add-on priced at $5 charges $15. This only matters for services that allow a custom duration.
  • Max quantity — the cap on how many a customer can add per booking. Leave it empty for unlimited. This field is hidden while duration-multiplied is on, since the quantity is then set automatically.

Pick one quantity model per add-on

Use Max quantity for countable one-off items — a child seat, an extra towel, an additional guest. Use Duration-multiplied quantity for anything billed by time, like equipment hire or an extended session. Don't ask customers to do the math themselves.

Step 5 — Scope where the add-on appears

By default an add-on with no assignments is global — it's offered on every service, at every location, with any staff member. The assignment fields on the side are filters: fill one in and the add-on only shows where it's assigned.

app.opencals.com/products/add-ons
Open
Services
Vinyasa FlowBeginner Yoga

Assign services that offer this add-on

Locations
Select locations

Assign locations where this add-on is available

Staff members
Select staff members

Assign staff members who can deliver this add-on

Create Add-on → availability — leave empty for global, or scope to specific services, locations, and staff.
  • Services — assign the services that should offer this add-on. Empty means every service.
  • Locations — restrict the add-on to specific locations. Empty means all locations.
  • Staff members — restrict it to specific staff. Empty means any staff member.

Each filter is independent and only narrows availability when you set it. A yoga mat scoped to two classes won't appear on a haircut; leave it unscoped and it's offered everywhere.

Over-scoping hides the extra

Every filter you add makes the add-on appear in fewer places. If an add-on isn't showing up at checkout, check that the customer's chosen service, location, and staff member all match its assignments — or clear the assignments to make it global again.

Frequently asked questions

Frequently Asked Questions

Keep going

Early Access — 3 Months Free

Ready to transform your service business?

Join 150+ businesses already using Opencals. Get 3 months completely free with all features unlocked.

No credit card required
Setup in 10 minutes
Cancel anytime