Bookings & Sessions
Set your cancellation policy and waivers
Build a tiered cancellation policy with fee windows on the Policies tab, override it for a single event type, and write a waiver clients must read and sign before they book.
A cancellation policy is the difference between a late cancellation costing you an hour and costing you a session fee. Calso lets you set fee windows that tighten as the session gets closer, apply them across your practice or to one event type, and put a waiver in front of clients before they can book.
Open Settings from the sidebar and choose the Policies tab: cancellation and rescheduling rules at the top, waivers below, and the export of who signed what below that.
Save the policy once before it applies
The first time you open the tab, a banner tells you no cancellation policy has been saved yet. The numbers underneath are suggestions, not settings. Until you store them, clients can cancel right up to the start time at no charge, and your booking page shows them no terms to agree to.
Build the cancellation windows
- Decide whether clients can cancel at all
Leave Allow guests to cancel ticked if clients should be able to cancel themselves. Untick it and the fee editor disappears — anyone following the cancel link in their confirmation email is told cancellations aren't allowed and has to contact you.
- Pick how the fee is expressed
Under Fee type, choose Percentage of price to charge a share of what the client paid, or Flat fee amount for a fixed sum. Percentage is the more common choice because it scales across a mix of cheap and expensive event types. Switching between the two rewrites the fee box on every row in the new unit, so each row carries only the figure that will actually be charged — pick the type first, then set the amounts.
- Set the ladder of windows
Each row under Cancellation windows is one tier: hours in the left box, the fee in the right. The hour figure is the outer edge of the stretch that row governs, so its fee applies to anyone cancelling with fewer hours left than that. The suggested ladder is 48 hours at 25% and 24 hours at 100%. + Add window adds a row already numbered below your tightest one; the small × at the end of a row removes it.
- Read it back before you save
The How this reads to clients panel rewrites your rows in the exact wording clients meet, opening with the free stretch above your widest deadline — a fast way to catch a number typed into the wrong box. When it says what you mean, click Save Policy — a green Saved! confirms it stored, with the rows filed widest-first.
+ Add window here adds a fee tier; the same-named control on your weekly availability hours adds working time instead.
How Calso picks the window
When a client cancels, Calso applies the tightest row whose hour figure is still larger than the time remaining. Each row's number is the top of the stretch it governs, and that stretch runs down to the number on the next row in. With the suggested ladder:
| The client cancels | Row that applies | What they're charged |
|---|---|---|
| More than 48 hours ahead | none | Nothing |
| Between 24 and 48 hours ahead | the 48-hour row | 25% |
| Under 24 hours ahead | the 24-hour row | The whole payment |
| After the session has started | none | They can't cancel at all |
Every row is labelled with the stretch it actually covers — Between 24 and 48 hours before, Less than 24 hours before — and the free stretch above your widest number is stated first. A percentage row set to 100 reads No refund to the client rather than a percentage, and a flat row left at zero reads No fee. Two rows given the same number describe the same stretch, so saving keeps one of them. And because a row's fee belongs to the stretch beneath its number, keeping the whole payment from anyone cancelling inside a day means putting 100 on the 24-hour row, not on a row numbered lower.
Reschedule rules, and who they bind
Allow guests to reschedule governs whether clients can move a session themselves. Deadline (hours before) is how close to the start time they can still do it, and Max reschedules caps how many times one booking can move — the count is per booking, so it resets for their next one.
Those limits, and the fees above, apply to clients acting on their own — they never restrain you. Cancelling a booking or rescheduling one from your dashboard shows which window applies, then lets you decide freely.
Give one event type its own policy
A workshop needing a week's notice and a 30-minute check-in shouldn't share a ladder. Open the event type from Event Types, go to its Access tab, and find Cancellation & Rescheduling Policy. Toggling it on pre-fills a copy of your workspace rules, so you adjust rather than start over. Edit the rows, then click Save Policy Override.
An override wins for that event type only; everything else keeps following the default. That same Access tab also holds the rules about who can book at all.
A one-time group event can carry its own rules too: its Access tab has the same Cancellation Policy override, covering windows and fees only, since rescheduling is not something clients do on a group event. A recurring series has no override of its own and follows your workspace policy — so if a run needs different rules from the rest of your practice, set them at workspace level before the series opens, or handle those cancellations yourself. Running a group event covers both.
Create a waiver and choose its scope
- Open the waiver form
Back on the Policies tab, scroll to the Waivers card and click + Add Waiver.
- Write the title and the text
Title is what the client sees above the text and what appears on their signed record, so make it recognisable — "Liability Waiver", "Late Arrival Terms". Body text holds the full wording, with your line breaks preserved.
- Choose where it applies
The Scope dropdown defaults to Global — all events, putting the waiver in front of every client booking anything. Pick a single event type instead to attach it to just that one.
- Decide whether it blocks booking
Leave Required to book on and the client can't continue until they tick it. Turn it off and the waiver still appears and can still be signed, but won't stop someone who skips it. Click Add Waiver to save.
To check what an event type will show, look at the Waivers card on its Details tab — anything marked Global comes from your workspace-wide waivers and applies automatically.
Signed waivers, versions, and records
On your booking page a waiver appears as a scrollable block of text with a checkbox reading "I have read and agree to the" plus its title, alongside any intake questions you ask. The checkbox stays locked until the client scrolls to the bottom, so nobody agrees to text they never saw.
Each signature stores the exact title, wording, and version agreed to, which makes editing a waiver safe later: revised text saves as a new version for future bookings, while everyone who already signed keeps the record of what they read.
To see what one client signed, open their booking from Bookings and find the Waivers section on the drawer's Details tab, where each signature shows its date and a reference code. View Full Text shows the wording as signed; Export PDF produces a single-signature document. For everything at once, use Export Waiver Records on the Policies tab: set Start date and End date, then Export CSV for a spreadsheet of signature reference, title, version, client name and email, and signing time. End date is read as the beginning of that day, so pick the day after the last one you want included.
Edit revises a waiver; Archive retires it, taking it off every booking form straight away while keeping the signatures already collected.
With the policy saved, read cancelling a booking and choosing the refund next — where these windows show up in day-to-day work.
Frequently asked questions
Why is my cancellation policy not being applied to bookings?
Almost always because it has never been saved. Until you press Save Policy once, the Policies tab is only showing suggested starting values, and Calso behaves as though no policy exists — clients can cancel any session, at any time, at no charge. Open Settings, go to the Policies tab, and click Save Policy even if you are happy with every number on screen.
Does my cancellation policy stop me from cancelling a session myself?
No. The windows, fees, reschedule deadline, and reschedule limit are all enforced on the pages where a client cancels or reschedules themselves. When you cancel or reschedule from your dashboard, Calso shows you which window the session falls into but never blocks you, and you can choose any refund you like.
What happens to signed waivers when I change the waiver text?
Editing the body text saves it as a new version and bumps the version number. Every acknowledgment already on file keeps the exact wording, title, and version the client agreed to at the time, so old records stay accurate. Clients who signed the earlier version are not asked to re-sign.
How do I delete a waiver?
You archive it instead. Archive removes the waiver from every booking form immediately but keeps it rather than destroying it, so the acknowledgments people have already signed stay intact and stay exportable.