$tokens['event_type_id:name']['text/html'] = CRM_Core_PseudoConstant::getName('CRM_Event_BAO_Event', 'event_type_id', $event['event_type_id']);
$tokens['contact_phone']['text/html'] = $event['loc_block_id.phone_id.phone'];
$tokens['contact_email']['text/html'] = $event['loc_block_id.email_id.email'];
+ $tokens['event_tz:label']['text/html'] = !empty($event['event_tz']) ? CRM_Core_SelectValues::timezone()[$event['event_tz']] : '';
+ $tokens['event_tz:name']['text/html'] = $event['event_tz'] ?? '';
foreach ($this->getTokenMetadata() as $fieldName => $fieldSpec) {
if (!isset($tokens[$fieldName])) {
return ['event_type_id',
'title',
'id',
+ 'event_tz',
'start_date',
'end_date',
'summary',
event.title :Annual CiviCRM meet
event.start_date :October 21st, 2008
event.end_date :October 23rd, 2008
+event.event_tz:label :America/New York
event.event_type_id:label :Conference
event.summary :If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now
event.contact_email :event@example.com
'{event.title}' => 'Event Title',
'{event.start_date}' => 'Event Start Date',
'{event.end_date}' => 'Event End Date',
+ '{event.event_tz:label}' => 'Event Time Zone',
'{event.event_type_id:label}' => 'Event Type',
'{event.summary}' => 'Event Summary',
'{event.contact_email}' => 'Event Contact Email',
'description' => 'event description',
$this->getCustomFieldName('text') => 'my field',
'loc_block_id' => $locationBlockID,
+ 'event_tz' => 'America/New_York',
])['id'];
// Create an unrelated participant record so that the ids don't match.
// this prevents things working just because the id 'happens to be valid'