TidyCal Email Template Variables Reference

Use TidyCal email template variables to personalize booking confirmation and reminder emails with dynamic content like attendee names, dates, times, and meeting 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 or Agency Plan. Free Plan users receive default confirmation and reminder emails.

TidyCal email template editor showing template variables like contact name, booking date, time, timezone, and meeting URL

Booking Variables

Variable Returns
{{booking.date}} Booking date formatted per your locale
{{booking.time}} Booking time in 12 or 24-hour format per your settings
{{booking.timezone}} Timezone (e.g., "America/New_York")
{{booking.starts_at}} Combined date and time (e.g., "January 15, 2026 2:30 PM")
{{booking.hours_until}} Hours remaining until booking starts
{{booking.minutes_until}} Minutes remaining until booking starts
{{booking.location}} Meeting location (address, URL, or phone)
{{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, 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 or Agency Plan.

Troubleshooting

Variable showing as blank

  • Ensure the variable name is spelled correctly with double curly braces: {{variable.name}} .
  • {{booking.hours_until}}  and {{booking.minutes_until}}  are only meaningful in reminder emails (they show 0 in confirmations).
  • If {{booking.meeting_url}}  is blank, no video conferencing is configured for the booking type.

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 (e.g., "January 15, 2026 2:30 PM").

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.