Skip to content

Packages & Payments

Build a session package clients can buy

Bundle sessions into a package with a set number of credits, a price and an expiry rule, then put it on your booking page for clients to buy in one payment.

Updated August 28, 2026

A package offering is a block of sessions sold up front: a client pays once, gets a set number of credits, and spends them as they book. You build the template once, and Calso keeps every buyer's balance and expiry date in step with it.

It lives under Packages in the sidebar. The top half of that page is Package Offerings, the templates you sell; below it are the packages individual clients already hold. + New Package in the top right opens the builder.

CalsoThe Packages page

What to have ready first

A package is assembled out of your existing event types, so those come first — if you have none yet, start with your first event type. The builder's dropdown lists only event types that are switched on, and leaves out any with Date Restrictions turned on, which is the usual reason a session you expected is missing.

Every event type in one package also has to use the same currency or the package refuses to save, and a package with a price needs Stripe connected before anyone can pay for it.

Build the offering

  1. Open the builder

    Click Packages in the sidebar, then + New Package in the top right. The empty-state button + Create Package Offering opens the same page.

  2. Name it and check the link

    Type the name clients will read into Package Name. Calso fills in the Booking URL underneath from that name, giving it its own web address; edit the last part if you want it shorter, and press Copy to take the finished link.

  3. Add the sessions it includes

    Press + Add session type, choose the session from the dropdown — grouped under 1:1 Sessions and Group Events — then set how many credits of it the package carries, repeating for each kind of session in the bundle. Total sessions: and Standalone value: at the foot of the panel add up what the client gets and what it would cost bought singly.

  4. Set the price

    Fixed Price is one figure for everyone: type it into Package Price and Calso works out the Per-session cost: underneath. Sliding Scale instead offers named tiers the client picks between — two to five of them, each with a name and a price, listed cheapest first, because the prices have to ascend.

  5. Decide when the credits expire

    Turn on the Expiry switch and choose From purchase date, From first use or Fixed date. The first two take a number of days; the third takes one calendar date that applies to everyone who buys. Leave the switch off and the credits never lapse.

  6. Offer a returning-client rate

    Switch on Loyalty Pricing if someone buying this package offering a second time should pay less. Renewal Price is what they pay instead, and it has to be below Package Price — Calso answers "Renewal price must be less than the package price." when it isn't, and tells you what they save when it is. Grace Period takes a number of days after expiry, starting at 30, and sets how long after their last package runs out the rate is still on offer.

  7. Write what clients read

    Short Description is the line under the name on your booking page cards, capped at 200 characters; Full Description is the longer piece someone sees after clicking in. Under Bonus Features, press + Add another for each non-session extra worth listing — a worksheet pack, say — and they show on the card under Also Included:.

  8. Create the package

    Check the Preview panel on the right — the booking-page card as clients will see it — then press Create Package. You land back on Packages with the new offering in the grid.

Choosing an expiry mode

SettingWhen the countdown starts
From purchase dateThe day the client pays.
From first useThe first time the client spends a credit.
Fixed dateOne calendar date, the same for everyone who buys.
Expiry switch offNever — the card reads Never expires.

From first use sounds gentler than From purchase date, but for a client buying through your booking page the two land the same: the purchase books their first session, which spends a credit on the spot. The difference shows on a package you hand someone directly, untouched until they book.

Expiry governs whether credits can still be spent, not how the package is filed. A package past its date stays under the Active tab with its credits on show, so read the expiry date on the row rather than the tab it sits in. If someone runs out of time, you can add credits or extend the expiry without touching the offering.

Which sessions the credits cover

Credits are held per event type, not as one pool. Four coaching calls and two deep dives in one package gives the client two separate counters, and a deep-dive credit can only ever be spent on a deep dive.

When a package holds more than one event type, the first one listed is the default clients book with, and it is where the package's own link drops them, so put the session most people should start with at the top.

Allow top-ups, on any paid event type in the list, lets a client who has used everything buy more of that session at the Price per session: you set, instead of buying a whole new package. Package Only — a switch on the event type rather than in this builder — makes a session bookable with credits alone and takes it off your public booking page, alongside the other rules for who can book an event type.

Offering a returning-client rate

Loyalty Pricing gives one package offering a second, lower price for someone who has bought it before. You set two things — the Renewal Price they pay and a Grace Period in days after expiry — and Calso works out who has earned it from the email address on the purchase, so there is no code to hand out and nothing to remember to switch off.

CalsoLoyalty Pricing in the package builder

A client has earned it when three things are true at once. They have bought this same offering before under the same email address and paid for it. That earlier package is either still live, or ran out no longer ago than your Grace Period allows. And the offering is still switched on and sellable, since a package nobody can buy cannot be renewed into. Someone who has spent every credit and someone whose package lapsed last month both qualify — that is the moment the rate exists for.

The client takes it themselves, at checkout. Buying a package offering they are asked Bought this package before?, with a Verify email button beside it. If there is a past purchase behind the address they typed into the form, Calso sends a six-digit code to it, and once they enter the code the payment step shows Returning-client rate applied, with the lower figure and the standard price struck through. Verification does not last long, so it belongs at the point of paying rather than half an hour earlier; if it lapses, the payment step asks them to verify again and nobody is charged in the meantime.

It is an offer, never a step. A first-time buyer ignores it and pays the standard price, and so may a returning client in a hurry. That is the thing to know when you send someone the offering's link: it is a link on which the rate can be claimed, not a link that arrives already discounted. Say so in the message and they will do the twenty seconds of work.

You can see where any one client stands, and copy them the link, from the package they already hold — see adjust a client's package credits.

Getting it in front of clients

Publicly Listed starts on, so a new offering goes onto your public booking page as soon as you create it — unless its wording has been queued for Calso's automatic content check, in which case the card is badged Under review and the direct link is the only way in until that clears. Turn Publicly Listed off and the card is badged Unlisted: still perfectly usable, but only by people you send the link to. Change, hide, or retire a package offering covers the switches behind all of that in full.

Once it is live, the card keeps a running count of how many have sold, and the small link button on it copies the offering's address, ready to paste alongside your other booking links.

From here you can let clients pay in installments, or see what happens to existing buyers when you change or retire the offering.

Frequently asked questions

Do I need a paid plan to sell session packages?

Yes. Session packages are part of the Practice plan and up. On Starter the builder opens and every field fills in, but Create Package comes back with 'Session packages require a Practice plan or higher.' The same rule applies to your clients: a client who reaches the payment step for a package is told it is not available for purchase right now. Handing someone a package yourself with + Gift Package needs Practice too.

What happens the moment a client buys a package?

Buying the package and booking the first session are the same step. The client picks a time, pays the package price, and that first session immediately spends one credit. The remaining credits sit on their record ready for the next booking, and you can see the balance from the Packages page.

Can one package cover more than one kind of session?

Yes. Add as many event types as you like under Sessions Included and give each its own number of credits — four coaching calls and two deep-dive sessions in one package, for example. Each event type keeps its own count, so a client cannot spend a deep-dive credit on a coaching call.

What does From first use mean compared to From purchase date?

From first use starts the expiry countdown the first time a credit is spent, rather than on the day the client pays. In practice a client buying from your booking page books their first session while paying, so both settings start the clock the same day. The difference shows on a package you hand a client yourself, where no session has been booked yet.