Skip to content
Start a Free 14-Day Trial

Fields

Fields dynamically insert appointment, participant, contact, and message data into Apptoto message templates using the {{ FIELDNAME }} syntax.

Fields insert dynamic appointment or contact data into each message. This allows you to create Auto Message templates that can be used across appointments rather than you needing to customize the message for each appointment and client/patient.

You add them using the Insert Field button in the Message Editor, or by typing {{ FIELDNAME }} directly.

Apptoto message template with dynamic fields inserted

Fields can be used in:

FieldDescription
event.timeThe start of the appointment unformatted. (Use the date filter to format it, e.g. 2013-11-15 10:00:00 -0800).
event.time_phraseNicely formatted time based on locale, e.g. “8:00am”.
event.time_hourThe hour (integer) that the event begins. e.g. “15” for 3pm. Mainly used in conditions.
event.time_hhmmThe hour and minute as a number (integer). e.g. “1530” for 3:30pm. Mainly used in conditions.
event.time_zoneThe time zone of the event. e.g. “PDT”.
event.time_zone_expandedThe expanded version of the time zone, e.g. “Pacific Daylight Time” (useful in voice scripts).
event.dateDate based on locale. e.g. “6-21”.
event.date_phraseExpanded date. e.g. “Tuesday, March 8th”.
event.date_abbreviated_phraseAbbreviated date. e.g. “Tue, Mar 8th”.
event.date_phrase_and_timeExpanded date with time. e.g. “Tuesday, March 8th at 2:00 pm”.
event.date_abbreviated_phrase_and_timeAbbreviated date with time. e.g. “Tue, Mar 8th at 2:00pm”.
event.date_with_yearDate with year. e.g. “2014-06-21”.
event.start_timeSame as event.time.
event.previous_start_timeIf appointment is rescheduled, then this will be the previous start time.
event.start_time_phraseSame as event.time_phrase.
event.end_timeThe end of the appointment unformatted (e.g. 2013-11-15 11:00:00 -0800).
event.end_time_phraseNicely formatted end time based on locale. e.g. “8:00am”.
event.day_and_time_phrasePhrase useful in reminders. Results in: “[today] at [time]” if the event is today (e.g. “today at 8:00 am”); “[tomorrow] at [time]” if the event is tomorrow; “[day of week] at [time]” if the event is within 6 days (e.g. “Friday at 8:00 am”); “[day of week], [Month] [Day] at [Time]” if the event is 7 or more days later (e.g. “Monday, December 2nd at 8:00 am”).
event.day_phraseSame as day_and_time_phrase but without the time.
event.day_and_time_range_phrasePhrase useful in reminders. Results in “tomorrow between 2 and 3 PM” if the event is tomorrow or “on Saturday, November 23rd between 2 and 3pm” if the date is after tomorrow.
event.specific_day_phraseSame as event.day_phrase, however the day is forced to be absolute (e.g. “Wednesday” instead of “tomorrow”).
event.specific_day_and_timephraseSame as event.day_and_time_phrase, however the day is forced to be absolute (e.g. “Wednesday” instead of “tomorrow”).
event.all_dayReturns true if the appointment is an all-day appointment.
event.durationThe length of the appointment in minutes. To say the number of hours use: {{event.duration | divided_by:60 }}.
event.days_in_advanceThe number of days between when the appointment was created on the calendar and when the appointment takes place. This is calculated on a strict 24-hour basis — if the appointment is for 4pm tomorrow and is booked at 2pm the previous day, then days_in_advance will be 2 since it’s more than 24 hours. If that is an issue, consider using hours_in_advance below.
event.hours_in_advanceThe number of hours between when the appointment was created on the calendar and when the appointment takes place.
event.days_untilThe number of days until the appointment.
event.days_sinceThe number of days since the appointment.
event.titleThe title of the appointment in your calendar entry.
event.whereThe contents of the “where” field in your calendar entry.
event.locationSame as event.where.
event.contentThe contents of the “content” field in your calendar entry.
event.allThe title, where, and content in one string with a | character in between each. Useful in if blocks — e.g. {% if event.all contains 'haircut' %}This is a haircut appointment{% endif %}.
eventSame as event.all.
event.customThe data found in your appointment. Apptoto looks for key:value in your appointments and then makes those items available for you through this field. e.g. if your appointment has service: haircut on the body of the appointment, then you can access it in your message templates with event.custom.service. See Custom Fields for more information.
event.color_id_on_calendarThe color of the appointment on your calendars (only supported with Google Calendar currently).
event.categoriesThe categories (comma-delimited) of the appointment on your calendar (only supported by Outlook and/or Exchange currently).
event.show_asThe “Show As” label of the appointment. e.g. “Busy”.
event.recurringTrue if the appointment is a repeating appointment.
event.createdThe date and time that the appointment was created on the calendar.
event.participant_countThe number of participants for the appointment.
event.any_confirmedTrue if any participant of the event has said they are coming.
event.any_not_comingTrue if any participant of the event has said they are not coming.
event.any_cancelledSame as event.any_not_coming.
event.any_respondedTrue if any participant of the event has responded.
event.all_responsesA string containing all of the responses from all participants separated by | characters.
event.was_rescheduledTrue only if event was rescheduled.
event.line_with_email_addressReturns the line from the event (title if it’s in the title, or the particular line if it’s in the body) containing the participant’s email address. Useful if you want to customize the message for each participant depending on information on that line.
event.line_with_phone_numberSame as event.line_with_email_address but for the participant’s phone number.
event.line_with_email_or_phoneSame as event.line_with_email_address but for either email or phone number. The line containing the email address takes precedence.
event.is_first_appointment_of_day_on_calendarTrue if the event is the first event of the day on its calendar. Useful if you want to send a different message for the first appointment. Often used to send a specific time for the first appointment of the day and then send a time range for all subsequent appointments.

Depending on your location, date formatting may follow: Day of Week DD MM HH:MM instead of the date formatting above (ex: Tuesday 26 November at 8:00 am).

Virtual Meeting Fields work for both:

  • Appointments created through your Zoom, Microsoft Teams, or Google Meet integrations.
  • Appointments created on your calendar manually with conference information in the body. Apptoto will attempt to extract virtual meeting information from the event body. This works with Zoom, GoToMeeting, Webex, and Jitsi. If you need Apptoto to recognize conference information from other conference solutions, please email support@apptoto.com.
FieldDescription
event.is_virtual_meeting(Boolean) True if the meeting was created through the Apptoto/Zoom integration OR if Apptoto detects that the appointment is a virtual meeting. False otherwise.
virtual_meeting.join_linkThe link your client (or you) should click on to join the virtual meeting at meeting time.
virtual_meeting.join_buttonThe join link as a button (for email messages and appointment pages only).
virtual_meeting.meeting_idThe “Meeting Id”, “Meeting Number”, or “Access Code” for the virtual meeting.
virtual_meeting.passcodeThe “Passcode”, “Password”, or “Access Code” for the virtual meeting.
virtual_meeting.call_in_numbersAll of the “Call In Numbers” separated by commas.
virtual_meeting.call_in_numberThe first “Call In Number” found.
virtual_meeting.inviteThe full invite text (for Zoom meetings created through Apptoto only).
FieldDescription
calendar.nameThe name of the calendar. By default this will be the name of the calendar at the source, but you can change the name of the calendar on the calendar settings page.
calendar.owner_nameThe name of the calendar owner. This is the same as owner.name below.
calendar.all_event_titles_todayAll of the event titles on the same day as the appointment separated by | characters. This is useful if you want to set up a condition that blocks messages from going out for an appointment that is on the same day as another appointment.
FieldDescription
owner.nameThe name of the calendar owner. This is the same as calendar.owner_name above.
owner.name_and_companyThe name and company of the calendar owner.
owner.name_and_company_linkThe name and company of the calendar owner in link form (for use in emails and appointment pages).
owner.phoneCalendar owner’s phone number.
owner.phone_linkCalendar owner’s phone number in link form (for use in emails and appointment pages).
owner.emailCalendar owner’s email address.
FieldDescription
location.nameThe name of the location (on the “Locations” tab).
location.phoneThe phone number for the location.
location.phone_linkThe phone number for the location in link form (for use in emails and appointment pages).
location.addressThe address of the location.
location.address_htmlThe address of the location formatted with <br/> (for use in emails and appointment pages).
location.map_linkThe address of the location linked to Google Maps.
location.descriptionThe description of the location. This is often used to add directions to your location.

These fields use the values provided on the Settings > Account tab inside of your Apptoto dashboard.

FieldDescription
user.nameThe name of the user.
user.companyYour company name for the user.
user.name_and_companyThe name and company of the user.
user.company_linkYour company name in link form (for use in emails and appointment pages).
user.company_urlYour company URL.
user.phoneYour phone number.
user.phone_linkYour phone number in link form (for use in emails and appointment pages).
user.emailYour email address.
user.outgoing_emailYour outgoing email address. This might be different than your email address for your account if you’ve configured it.

These fields pull in information from the participant or contact.

FieldDescription
participant.nameThe name of the participant (e.g. “Fred Smith”).
participant.first_nameThe first name of the participant (e.g. “Fred”).
participant.last_nameThe last name of the participant (e.g. “Smith”).
participant.emailThe email address of the participant (e.g. foo@gmail.com).
participant.phoneThe phone number of the participant (e.g. (650) 555-1212).
participant.normalized_phoneThe normalized phone number of the participant (e.g. +16505551212).
participant.numberWhich participant this is for the appointment. The first participant returns 1.
participant.reminder_stateThe current reminder state for the participant. Values include initial, reminded, confirmed, not_coming, not_coming_no_reschedule, not_coming_needs_reschedule.
participant.remindedTrue if any reminder has been sent.
participant.booking_stateThe current booking state for the participant. Values include initial, sent, accepted, declined.
participant.booking_sentTrue if any booking (i.e. invitation) has been sent.
participant.check_in_stateThe current check in state for the participant. Values include initial, arrived, ontime, late, noshow.
participant.attendedReturns true if the current check-in state for the participant is arrived, ontime, or late.
participant.stateThis field rolls up the booking_state, reminder_state, and check_in_state into one. When the check_in_state is set, this field is the check_in_state. If the check_in_state is not sent, then the reminder_state is used. If the reminder_state is not set, then the booking_state is used. If none of them are set then the value of this field is initial.
participant.state_on_calendarThe current booking state for the attendee on the source calendar. This is really only useful for calendar types (like Google) which have the ability to send invites themselves. If the client accepts/declines through those invites, then you can access that information through the participant.state_on_calendar field. The values are initial, sent, accepted, declined, and tentative.
participant.all_responsesA string containing all of the responses from this participant separated by | characters.
participant.groupAppointments can be grouped together using the Appointment Grouping feature (all appointments with the same person on the same day can be considered a group, for example). Only one set of messages can be sent for all of them. The messages can list out all of the appointments on that same day using this field.
participant.group_countThe number of appointments in this group.
participant.customVery similar to event.custom but data is pulled from the associated contact (if one exists). See Custom Fields for more information.
participant.localeThe locale for the participant based on which Message Schedule was used for the participant. The possible values are en-US, en-AU, en-GB, nl, fr, es, and de.

These fields pull in information from the contact in the address book, if the event is linked to a contact via Apptoto auto-matching or explicitly.

FieldDescription
contact.nameThe name of the participant (e.g. “Fred Smith”).
contact.first_nameThe first name of the participant (e.g. “Fred”).
contact.last_nameThe last name of the participant (e.g. “Smith”).
contact.emailThe email address of the participant (e.g. foo@gmail.com).
contact.phoneThe phone number of the participant (e.g. (650) 555-1212).
contact.normalized_phoneThe normalized phone number of the participant (e.g. +16505551212).
contact.zipThe ZIP code of the contact (e.g. 97701).
contact.external_idThe external id of the contact in the address book.
contact.customVery similar to event.custom but data is pulled from the associated contact in the address book. See Custom Fields for more information.

Message fields are fields that are specific to the type of message that is being sent. For example, reminders have the following fields.

FieldDescription
reminder.timeThe date and time that the reminder is being generated. This is not the appointment time.
reminder.linkThe URL to the Appointment Page for the reminder. The user will be able to find out more information about the appointment and confirm/cancel from the Appointment Page.
reminder.promptThe prompt string automatically generated depending on the type of reminder. e.g. if the reminder type is an SMS message, then the prompt will say “Please reply with 1 to confirm.” if you have it set up to only allow confirmations.
reminder.buttonsOnly useful in email messages. Same thing as prompt above except the options are buttons that the end user can click on.

Booking and Followup messages have the same fields as above, e.g. booking.link or followup.link.

These fields are useful in auto-reply actions.

FieldDescription
reply.triggerThe type of trigger that caused the auto reply action to take place.
reply.contentThe reply from the participant.
replySame as reply.content.
reply.timeThe date and time of when the participant replied.

These fields are available only when the appointment was booked through an Apptoto Online Booking page.

FieldDescription
booking_fieldsThe booking fields as a long string — one field each.
CUSTOM BOOKING FIELDThe value entered by the client when booking an appointment and filling out one of the custom fields for your booking page.
ip_addressThe IP address of the client used when booking the appointment.
type.labelThe appointment type’s label selected.
type.descriptionThe appointment type’s description.
type.tokenThe shortened “token” of the appointment type. Typically very similar to the label, but with no spaces.
reschedule_linkA direct link back to the booking page that immediately asks the client to pick a new time.
booking_page.nameThe name of the booking page.
booking_page.titleThe title of the booking page.
booking_page.urlThe URL of the booking page used.