Skip to content

Smartcodes ​

Smartcodes are the {{group.key}} placeholders email templates, landing pages, and notification bodies are written with. 59 are declared in Helper::getEditorShortCodes(); a few more are derived per event at runtime.

Codes marked HTML only are offered exclusively in contexts that accept markup — a plain-text email body does not get them. The ##code## form is used where a value has to survive being placed in an href.

Groups ​

GroupKeyCodes
Attendee Dataguest9
Booking Databooking34
Host Datahost3
Otherother7
Payment Datapayment6

Attendee Data ​

SmartcodeDescriptionHTML only
{{guest.first_name}}Guest First NameNo
{{guest.last_name}}Guest Last NameNo
{{guest.full_name}}Guest Full NameNo
{{guest.email}}Guest EmailNo
{{guest.note}}Guest NoteNo
{{booking.phone}}Guest Main Phone Number (if provided)No
{{guest.timezone}}Guest TimezoneNo
{{guest.total_guest}}Total Guest CountNo
{{guest.form_data_html}}Guest Form Submitted Data (HTML)Yes

Booking Data ​

SmartcodeDescriptionHTML only
{{booking.event_name}}Event NameNo
{{booking.description}}Event DescriptionNo
{{booking.booking_title}}Booking TitleNo
{{booking.additional_guests}}Additional GuestsNo
{{booking.full_start_end_guest_timezone}}Full Start Date Time (with guest timezone)No
{{booking.full_start_end_host_timezone}}Full Start Date Time (with host timezone)No
{{booking.full_start_and_end_guest_timezone}}Full Start & End Date Time (with guest timezone)No
{{booking.full_start_and_end_host_timezone}}Full Start & End Date Time (with host timezone)No
{{booking.all_bookings_short_times_guest_timezone}}All Bookings Short Times (with guest timezone)No
{{booking.all_bookings_short_times_host_timezone}}All Bookings Short Times (with host timezone)No
{{booking.all_bookings_full_times_guest_timezone}}All Bookings Full Times (with guest timezone)No
{{booking.all_bookings_full_times_host_timezone}}All Bookings Full Times (with host timezone)No
{{booking.start_date_time}}Event Date Time (UTC)No
{{booking.start_date_time_for_attendee}}Event Date Time (with attendee timezone)No
{{booking.start_date_time_for_host}}Event Date Time (with host timezone)No
{{booking.start_date_time_for_attendee.format.Y-m-d}}Event Date Time (with attendee timezone) (Ex: 2024-05-20)No
{{booking.start_date_time_for_host.format.Y-m-d}}Event Date Time (with host timezone) (Ex: 2024-05-20)No
{{booking.location_details_text}}Event Location DetailsNo
{{booking.cancel_reason}}Event Cancel ReasonNo
{{booking.start_time_human_format}}Event Start Time (ex: 2 hours from now)No
##booking.cancelation_url##Booking Cancellation URLNo
##booking.reschedule_url##Booking Reschedule URLNo
##booking.admin_booking_url##Booking Details Admin URLNo
{{booking.source_url}}Source URLNo
{{booking.utm_source}}UTM SourceNo
{{booking.utm_medium}}UTM MediumNo
{{booking.utm_campaign}}UTM CampaignNo
{{booking.utm_term}}UTM TermNo
{{booking.utm_content}}UTM ContentNo
{{booking.booking_hash}}Unique Booking HashNo
{{booking.reschedule_reason}}Event Reschedule ReasonNo
{{booking.previous_meeting_date_time_host_timezone}}Previous Meeting Date & Time (with host timezone)No
{{booking.previous_meeting_date_time_guest_timezone}}Previous Meeting Date & Time (with guest timezone)No
{{booking.location_details_html}}Event Location Details (HTML)Yes

Host Data ​

SmartcodeDescriptionHTML only
{{host.name}}Host NameNo
{{host.email}}Host EmailNo
{{host.timezone}}Host TimezoneNo

Other ​

SmartcodeDescriptionHTML only
{{event.id}}Event IDNo
{{calendar.id}}Calendar IDNo
{{event.title}}Event TitleNo
{{calendar.title}}Calendar TitleNo
{{calendar.description}}Calendar DescriptionNo
{{add_booking_to_calendar}}Add Booking to CalendarNo
{{event.calendar_id}}Calendar IDYes

Payment Data ​

SmartcodeDescriptionHTML only
{{payment.payment_total}}Payment TotalNo
{{payment.payment_status}}Payment StatusNo
{{payment.payment_method}}Payment MethodNo
{{payment.currency}}CurrencyNo
{{payment.payment_date}}Payment DateNo
{{payment.receipt_html}}Payment Receipt (HTML)Yes

Per-event codes ​

These are added to the list when an event is in context, so they depend on that event's configuration:

PatternNotes
{{booking.custom.<field_key>}}One per custom booking field on the event; date fields also get a .format.Y-m-d variant.
{{team_member.<n>.name}} / {{team_member.<n>.email}}One pair per extra host on a multi-host event, numbered from 1.

Adding your own ​

The whole group map passes through fluent_booking/editor_shortcodes_groups, so an add-on can append a group or extra codes:

php
add_filter('fluent_booking/editor_shortcodes_groups', function ($groups, $calendarEvent, $isHtmlSupported) {
    $groups['my_addon'] = [
        'title'      => 'My Add-on',
        'key'        => 'my_addon',
        'shortcodes' => [
            '{{my_addon.reference}}' => 'Internal reference',
        ],
    ];

    return $groups;
}, 10, 3);

Parsed from fluent-booking/app/Services/Helper.php:1882.