The Events Calendar uses a template system it calls views to render the calendar and event pages. You can customize these templates by placing copies of them in your theme — this is called a template override. This article covers the template folder structure, how to locate the files you need, and how to create overrides for both theme and plugin developers.
⚠️ Never edit template files directly inside the plugin. Changes made there will be lost every time the plugin updates. Always make overrides in a child theme so your customizations are preserved.
Template Structure
The main template folder for calendar views is located at /src/views/v2/ within each plugin. This directory contains the primary templates responsible for rendering each calendar view, including the looping logic that populates the calendar with events.
Top-Level View Templates
The top-level template files define the overall layout and structure of each view.
The Events Calendar:
month.phplist.phpday.php

Events Calendar Pro:
map.phpphoto.phpsummary.phpweek.php

You might need to customize a top-level view template if you want to add custom HTML classes to the main container, alter the overall layout of a view, or make other structural changes.
Template Parts Within Each View
Each top-level view template has a corresponding subfolder inside /src/views/v2/ containing the parts that make up that view. For example, /list, /month, /day (TEC) and /photo, /week (ECP).
Three template part files appear consistently across all view folders and are important reference points when customizing:
top-bar.php— renders the calendar header/toolbar areanav.php— renders the navigation controlsevent.php— renders each individual event within the view
Visual Reference: List View

Locating Template Files
All plugin files live in your server’s /wp-content/plugins folder. Here’s where to find the /src/views/v2/ template directory for each plugin:
| Plugin | Template Files |
|---|---|
| The Events Calendar | /the-events-calendar/src/views/v2/ |
| Events Calendar Pro | /events-calendar-pro/src/views/v2/ |
| Event Tickets | /event-tickets/src/views/v2/ |
| Event Tickets Plus | /event-tickets-plus/src/views/v2/ |
| Community Events | /the-events-calendar-community-events/src/views/ |
💡 A quick way to find the correct override path for any template is to open the file itself. The header comment at the top of every template file includes the path to use for your theme override.

Exceptions: Single Event, Organizer, and Venue Pages
Single event, organizer, and venue pages still use files from the legacy design, with both classic editor and block editor versions.
| Plugin | Template File | Theme Override Location |
|---|---|---|
| Classic Editor | ||
| The Events Calendar | /the-events-calendar/src/views/single-event.php | [your-theme]/tribe-events/single-event.php |
| The Events Calendar | /the-events-calendar/src/views/modules/ | [your-theme]/tribe-events/modules/ |
| Events Calendar Pro | /events-calendar-pro/src/views/pro/modules/ | [your-theme]/tribe-events/pro/modules/ |
| Block Editor | ||
| The Events Calendar | /the-events-calendar/src/views/single-event-blocks.php | [your-theme]/tribe/events/single-event-blocks.php |
| The Events Calendar | /the-events-calendar/src/views/single-event/ | [your-theme]/tribe/events/single-event/ |
| Events Calendar Pro | /events-calendar-pro/src/views/blocks/ | [your-theme]/tribe/events-pro/blocks/ |
JavaScript Templates
💡 The Events Calendar is not fully compatible with Full Site Editing themes. We recommend testing with Twenty Twenty if you encounter compatibility issues.
JavaScript is used to power mobile calendar views and the tooltips in Month and Week views. The JavaScript template files are located at:
- Month View:
wp-content/plugins/the-events-calendar/src/views/month/single-event.php - Week View:
wp-content/plugins/events-calendar-pro/src/views/week/single-event-allday.php - Mobile Month View:
wp-content/plugins/the-events-calendar/src/views/month/mobile.php - Mobile Week View:
wp-content/plugins/events-calendar-pro/src/views/week/mobile.php - Month View Tooltips:
wp-content/plugins/events-calendar-pro/src/views/month/tooltip.php - Week View Tooltips:
wp-content/plugins/events-calendar-pro/src/views/week/tooltip.php
Overriding JavaScript templates follows the same process as overriding any other plugin template file, described in the sections below.
Creating a Template Override
The override process has three steps: locate the file, set up the correct folder structure in your theme, and drop your customized copy there. The plugin’s template engine checks your theme folder first and loads your version instead of the plugin’s.
Set Up the Theme Folder Structure
In your theme’s root directory, create a tribe folder if one doesn’t exist. Inside it, create the subfolder that corresponds to the plugin you are customizing:
| Plugin | Theme Folder |
|---|---|
| The Events Calendar (legacy views) | /tribe/events/ |
| The Events Calendar (current views) | /tribe/events/v2/ |
| Events Calendar Pro | /tribe/events-pro/v2/ |
| Event Tickets | /tribe/tickets/ |
| Event Tickets Plus | /tribe/tickets-plus/ |
| Community Events | /tribe-events/community/ |
The subfolder structure after that point must exactly mirror the plugin’s /src/views/v2/ directory. For example, to override the-events-calendar/src/views/v2/list/event/featured-image.php, the file must be placed at:
wp-content/themes/your-theme/tribe/events/v2/list/event/featured-image.php

Template Overrides with the Block Editor
For block editor single event pages, the override location depends on which plugin’s blocks you are customizing.
The Events Calendar blocks — place overrides at [your-theme]/tribe/events/blocks/. The Events Calendar blocks include: Classic Event Details, Event Category, Event Datetime, Event Links, Event Organizer, Event Price, Event Tags, Event Venue, Event Website, and Featured Image.
You can find all Events Calendar template files here.
Events Calendar Pro blocks — place overrides at [your-theme]/tribe/events-pro/blocks/. Events Calendar Pro blocks include: Additional Fields, Recurrence, and Related Events.
You can find all Events Calendar Pro template files here.
Example: Removing the Featured Image from List View
Here’s a practical walkthrough that shows the full override process. We’ll remove the featured image from the calendar’s List view.


Step 1: Locate the Template File
Navigate to /wp-content/plugins/the-events-calendar/src/views/v2/list/. Inside it is an event/ folder containing featured-image.php — that’s the file we need.


Step 2: Set Up the Override Folder
In your theme, create the folder path tribe/events/v2/list/event/.

Step 3: Copy and Customize the File
Copy featured-image.php into tribe/events/v2/list/event/ in your theme. To remove the featured image, open the file and delete all its contents, leaving a blank file.

Reload the calendar. The featured image no longer appears.

Note that the event description column won’t expand to full width automatically, since the original CSS reserves space for the image. Add the following CSS to fix that:
.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-details {
width: 100%;
}
This same process — find the file, mirror the path in your theme, customize your copy — applies to every template file across all TEC plugins.
Custom Template Paths for Plugin Developers
This section covers an advanced use case for plugin authors: registering a custom plugin as an additional template override location. This allows a plugin you’ve built to provide its own versions of TEC template files, which can then themselves be overridden by a child theme. If you’re customizing templates for your own site rather than building a distributable plugin, use a theme override as described above.
How Plugin Template Paths Work
Each TEC template file maps from its plugin source path to a corresponding theme override path. For example:
the-events-calendar/src/views/v2/list/event.php→/tribe/events/v2/list/event.phpin your themeevents-calendar-pro/src/views/v2/photo/event.php→/tribe/events-pro/v2/photo/event.phpin your theme
When you register a custom plugin path, you insert your plugin into that lookup chain at a specific priority. Your plugin’s version of the file takes precedence over the original plugin’s default, and a child theme’s override still takes precedence over yours.
For example, with a custom plugin registered:
- Default:
events-calendar-pro/src/views/v2/photo/event.php - Your plugin’s override:
my-plugin/tribe-customizations/v2/photo/event.php - Theme override of your plugin’s file:
/tribe/my-plugin/v2/photo/event.php
If you set a namespace value in your folder registration, you change what a theme must use to override your plugin’s version. If you omit the namespace key, the original plugin namespace is preserved and standard theme overrides work normally.
Registering a Custom Plugin Template Path
Use the tribe_template_path_list filter to add your plugin as a template override location:
/**
* Add your own plugin as a template override location for The Events Calendar,
* Event Tickets, and related plugins.
* Applies to templates using the new Template Engine (v5.0.1+).
*
* @param array $folders Array of data for loading locations.
* @param \Tribe__Template $template Instance of the template engine.
* @return array
*/
function tribe_v2_additional_plugin_template_locations( $folders, \Tribe__Template $template ) {
$plugin_name = 'my-plugin';
$priority = 5;
$custom_folder = [ 'tribe-customizations' ];
$plugin_path = array_merge(
(array) trailingslashit( plugin_dir_path( __FILE__ ) ),
(array) $custom_folder,
array_diff( $template->get_template_folder(), [ 'src', 'views' ] )
);
$folders[ $plugin_name ] = [
'id' => $plugin_name,
'namespace' => $plugin_name,
'priority' => $priority,
'path' => $plugin_path,
];
return $folders;
}
add_filter( 'tribe_template_path_list', 'tribe_v2_additional_plugin_template_locations', 10, 2 );
The priority value controls where your plugin sits in the lookup chain. Default priorities used by TEC plugins for reference:
- Event Tickets: 17
- The Events Calendar (plugin origin): 20
- Events Calendar Pro: 25