Tags can be used in TimeTap to fill in your messaging with dynamic information.
For instance, all of your appointments could not happen on the same date and at the same time, so it would be impossible to hard code a particular date & time into your email template. Instead, we make use of tags so that the emails that get sent out dynamically reflect the proper appointment information. In this case, the %APPT_DATE_TIME% tag (which will reflect the appointment date and time in the client's time zone) allows each user’s appointment emails to always include the appropriate appointment date & time information.
To use an email tag, copy the entire tag (from percentage sign % to percentage sign %) and paste it into your email template wherever you want that information to appear.
Learn more about -
- Appointment Specific Tags
- Location Tags
- Staff Tags
- Reason Tags (Services/Classes/Courses)
- Client Tags
- Invoice Tags
- Account Tags
- Wait List Tags
- Invitation Templates Tags
-
How to Use Tags for Courses
Appointment Specific Tags
| Tag | Definition |
|---|---|
| %APPT_DATE_TIME% | Full appointment start date and time, including the day of the week and timezone (Tuesday, Feb 10, 2026 at 9:00 AM EST) |
| %APPT_DATE_TIME_STAFF% | Full appointment start date and time in the staff member’s timezone (Tuesday, Feb 10, 2026 at 9:00 AM EST) |
| %APPT_CLIENT_START_DATE_TIME_FULL% | Full appointment start date and time including seconds and timezone (Tuesday, February 10, 2026 9:00:00 AM EST) |
| %APPT_CLIENT_START_DATE_FULL% | Full appointment start date written out with the day of the week (Tuesday, February 10, 2026) |
| %APPT_CLIENT_START_DATE_LONG% | Appointment start date written out without the day of the week (February 10, 2026) |
| %APPT_CLIENT_START_DATE_MEDIUM% | Shortened appointment start date using an abbreviated month (Feb 10, 2026) |
| %APPT_CLIENT_START_DATE_SHORT% | Numeric appointment start date in a short format (2/10/26) |
| %APPT_STAFF_START_DATE_FULL% | Full appointment start date written out with the day of the week in the staff member’s timezone (Tuesday, February 10, 2026) |
| %APPT_STAFF_START_DATE_LONG% | Appointment start date written out without the day of the week in the staff member’s timezone (February 10, 2026) |
| %APPT_STAFF_START_DATE_MEDIUM% | Shortened appointment start date using an abbreviated month in the staff member’s timezone (Feb 10, 2026) |
| %APPT_STAFF_START_DATE_SHORT% | Numeric appointment start date in a short format in the staff member’s timezone (2/10/26) |
| %APPT_STAFF_START_DATE_TIME_FULL% | Full appointment start date and time including seconds in the staff member’s timezone (Tuesday, February 10, 2026 9:00:00 AM EST) |
| %APPT_END_DATE% | Appointment end date including the day of the week (Tuesday, Feb 10, 2026) |
| %APPT_START_TIME% | Appointment start time including the timezone (9:00 AM EST) |
| %APPT_START_TIME_STAFF% | Appointment start time in the staff member’s timezone without the timezone abbreviation (9:00 AM) |
| %APPT_END_TIME% | Appointment end time including the timezone (10:00 AM EST) |
| %APPT_END_TIME_STAFF% | Appointment end time in the staff member’s timezone without the timezone abbreviation (10:00 AM) |
| %APPT_DURATION_MINUTES_CLIENT% | Appointment's duration in minutes (not including buffers) |
| %APPT_DURATION_HOURS_CLIENT% | Appointment's duration in hours and minutes (not including buffers) |
| %APPT_ADDRESS% | Address entered for an appointment at a variable location (where the service is to be provided) |
| %CLASS_SESSION_START_TIME% | Class session's start time |
| %CLASS_SESSION_END_TIME% | Class session's end time |
| %CLASS_SESSION_DATE% | Class sessions's scheduled date |
| %CLASS_SESSION_DATE_TIME% | Class sessions's scheduled date and time |
| %NOW_DATE_FULL% | Current date including day of the week, date, and year (Thursday, December 27, 2018) |
| %NOW_DATE_SHORT% | Current date in MM/DD/YY format (3/8/2026) |
| %NOW_DATE_TIME_FULL% | Current date including day of the week, date, year, and time in UTC timezone (Thursday, December 27, 2018 4:31:34 PM UTC) |
| %NOW_DATE_TIME_SHORT% | Current date and time in MM/DD/YY HH:MM format, time is in UTC timezone (12/27/18 4:31 PM) |
| %APPT_ID% | Appointment ID number |
| %APPT_CREATED_DATE% | Appointment's created date |
| %APPT_CREATED_DATE_TIME% | Appointment's created date and time |
| %APPT_STATUS% | Status of appointment |
| %APPT_SUBSTATUS% | Sub status of appointment |
| %APPT_REASON_DESC% | Returns the "External Name" of a Multi-Duration Time field - if there is no Multi-Duration External Name set, it returns the "Service Name" |
| %CUSTOM_FIELDS% | Appointment fields set up under Define Field Labels |
| %CLASS_SESSION_CUSTOM_FIELDS% | Appointment fields set up for class under Define Field Labels |
| %CLASS_SESSION_CREATED_USER% | Name of the user who created the scheduled class session |
| %CLASS_SESSION_COURSE_NAME% | Name of the course that the scheduled class session belongs to |
| %CLASS_SESSION_STATUS% | Status of class session |
| %CLASS_SESSION_ID% | Class session's ID number |
| %APPT_SEATS% | Total number of seats (for class based bookings) |
| %CLIENT_CONFIRM_URL% | A link that moves an appointment to a Confirmed status when visited |
| %MANAGE_APPT_URL% | A link to a dedicated page where the client can cancel or reschedule their appointment |
| %CLIENT_CONSENT_DECLINE_URL% | A link to a landing page where the client can decline consent to their personal information (must be enabled for your account) |
| %APPOINTMENT_NOTE% | New appointment note entered when creating appointment |
| %COMPLETED_NOTE% | Note entered by staff after marking an appointment as Completed |
| %CHANGE_NOTE% | Note entered by staff after editing/rescheduling an appointment |
| %CHANGE_SUMMARY_CLIENT% | Summary of rescheduling or editing changes made to the appointment sent in client's timezone |
| %CHANGE_SUMMARY_STAFF% | Summary of rescheduling or editing changes made to the appointment sent in staff's timezone |
| %CANCEL_NOTE% | Note entered by client/staff when canceling appointment |
| %NOSHOW_NOTE% | Note entered by staff after marking an appointment as No Show |
| %APPT_CLIENT_CONFIRMED_FLAG% | Indicates whether client has confirmed appointment and status was change to Open - Confirmed displayed as "Yes" or "No" |
| %APPT_CLIENT_CONFIRMED_TIMESTAMP% | Date when client confirmed the appointment |
| %APPT_QR_CODE% | QR code attached to the appointment ID |
| %APPT_CHECKIN_QR_CODE% | QR code that will take you to the checkin screen in backoffice - this can be used to check in a client, and can be added to the appointment email. |
| %APPT_VIRTUAL_ROOM_URL% | Join URL for appointments made at Microsoft Teams Virtual Locations |
Repeating Appointment Email Tags | |
| %RECURRING_APPT_STARTDATE% | The start date for the repeating appointment series |
| %RECURRING_APPT_ENDDATE% | The end date for the repeating appointment series |
| %FREQUENCY% | How often the appointment takes place (every "week", "2 weeks", "3 weeks", "month") |
| %DAYS_OF_THE_WEEK% | Which days of the week the appointment is scheduled for |
| %WEEK_OF_THE_MONTH% | If repeating appointment is set on a monthly basis, this will fill in whether it is happening on the 1st, 2nd, 3rd or 4th week - so if the appointment is on the first Tuesday, it would fill in with "1st" |
Location Tags
| %LOCATION_NAME% | Location name |
| %LOCATION_NAME_INTERNAL% | Location internal name |
| %LOCATION_CONTACT_NAME% | Location contact name |
| %LOCATION_ADDRESS% | Location's address or description (if it's a virtual location) |
| %LOCATION_VIRTUAL_ROOM_URL% | Links to the Virtual Room URL found on the location's profile |
| %LOCATION_VIRTUAL_ROOM_ID% | ID of the Virtual Room ID found on the location's profile |
| %LOCATION_DIRECTIONS% | Directions as saved on Settings > Locations > Location Profile |
| %LOCATION_INSTRUCTIONS2% | Additional or alternate directions for locations as saved on Settings > Locations > Location Profile |
| %LOCATION_OFFICEPHONE% | Phone number for location as saved on the location's profile |
| %LOCATION_EMAIL% | Email address as saved on the location's profile |
| %LOCATION_TIMEZONE% | Timezone assigned to the location |
| %LOCATION_PVT_URL% | Private URL for the location |
Location Group Tags
|
%LOCATION_GROUP_NAME% |
Location group name |
| %LOCATION_GROUP_BOOKURL% | Location group booking URL |
| %LOCATION_GROUP_LOGOURL% | Location group logo URL |
| %LOCATION_GROUP_DESCRIPTION% | Location group description |
| %LOCATION_GROUP_DIRECTIONS% | Location group directions |
| %LOCATION_GROUP_TIMEZONE% | Timezone assigned to the location group profile |
| %LOCATION_SUPER_GROUP_NAME% | Location super group name |
| %LOCATION_SUPER_GROUP_BOOKURL% | Location super group booking URL |
| %LOCATION_SUPER_GROUP_LOGOURL% | Location super group logo URL |
| %LOCATION_SUPER_GROUP_DESCRIPTION% | Location super group description |
| %LOCATION_SUPER_GROUP_DIRECTIONS% | Location super group directions |
Staff Tags
| %STAFF_FULLNAME% | Name of staff member |
| %STAFF_FIRSTNAME% | First name of staff member |
| %STAFF_INTERNAL% | Staff's internal name |
| %STAFF_DESCRIPTION% | Staff's bio as saved on their staff profile |
| %STAFF_EMAIL% | Staff's email as saved on their staff profile |
| %PROFESSIONAL_EMAIL% | Staff's email as saved on their staff profile |
| %STAFF_SKYPE_ID% | The staff's Skype ID as saved on their staff profile |
| %STAFF_VIRTUAL_ROOM_URL% | The link to the staff's personal virtual meeting room (Zoom, Webex, etc.) as saved on their staff profile |
| %STAFF_VIRTUAL_ROOM_ID% | The meeting ID to the staff's personal virtual meeting room (Zoom, Webex, etc.) as saved on their staff profile |
| %STAFF_VIRTUAL_ROOM_URL2% | Any additional link to a staff's personal virtual meeting room - simply update the number to correspond to the order in which they are listed on the staff profile |
| %STAFF_MOBILE% | Staff's phone number listed on the staff profile |
| %STAFF_PRIVATE_URL% | Private URL for staff |
| %STAFF_AVAIL_URL% | URL for the availability landing page for the staff (staff must be assigned to a security level where guest landing page has is allowed) |
| %ALL_STAFF_EMAILS% | Concatenated list of all the email addresses of all staff assigned to the appointment (main staff and additional staff list) |
| %OTHER_STAFF_EMAILS% | Concatenated list of all the email addresses of the staff assigned as additional staff on an appointment |
| %OTHER_STAFF_FULLNAME% | Concatenated list of all the names of the staff assigned as additional staff to an appointment |
| %COORD_STAFF_FULLNAME% | External display name for coordinator staff |
| %COORD_STAFF_EMAIL% | Email address for coordinator staff |
| %COORD_STAFF_MOBILE% | Phone number for coordinator staff |
| %STAFF_USERNAME% | Staff's TimeTap username |
| %STAFF_INSTRUCTIONS% | Email instructions on the staff profile (Overview > Email Settings) |
| %STAFF_INSTRUCTIONS2% | Additional email instructions on the staff profile (Overview > Email Settings) |
| %STAFF_SIGNATURE% | Email signature on the staff profile (Overview > Email Settings) |
| %STAFF_IMAGE_URL% | URL for staff profile picture (Learn how to use this tag to display the staff picture in messaging) |
Reason Tags (Services/Classes/Courses)
| %REASON% | Service/class/course name |
| %REASON_INTERNAL% | Service/class/course internal name |
| %REASON_DESCRIPTION% | Service/class/course description as saved on reason profile |
| %REASON_PRICE% | Price for service/class/course |
| %RESOURCE_NAME% | Name of resource |
| %APPT_AMOUNT% | Service or class session price |
| %SET_NAME% | Course set name |
| %CLASSROOM% | Classroom as saved in class session details |
| %REASON_PRIVATE_URL% | Private URL for service or class |
| %REASON_GROUP_NAME% | Displays the reason group name if one is applied |
| %REASON_INSTRUCTIONS% | Instructions field from service/class/course profile (can be added on the profile by going to Settings > Services & Classes > View Details) |
| %REASON_INSTRUCTIONS2% | Additional Instructions field from service/class/course profile (can be added on the profile by going to Settings > Services & Classes > View Details) |
| %REASON_GROUP_EMAIL_INSTRUCTIONS% | Special instructions or information that needs to be included when a certain reason group has been selected (can be added on reason group profile by going to Settings > Services & Classes > Reason Groups > View Details) |
| %CLASS_CURRENT_CAPACITY% | Current capacity of the class (for class based bookings) |
| %CLASS_MAX_CAPACITY% | Max capacity of the class (for class based bookings) |
Client Tags
| %CLIENT_FULLNAME% | Full name of client |
| %CLIENT_FIRSTNAME% | Just the client's first name |
| %CLIENT_LASTNAME% | Just the client's last name |
| %CLIENT_ADDRESS1% | Address 1 |
| %CLIENT_ADDRESS2% | Address 2 |
| %CLIENT_CITY% | City |
| %CLIENT_STATE% | State |
| %CLIENT_ZIP% | Zip code |
| %CLIENT_EMAILADDRESS% | Client's email address |
| %CLIENT_PHONE% | All client's phone numbers (home, mobile & work) |
| %CLIENT_HOME_PHONE% | Client's home phone number |
| %CLIENT_MOBILE_PHONE% | Client's mobile/cell phone number |
| %CLIENT_WORK_PHONE% | Client's work phone number |
| %CLIENT_COMPANYNAME% | Client's company name |
| %CLIENT_ID% | Client's ID (can be passed as a parameter in booking URL to auto log clients in to scheduler) |
| %CLIENT_TIMEZONE% | Client's timezone |
| %CLIENT_LOCALE% | Client's locale |
| %CLIENT_STATUS% | Client's status |
| %CLIENT_CREATED_DATE% | Client's created date |
| %WAIT_LIST_TIMES_CLIENT_URL% | Link to landing page that shows all active waitlist holds a client can claim |
| %REQUEST_EMAILADDRESS% | Client's email address when they request a password reset using their email/username. |
| %CLIENT_FORM_URLS_LIST% | Only sends out links to forms that are in OPEN or SENT status, not SUBMITTED |
| %CLIENT_FORM_URLS_LIST_ALL% | Will show forms in OPEN, SENT, and SUBMITTED status |
| %CLIENT_FORM_URLS_LIST_SUBMITTED% | Will show forms only in SUBMITTED status |
Invoice Tags
| %INVOICE_NUMBER% | Displays the number shown on the invoice detail screen |
| %INVOICE_DATE% | Displays the date that the invoice was issued. |
| %INVOICE_SUBTOTAL_AMOUNT% | Displays the subtotal amount on the invoice |
| %INVOICE_TAX_AMOUNT% | Displays the total tax amount on the invoice (applies to the subtotal to create the total) |
| %INVOICE_TAX2_AMOUNT% | Second tax line item in case your business's country/area has two tax line items |
| %INVOICE_TRANSACTION_FEE% | This is the transaction fee charged as part of the invoice |
| %INVOICE_AMOUNT% | This is the invoice total amount that is shown on the invoice |
| %INVOICE_PAID_AMOUNT% | This is the amount that the client has paid toward the invoice so far |
| %INVOICE_BALANCE_AMOUNT% | This is the remaining balance (the invoice total amount minus the paid amount) |
| %INVOICE_PRINT_URL% |
This prints the link to download the invoice as a PDF |
Account Tags
| %BUSINESS_NAME% | Name of the business |
| %BUSINESS_EXT_URL% | Displays the URL that has been assigned to the business - must have the allowBusinessExternalUrl config flag enabled |
Wait List Tags
| %WAIT_LIST_REMOVE_URL% | Used in wait list specific templates and populates the link where users can remove themselves from the wait list for registrations going forward - triggers the Wait List Registration Removed template to be sent |
Invitation Template Tags
| %BOOK_INVITATION_URL% | Used in Invitation templates and populates the link for a client to schedule an appointment with your business for the set location, staff, service or class chosen before sending the template - the associated booking link also includes the invitation ID so that you can track the progress of that invitation on the Monitor Campaigns tab |
How to use tags for Courses
The following section is intended to be used as a guide for when you want to show your clients information regarding their course registration, such as a list of course set sessions, the classroom number where the sessions are scheduled, their appointments date & time, etc.
TimeTap uses Velocity Template Language (VTL) to loop through the series of sessions (for each), gather the pertinent information and then populate this information in the appointment email templates as well as in the scheduler.
The default VTL in the New Course Registration template allows you to create a list of all the sessions the client registered for -
When a client books into a course set and the email confirmation is generated, VTL will convert the syntax highlighted above to display a list of all the sessions' times and dates in the course set for which the client registered -
The expression $appointment.appointmentDateTimeClient is what runs through the loop of data and populates it in the email template, specifically the .appointmentDateTimeClient tag within the expression. This last tag can be replaced with any of the tags below -
Tag |
Definition |
|---|---|
.appointmentDateTimeClient |
Date and time of the appointment in client's timezone |
.classroom |
Classroom field in course session details |
.manageApptURL |
A link to a dedicated page where a client can cancel or reschedule their appointment for the specific session of the course |
.endTime |
End time of the appointment in the client's timezone |
The tags above can also be be used in addition to the default VTL to display additional information. In the example below I added the tag $appointment.classroom to display the end time for each course session -
When the client receives this template, they will see the room number listed next to the date and time of the session -
If you have any questions on how Velocity Template Language works, visit the Velocity documentation page for more info.