TidyCal Email Template Variables Reference
Use TidyCal email template variables such as {{contact.name}} and {{booking.date}} to fill confirmation and reminder emails with each booking's details.
Overview
Template variables let you insert dynamic information into your custom email templates. When an email is sent, TidyCal replaces each variable with the actual booking data. Variables use double curly brace syntax: {{variable.name}} .
Note: Custom email templates require the Individual Plan, Pro, or Agency Plan. Free Plan users receive default confirmation and reminder emails.

Booking Variables
| Variable | Returns |
|---|---|
{{booking.date}} |
Full booking date in the booker's timezone (e.g., "Thursday, January 15, 2026") |
{{booking.time}} |
Booking time in 12 or 24-hour format per your settings, in the booker's time zone and followed by that zone in brackets (e.g., "2:30 PM (America/New York)"), unless the same subject or message also contains {{booking.timezone}} |
{{booking.timezone}} |
The booker's timezone (e.g., "America/New York"). Adding it to a subject or message stops TidyCal adding the zone in brackets after the time in that same subject or message |
{{booking.starts_at}} |
Combined date and time, followed by the booker's time zone in brackets unless the same text contains {{booking.timezone}} (e.g., "Thursday, January 15, 2026 2:30 PM (America/New York)") |
{{booking.hours_until}} |
Whole hours until the booking starts, rounded, at the moment the email is sent |
{{booking.minutes_until}} |
Minutes until the booking starts, rounded, at the moment the email is sent |
{{booking.time_until}} |
Readable time until the booking (e.g., "30 minutes", "2 hours", "1 day") |
{{booking.location}} |
Meeting location (address, URL, or phone). If the booking has no location and no meeting link, a line such as "Location: {{booking.location}}" in a custom confirmation email, reminder or calendar invitation reads "Location: Your host will send details" |
{{booking.meeting_url}} |
Meeting URL (Zoom, Google Meet, etc.) |
{{booking.reschedule_url}} |
Link for attendee to reschedule or cancel |
{{booking.review_url}} |
Link for attendee to leave a review |
Contact Variables
| Variable | Returns |
|---|---|
{{contact.name}} |
Attendee's full name |
{{contact.email}} |
Attendee's email address |
{{contact.timezone}} |
Attendee's timezone |
Host and User Variables
| Variable | Returns |
|---|---|
{{host.name}} |
Host name (for team bookings: the assigned host; for individual: the owner) |
{{host.email}} |
Host email address |
{{user.name}} |
Booking type owner name (always the account owner) |
{{user.email}} |
Booking type owner email |
{{booking_type.title}} |
Booking type name |
{{booking_type.description}} |
Booking type description text |
{{booking_type.duration_minutes}} |
Duration in minutes |
Team bookings: {{host.name}} returns the assigned team member's name, while {{user.name}} always returns the booking type owner's name.
Custom Questions and Answers
If your booking type has custom pre-meeting questions (see How do I set up custom intake form questions?), you can include the questions and answers in emails:
| Variable | Returns |
|---|---|
{{questions.0}} |
Text of the first question |
{{answers.0}} |
Answer to the first question |
{{questions.1}} |
Text of the second question |
{{answers.1}} |
Answer to the second question |
Note: Question and answer indices start at 0. For checkbox or multi-select answers, values are joined with commas.
Default Template Examples
Confirmation Email
The default confirmation email uses these variables:
- Greeting:
{{contact.name}} - Event:
{{booking_type.title}} - Host:
{{host.name}} - Date/Time:
{{booking.date}},{{booking.time}},{{booking.timezone}} - Location:
{{booking.meeting_url}},{{booking.location}} - Actions:
{{booking.reschedule_url}}
Reminder Email
The default reminder email uses the same set of variables as the confirmation email.
Plan Requirements
All plans receive emails with template variables in the default templates. However, customizing email templates (changing the subject, content, and which variables to include) requires the Individual Plan, Pro, or Agency Plan.
Troubleshooting
Variable showing as blank
- Ensure the variable name is spelled correctly with double curly braces:
{{variable.name}}. {{booking.hours_until}}shows 0 when the email goes out less than 30 minutes before the booking, because it rounds to whole hours. Use{{booking.time_until}}for a readable value such as "30 minutes" that works at any reminder time.- If
{{booking.meeting_url}}is blank, no video meeting link was created for that booking (for example, the booking type has no Zoom, Google Meet or Microsoft Teams location). A line in a custom confirmation email, reminder or calendar invitation that only holds a label such as "Meeting link:" followed by an empty tag is left out automatically, so the booker does not see an empty label.
Wrong name showing in team emails
- Use
{{host.name}}for the assigned team member's name. {{user.name}}always shows the booking type owner, which may differ from the assigned host in team contexts.
Frequently Asked Questions
Can I create custom variables?
You cannot create entirely custom variables, but you can use {{questions.N}} and {{answers.N}} to include responses from your custom pre-meeting questions.
What is the difference between booking.date and booking.starts_at?
{{booking.date}} shows only the date. {{booking.starts_at}} shows both date and time combined, followed by the booker's time zone in brackets (e.g., "Thursday, January 15, 2026 2:30 PM (America/New York)").