This article is the field reference for CSV imports in The Events Calendar. It covers every supported column for events, venues, organizers, virtual events, RSVPs, tickets, and ECP additional fields — along with downloadable example files you can use as a starting point.
For step-by-step instructions on running the import, see Importing Events from a CSV File.
Each column in a CSV file corresponds to a field that would be filled in manually when creating an event, organizer, venue, ticket, or RSVP in the WordPress editor. If a column name doesn’t match a recognized field, it won’t be included in the import. The field names and example data below are the recommended column headings to use in your files.
💡 Use YYYY-MM-DD for all dates. Some date formats are ambiguous — for example, 05/06/2016 could be read as May 6th or June 5th depending on locale. The ISO format YYYY-MM-DD is always unambiguous. If you need to use the day-first international format, use hyphens rather than slashes (e.g. 05-06-2016).
CSV Fields
Venues
| Field Name | Example Data | Field Type | Notes |
|---|---|---|---|
| Venue Name | Precious Lamb | String | |
| Venue Description | A non-profit preschool. | HTML | |
| Venue Country | United States | String | Preferably the full country name. |
| Venue Address | 2005 Palo Verde Ave | String | |
| Venue Address 2 | String | Appended to Venue Address on import. | |
| Venue City | Long Beach | String | |
| Venue State/Province | CA | String | |
| Venue Zip | 90815 | String | |
| Venue Overwrite | 1 | String | Whether geo-coordinates should determine venue location (Pro only). 0 = No (default), 1 = Yes. |
| Venue Latitude | 33.7924082 | String | |
| Venue Longitude | -118.1105883 | String | |
| Venue Phone | +1-800-123-4567 | Phone Number | |
| Venue Website | http://www.example.com/ | URL | |
| Venue Featured Image | http://www.example.com/image.png | URL | Must be a direct URL to the image file. |
Organizers
| Field Name | Example Data | Field Type | Notes |
|---|---|---|---|
| Organizer Name | George-Michael Bluth | String | |
| Organizer Description | Recently started growing a moustache. | HTML | |
| Organizer Email | [email protected] | Email Address | |
| Organizer Website | http://fakeblock.com | URL | |
| Organizer Phone | +1-987-555-1238 | Phone Number | |
| Organizer Featured Image | http://example.com/photo.jpg | URL | Must be a direct URL to the image file. |
Events
Import or create your Venues and Organizers before importing Events. The event importer matches venues and organizers by exact name, so those records must already exist for the association to be made.
| Field Name | Example Data | Field Type | Notes |
|---|---|---|---|
| Event Name | Turtleneck Fitting | String | |
| Event Description | I <em>didn’t</em> invent the turtleneck, but… | HTML | |
| Event Excerpt | I’m afraid of any apex predator… | HTML | Used as the excerpt; the Description field is the full content. |
| Event Start Date | 1965-12-31 | Date | YYYY-MM-DD recommended. Example: December 31st, 1965. |
| Event Start Time | 21:30:00 | Time | Time the event starts. Example: 9:30 pm. |
| Event End Date | 1966-01-01 | Date | YYYY-MM-DD recommended. Example: January 1st, 1966. |
| Event End Time | 00:50:00 | Time | Time the event ends. Example: 12:50 am. |
| All Day Event | FALSE | Boolean | When true, the event lasts all day and Start/End Time fields are ignored. |
| Timezone | America/New_York | String | Must be a valid timezone string. See PHP timezone list. |
| Hide from Event Listings | FALSE | Boolean | When true, the event appears in Month View but not in list-style views. |
| Sticky in Month View | TRUE | Boolean | When true, the event appears at the top of its day cell in Month View regardless of start time. |
| Event Venue Name | Archer’s Penthouse | Comma Separated | Must exactly match the Venue Name of an existing venue. By default only one venue per event is supported — see note below. |
| Event Organizers | Woodhouse, Chelsea S., 42 | Comma Separated | Must exactly match the Organizer Name, or use the organizer’s post ID. Separate multiple values with commas. |
| Event Show Map Link | TRUE | Boolean | |
| Event Show Map | TRUE | Boolean | |
| Event Cost | 500 | String | Use 0 for free events. Leave blank to hide the cost field. Unused when a ticketing plugin is active. |
| Event Currency Symbol | $ | String | Unused when a ticketing plugin is active. |
| Event Currency Position | prefix | Unique | Accepts prefix or suffix. Defaults to prefix. Unused when a ticketing plugin is active. |
| Event ISO Currency Code | USD, EUR | String | Adds the ISO currency code alongside the event cost. |
| Event Category | Tacktleneck, Tailor | Comma Separated | Separate multiple categories with commas. |
| Event Tags | Valet, Mission ready, PPK | Comma Separated | Separate multiple tags with commas. |
| Event Website | http://example.com | URL | |
| Event Featured Image | http://example.com/image.png | URL | Must be a direct URL to the image file. |
| Allow Comments | TRUE | Boolean | |
| Allow Trackbacks and Pingbacks | FALSE | Boolean |
💡 While comma-separated values are technically supported in the Venue Name field, by default each event can only be assigned one venue. Specifying multiple venues only has an effect if multiple venue support has been enabled. In general, specify a single venue name here.
Virtual Events
With Events Calendar Pro installed, the following additional fields are available for virtual and hybrid events.
| Field Name | Example Data | Field Type |
|---|---|---|
| Configure Virtual Event? | TRUE | Boolean |
| Type of Event (Virtual, Hybrid) | Virtual | String |
| Video Source URL | https://www.youtube.com/watch?v=2HMV0JhnB8k | URL |
| Embed Video? | TRUE | Boolean |
| Linked Button Text | Button | String |
| Linked Button | TRUE | Boolean |
| Show Embed at | at-start | String |
| Show Virtual Event Icon on Single? | TRUE | Boolean |
| Show Virtual Event on all Views | True | Boolean |
| Show Embed To | All | String |
| Include Link in RSVP Email? | TRUE | Boolean |
| Include Link in Ticket Email? | TRUE | Boolean |
RSVPs
Import RSVPs after importing the events they belong to, since RSVPs must be associated with existing events.
| Field Name | Example Data | Field Type | Notes |
|---|---|---|---|
| Event Name, ID, or Slug | NYPL Author Series: Shane Pearlman | String | |
| Ticket Name | General Seating | String | |
| Ticket Description | Reservation for a seat in the Peifer Auditorium. | HTML | |
| Ticket Start Sale Date | 2016-12-01 | Date | YYYY-MM-DD recommended. |
| Ticket Start Sale Time | 14:30:00 | Time | |
| Ticket End Sale Date | 2016-12-15 | Date | YYYY-MM-DD recommended. |
| Ticket End Sale Time | 21:30:00 | Time | |
| Ticket Stock | 450 | Integer | CSV only accepts integers for ticket stock. |
| Ticket Show Description | Yes|No | String |
WooCommerce Tickets
Import tickets after importing the events they belong to. Note that only WooCommerce Tickets can be imported via CSV.

| Field Name | Example Data | Field Type | Notes |
|---|---|---|---|
| Event Name, ID, or Slug | NYPL Author Series: Shane Pearlman | String | |
| Ticket Name | General Seating | String | |
| Ticket Description | Ticket for a seat in the Peifer Auditorium. | HTML | |
| Ticket Start Sale Date | 2016-12-01 | Date | YYYY-MM-DD recommended. |
| Ticket Start Sale Time | 14:30:00 | Time | |
| Ticket End Sale Date | 2016-12-15 | Date | YYYY-MM-DD recommended. |
| Ticket End Sale Time | 21:30:00 | Time | |
| Ticket Price | $25.00 | String | An integer without the currency symbol is also acceptable. |
| Ticket Stock | 450 | Integer | CSV only accepts integers for ticket stock. |
| Ticket SKU | GEN-AD | String |
A separate example CSV file for WooCommerce Tickets is not available. Use the RSVP example file as a base and add the Ticket Price and/or Ticket SKU columns as needed. When running the import, select Tickets (not RSVPs) from the content type dropdown. Make sure the Event Name field in your ticket CSV matches the Event Name in your events CSV exactly, or no tickets will be imported.
Additional Fields
If you have Events Calendar Pro and have created custom additional fields, those fields will appear in the CSV importer as available columns to map. The column name to use in your CSV is the label you gave the field when you created it. The following table shows which field types are supported by the importer:
| Field Type | Example Data | Notes |
|---|---|---|
| Text Field | I swear I had something for this. | String |
| Text Area Field | Do you want ants? …because that’s how you get ants. | String |
| URL Field | http://www.example.com/ | URL |
| Radio Field | Read a book | Must be an exact case-sensitive match to an existing option name. |
| Checkboxes Field | Boop|Yup | Separate multiple selected options with a pipe | character. |
| Dropdown Field | Danger Zone! | Must be an exact case-sensitive match to an existing option name. |
Field Type Glossary
The field type column in each table above uses the following definitions:
- HTML — Accepts HTML markup. Also runs through
wpautop(), so two consecutive newlines are interpreted as a paragraph break, just as in the WordPress editor. - String — Accepts most text including numbers and special characters. Newlines are typically ignored.
- Boolean — Accepts
true/false,1/0, oryes/no. Not case-sensitive. When left blank the default is applied, which is typically false. - Integer — Accepts whole numbers only.
- Date — Accepts formatted dates. Use ISO 8601
YYYY-MM-DD(e.g.2025-12-31) for unambiguous results. For the North AmericanMM/DD/YYYYformat use slashes. For the internationalDD-MM-YYYYformat use hyphens. - Time — Accepts formatted times in ISO 8601
HH:MM:SSformat (e.g.23:59:59). - URL — Accepts full URLs including the protocol (e.g.
https://). - Comma Separated — Accepts a comma-separated list of values. “Concert, Barbecue” is interpreted as two separate values: “Concert” and “Barbecue”. If you’re not exporting from Excel or a similar tool, make sure to properly escape fields containing commas so they aren’t treated as column separators.
- Email Address — Accepts any string, but prefers a valid email address format.
- Phone Number — For proper internationalization, include the full number with country code and leading
+(e.g.+1-800-867-5309).
Adding Custom Columns to CSV Imports
If you have custom data that isn’t covered by the built-in fields — for example, post meta stored by another plugin, or your own custom meta keys — you can add those columns to the importer using the following snippet.
Define your custom fields in the $custom_import_data array: the array key is the meta key that will be saved to the database, and the value is the label that will appear in the importer’s column mapping dropdown. The snippet handles registration, processing, and saving automatically.
class TEC_CSV_Import_Custom_Metadata {
/**
* Define your custom data here.
* key => the meta key that will be used to save the data
* value => the label shown in the column mapping dropdown
*
* @var string[]
*/
public $custom_import_data = [
'_tribe_events_status' => 'Event Status',
'meta_key_1' => 'Meta Data 1',
'meta_key_2' => 'Meta Data 2',
];
public function __construct() {
add_filter( 'tribe_events_importer_event_column_names', [ $this, 'add_column_name' ] );
add_filter( 'tribe_events_csv_import_event_additional_fields', [ $this, 'process_custom_data' ] );
add_action( 'tribe_events_update_meta', [ $this, 'save_custom_data' ], 10, 3 );
}
public function add_column_name( $column_names ) {
foreach ( $this->custom_import_data as $key => $value ) {
$column_names[ $key ] = $value;
}
return $column_names;
}
public function process_custom_data() {
$extra_fields['tec_import_event_status'] = 'tec_import_event_status';
foreach ( $this->custom_import_data as $key => $value ) {
$extra_fields[ $key ] = $key;
}
return $extra_fields;
}
public function save_custom_data( $event_id, $data, $event ) {
foreach ( $this->custom_import_data as $key => $value ) {
if ( isset( $data[ $key ] ) && $data[ $key ] != '' ) {
update_post_meta( $event_id, $key, esc_html( $data[ $key ] ) );
}
}
}
}
new TEC_CSV_Import_Custom_Metadata();
Add this to your child theme’s functions.php file or via the Code Snippets plugin.
The _tribe_events_status key in the example above maps to TEC’s built-in event status field, which supports three statuses out of the box (also defined by schema.org):
- Scheduled (default)
- Canceled
- Postponed
To define your own custom event statuses, see Adding a Custom Event Status.