Email Template Placeholders

Updated Sep 10, 2026 6 min read

Reference guide for the placeholders you can use in notification email subjects and bodies.

Overview

Placeholders insert live information into a notification’s subject line and body. Write them as {name}. They are case-sensitive, they work in the subject as well as the body, and a placeholder with no value renders as nothing rather than an error.

Two rules of thumb:

  • Braces mean “put a value here”: {firstname}, {time}.
  • Square brackets mean “repeat this”: [dates] … [/dates] prints its contents once per booked date.

Placeholders available in every email

PlaceholderRenders
{firstname} {lastname}The customer’s name
{company}Your studio name
{url}Your website address
{account-link}The customer’s account page at your studio
{toc}Your terms and conditions text
{logo}Your studio logo as an image. Renders nothing if you have not uploaded one, so you never get a broken image

Date and time

Class and appointment emails share one set of date and time placeholders. Values are in your studio’s time zone. Build the sentence you want from the parts.

PlaceholderRendersExample
{day}WeekdayTuesday
{day-short}Weekday, shortTue
{date}Day of the month8
{month}MonthSeptember
{month-short}Month, shortSep
{year}Year2026
{year-short}Year, short26
{time}Start time, in your chosen time format9:30 am or 09:30
{duration}Length in minutes60
Hey {firstname}, thanks for booking {eventname}. You are booked on for {date} {month} {year-short} at {time}. See you on {day}!
Hey Sarah, thanks for booking Vinyasa Flow. You are booked on for 8 September 26 at 9:30 am. See you on Tuesday!

{time} follows Settings → Notifications → Time format. The default is 12-hour (“9:30 pm”). Switch to 24-hour and every {time} in every email becomes “21:30”. See Studio settings.

Class bookings and cancellations

Sent when a customer books a class, and when a booking is cancelled. A booking can cover several dates, so there are single-value placeholders, which describe the first booked date, and a list.

About the class

PlaceholderRenders
{eventname}Class name
{ticket}Pricing option booked, e.g. Drop-in
{places}Places held on that date
{facilitator}Facilitator name(s) for the date. The date’s own facilitators if you have set them, otherwise the class’s
{location}Location name. “online” for a virtual class with no location. Empty if the class has none, so set one on the class if you use this
Date and time familyThe first booked date, see above

Every date in the booking

{dates} prints one line per booked date, using the line you set in Settings → Notifications (default {day} {date} {month} {year} at {time}):

You are booked on {eventname} for:
{dates}
You are booked on Vinyasa Flow for:
Tuesday 8 September 2026 at 9:30 am
Thursday 10 September 2026 at 9:30 am

For your own wording, repeat text per date with [dates] … [/dates]. Any placeholder inside refers to that date:

You are booked for:
[dates]- {eventname}, {day-short} {date} {month-short} at {time} ({places} place)[/dates]
You are booked for:
- Vinyasa Flow, Tue 8 Sep at 9:30 am (1 place)
- Vinyasa Flow, Thu 10 Sep at 9:30 am (1 place)

The closing [/dates] is required. Without it the text is left exactly as written, so the mistake shows in the preview. In a subject line the repeated dates are separated by commas.

A cancellation email describes the cancelled date, so its list has one line.

Virtual classes

PlaceholderRenders
{meetings}Joining details for every virtual date in the booking: date, join link, meeting ID, passcode

Waiting list: a place has come free

Sent to everyone on the waiting list for a date when a place frees up.

PlaceholderRenders
{eventname}Class name
{facilitator}Facilitator name(s) for the date
{location}Location name, “online”, or empty, as above
Date and time familyThe date that has come free
{booknow}Link to book the place

Class reminders

Sent before a class, to each customer booked on that date. One date, so the date and time family describes it.

PlaceholderRenders
{eventname}Class name
{ticket}Pricing option the customer holds
{places}Places the customer holds on the date
{facilitator}Facilitator name(s) for the date
{location}Location name, “online”, or empty
Date and time familyThe class date
{meetinginvite}Zoom join link. Virtual reminders only
{meetingid}Meeting ID. Virtual reminders only
{meetingpasscode}Meeting passcode. Virtual reminders only
Subject: Reminder: {eventname} {day-short} {date} {month-short} at {time}
Subject: Reminder: Vinyasa Flow Thu 10 Sep at 3:20 pm

Appointments: booking confirmation, reminder, cancellation

PlaceholderRenders
{service}Service name, e.g. Sports Massage
{option}Option booked, e.g. 60 minutes
{facilitator}Practitioner name
{location}The service’s location name. Empty if the service has none, so set one on the service if you use this
Date and time familyThe appointment slot
Subject: {service} on {day} {date} {month}

Hi {firstname}, your {service} ({option}) with {facilitator} is confirmed for
{day} {date} {month} {year} at {time} ({duration} minutes) at {location}.
Subject: Sports Massage on Tuesday 8 September

Hi Sarah, your Sports Massage (60 minutes) with Jo is confirmed for
Tuesday 8 September 2026 at 9:30 am (60 minutes) at Studio 2.

Pass purchase

PlaceholderRenders
{purchase}Pass summary: name, credits, start date and expiry date

Video purchase

PlaceholderRenders
{purchase}Video purchase summary

Gift voucher delivery

Sent to the person receiving the voucher. {firstname} here is the recipient, as entered when the voucher was assigned.

PlaceholderRenders
{sendername}Who the voucher is from
{code}The voucher code to redeem
{amount}Voucher value
{expires}Expiry date
{message}The personal message, if one was written

Subscriptions

Covers mandate due, suspended, cancellation, renewal, mandate set-up, reactivated and cancelled-by-studio emails.

PlaceholderRenders
{subscriptionname}Subscription product name
{subscriptionterm}Term, for example 1 month
{subscriptioncharge}Charge amount, formatted, for example GBP10.00
{subscriptionid}Internal subscription ID
{subscriptioncycle}Renewal cycle in days

Invoices

Covers invoice created, overdue, error and paid emails.

PlaceholderRenders
{month}Current month name, the billing month. Not the class month
{invoice-number}Formatted as INV-000123
{invoice_id}Numeric invoice ID
{invoice_number}6-digit zero-padded invoice number
{invoice-created-date}Date the invoice was raised
{invoice-due-date}Due date
{invoice-gross}Total formatted, for example GBP60.00
{invoice-purchase-list}Itemised line list
{invoice-payment-type}Card (Stripe) or Manual
{invoice-error-reason}Stripe decline reason. Invoice error only
{invoice-decline-code}Stripe decline code. Invoice error only
{account-invoice-error-link}Link to fix payment for the failed invoice

Registration, password reset and account deletion

PlaceholderRenders
{firstname} {lastname}The customer
{username}The customer’s username, their email address. Registration only
{password}Always renders as *********. Customers set their own password
{deletion_date}The date the account deletion runs. Account deletion only

Studio settings

Settings → Notifications has two controls that change how the placeholders above render:

  • Time format. 12-hour (“9:30 pm”, the default) or 24-hour (“21:30”). Drives {time} in every class and appointment email. Legacy forms such as {purchase} and {datetime} keep their old format.
  • Date list format. The line {dates} prints per booked date. Default {day} {date} {month} {year} at {time}. Tag chips insert the date parts, and an example updates as you type. Changing it changes every template that uses {dates}.

Legacy placeholders

These older forms still render exactly as they always have. They are no longer offered in the template editor’s tag picker, and the editor shows a small “Uses legacy placeholders” note when a template contains one. New templates should use the placeholders above.

Legacy formWhereRenders
{purchase}Class bookings and cancellationsAuto-formatted purchase list, one numbered line per booked date: “1. Vinyasa Flow. Drop-in on 08 Sep 2026 09:30 am. Quantity 1”
[event-purchase: …]Class bookings and cancellationsCustom per-line template using %name%, %pricing-option%, %day%, %date%, %month%, %year%, %hour%, %minutes%, %am-pm%, %places%. Also reshapes {purchase} to the same format
{event}…{!event}Class bookings and cancellationsRepeats once per virtual date. Inside the block: {date}, {meetinginvite}, {meetingid}, {meetingpasscode}
{meeting}Class bookings and cancellationsSame as {meetings}
{event}Class reminders, and on its own in a booking or cancellationClass name with date and time: “Vinyasa Flow: 8 Sep 2026 at 9:30 am”
{purchase}Class remindersSame as {event}
{purchase-lnk}Waiting listSame as {booknow}
{datetime}AppointmentsCombined date and time, “08 Sep 2026, 09:30 am”, always 12-hour
{companyname}EverywhereSame as {company}
INV-XXXInvoicesReplaced with the invoice number

Warning: {date} means two different things. Everywhere in this guide {date} is the day of the month, “8”. The one exception is inside a legacy {event}…{!event} block, where it keeps its old meaning, the full date and time: “08 Sep 2026 09:30 am”. Outside that block it is always the day number.

{month} on invoice emails is the billing month, the current month name, not a class date.

Notes

  • Unknown placeholders and missing values render as nothing.
  • Placeholders are case-sensitive: {Firstname} will not substitute.
  • Every single-value placeholder works in the subject line. {dates} in a subject renders comma separated.
  • [dates]…[/dates], [event-purchase: …] and {event}…{!event} are repeating blocks, not single placeholders.