Skip to content

Automations & Messaging

Use variables in automation messages

The nine variables you can drop into an automation's email or text message, what each one fills in, and what a client sees when a variable has nothing to fill in with.

Updated August 27, 2026

A variable is a placeholder you type into an automation's message, and Calso swaps it for the real detail as the message goes out — so one automation can greet every client by name and quote their own session time, without you writing a word of it twice.

Variables live on Automations, under the Insights group in the sidebar. Open any automation with Edit, or start a new one with Create Automation, and they apply to two of the three actions: the Subject and Body fields under Email Configuration, and the Message body field under SMS Configuration. A grey line beginning "Variables:" sits under each of those blocks listing all nine. A Send Webhook automation has no message to write, so variables do not apply to it.

The nine variables

Type a variable straight into your sentence, braces and all. These are the only nine Calso recognises.

VariableWhat it fills inExample
{guestName}The name the client entered when they bookedJane Doe
{guestEmail}The email address the client booked withjane@example.com
{hostName}Your name on your Calso account — not your workspace nameAlex Rivera
{eventTitle}The title of the event type that was booked60-Minute Coaching Call
{bookingDate}The session's start date, written out in fullMonday, March 3, 2026
{bookingTime}The session's start time2:00 PM
{meetingUrl}The video meeting link for the sessionhttps://meet.google.com/abc-defg-hij
{packageTitle}The name of the package the client bought10-Session Bundle
{creditsRemaining}How many credits are left on that package4

{meetingUrl} only has something to give you when the session actually has a video link — a Google Meet, Teams, or Zoom link, or a fixed link you set on the event type. For a session at a venue or over the phone it comes through empty, so it is worth writing a message that reads well either way, or keeping the link out of automations that cover in-person work. Where a session happens is set per event type, on Set where a session happens.

Put a variable into a message

  1. Open the automation

    Go to Automations in the sidebar and press Edit on the automation you want to change, or Create Automation to start a new one. The message fields only appear once Action is set to Send Email or Send SMS.

  2. Type the variable where the detail should appear

    Write your sentence normally and drop the variable in where the real value belongs — for example, "Hi {guestName}, your {eventTitle} on {bookingDate} at {bookingTime} is confirmed." Variables work in the Subject line as well as the Body, so you can put the client's name in the subject too.

  3. Save and check it against the trigger

    Press Update (or Create on a new automation), then look back at the Trigger you chose and confirm every variable you used has a value on it — the table below says which do. The variable list under the message box is the same nine on every trigger, so it is not telling you which ones will fill in.

CalsoVariables typed into a message body

How to type a variable

Calso matches the exact text between the braces, so a variable only fills in when it is spelled precisely as listed above.

Will not fill in
  • { guestName } — spaces inside the braces
  • {GuestName} — capital G
  • {guest_name} — an underscore instead of camel case
  • {clientName} — a sensible word Calso does not recognise
  • guestName — no braces at all
Fills in
  • {guestName} — exactly as written in the list under the message box

The difference matters more than a typo usually does, because the two kinds of failure look nothing alike to the client.

What a client sees when a variable is empty

There are two outcomes, and which one you get depends on whether Calso recognises the variable at all.

What you typedWhat the client receives
One of the nine, with a value behind itThe real value — "Hi Jane Doe,"
One of the nine, with nothing behind itNothing at all, leaving a gap — "Hi ,"
Anything elseThe text you typed, braces included — "Hi ,"

Which variables have a value on each trigger

A variable can only fill in from what the trigger carries with it. The five booking triggers carry a client and a session; the three package triggers carry a package instead. Nothing carries both.

TriggerFills inComes through empty
Booking Confirmed{guestName} {guestEmail} {hostName} {eventTitle} {bookingDate} {bookingTime} {meetingUrl}{packageTitle} {creditsRemaining}
Booking CancelledThe same seven{packageTitle} {creditsRemaining}
Booking RescheduledThe same seven, with the new date and time{packageTitle} {creditsRemaining}
Booking Completed{guestName} {guestEmail} {bookingDate} {bookingTime} {meetingUrl}{eventTitle} {hostName} {packageTitle} {creditsRemaining}
No Show{guestName} {guestEmail} {bookingDate} {bookingTime} {meetingUrl}{eventTitle} {hostName} {packageTitle} {creditsRemaining}
Package Purchased{packageTitle} {creditsRemaining} {hostName}Every booking variable
Package Expiring{packageTitle} {creditsRemaining} {hostName}Every booking variable
Package Exhausted{packageTitle}, and {creditsRemaining} as 0{hostName} and every booking variable

Two rows are worth reading twice. On Booking Completed and No Show, write the session name and your own name into the message as plain text — {eventTitle} and {hostName} have nothing to draw on there, so "Thanks for coming to your {eventTitle}" arrives as "Thanks for coming to your". And {packageTitle} and {creditsRemaining} are empty on every booking trigger, even when the client paid for that session with a package, so an automation cannot tell someone how many credits they have left after a booking.

The three package triggers have no client address or phone number attached to them at all, which means a Send Email or Send SMS automation on one of them has nobody to send to. Use Send Webhook for those, and see Automation triggers and actions for what each trigger passes on.

Dates, times, and how the message is formatted

{bookingDate} and {bookingTime} are written out in US English — "Monday, March 3, 2026" and "2:00 PM" — and in Coordinated Universal Time, rather than being converted to your workspace time zone or your client's. If your sessions run several hours away from UTC, say the time in your own words in the message and let Calso's built-in confirmation and reminder emails carry the exact hour, since those do convert to the client's time zone.

The body of an automation email is your plain text, not a designed Calso template — there is no logo, no branded header, and no session details block beyond what your variables put there. Line breaks are kept, so a message written as short paragraphs arrives as short paragraphs. Write it as a complete note on its own, because it will not be sitting inside the styled confirmation email your client also receives.

Once your message reads the way you want it, send yourself one before you switch it on for clients — Test an automation before you rely on it covers what the Test button does and what it cannot show you.

Frequently asked questions

What happens if I misspell a variable in an automation email?

Calso only recognises nine exact spellings, and anything else is left alone. If you type {clientName} instead of {guestName}, your client receives an email with the literal text {clientName} sitting in the middle of the sentence. Variables are also case-sensitive, so {GuestName} and {guestname} both come through as visible text too.

Why is the client's name blank in my automation email?

A variable Calso recognises but cannot fill in is replaced with nothing at all, leaving a gap in the sentence. The usual cause is a trigger that carries no booking — the three package triggers have no client attached to them, so every booking variable comes through empty. Check which trigger the automation is on before rewriting the message.

Can I use variables in a webhook automation?

No. Variables are only read in the Subject and Body of a Send Email automation and the Message body of a Send SMS automation. A Send Webhook automation posts the booking and package details as structured data instead, so there is nothing to write a variable into.

Why does the time in my automation email not match my time zone?

The {bookingDate} and {bookingTime} variables are written out in Coordinated Universal Time (UTC) and in US format, rather than being converted to your workspace time zone or your client's. Calso's own booking confirmation and reminder emails do convert to the client's time zone, so lean on those for anything the client needs to set an alarm by.