Skip to content

Import & Export

Import & Export

Moving event data in bulk — whether migrating from another platform, loading a season’s worth of events, or backing up your catalog — requires reliable CSV import and export. Tickets Please provides both from a single admin page.

Navigate to Events > Import/Export to access the import and export tools.

Import Order Matters

Tickets Please uses relationships between entities. Venues and organizers must exist before you can link events to them, and events must exist before you can create tickets for them. Always import in this order:

  1. Venues — Create all venue records first.
  2. Organizers — Create all organizer records.
  3. Events — Import events, referencing venues and organizers by title or ID.
  4. Tickets — Import tickets, referencing events by title or ID.

Importing out of order causes unresolved references. If an event CSV row references a venue that does not exist yet, the venue field is left empty on that event.

CSV Column Requirements

Each entity type expects specific columns. Column headers must match exactly (case-insensitive).

Events

ColumnRequiredNotes
titleYesEvent name
descriptionNoFull HTML supported
start_dateYesYYYY-MM-DD HH:MM:SS format
end_dateYesYYYY-MM-DD HH:MM:SS format
venueNoVenue title (matched by name) or ID
organizerNoOrganizer title or ID. Multiple separated by commas
categoryNoCategory name. Created if it does not exist
statusNopublish, draft, pending. Default: draft
featuredNoyes or no
all_dayNoyes or no
costNoDisplay cost string (e.g., “$25”)
websiteNoExternal event URL
imageNoURL to featured image

Venues

ColumnRequiredNotes
titleYesVenue name
addressNoStreet address
cityNoCity name
stateNoState or province
zipNoPostal code
countryNoCountry name
phoneNoContact phone
websiteNoVenue website URL

Organizers

ColumnRequiredNotes
titleYesOrganizer name
phoneNoContact phone
websiteNoOrganizer website URL
emailNoContact email

Tickets

ColumnRequiredNotes
titleYesTicket name (e.g., “General Admission”)
eventYesEvent title or ID
typeYespaid, rsvp, or free
priceNoNumeric price. Required for paid type
capacityNoInteger. -1 for unlimited
start_sale_dateNoYYYY-MM-DD HH:MM:SS
end_sale_dateNoYYYY-MM-DD HH:MM:SS
skuNoUnique SKU string
descriptionNoTicket description

Column Mapping

After uploading a CSV file, the column mapping screen lets you match your CSV headers to Tickets Please fields. This is useful when your source data uses different column names (e.g., “Event Name” instead of “title”).

  1. Upload your CSV file and select the entity type.
  2. The mapping screen shows each CSV column alongside a dropdown of available plugin fields.
  3. Adjust mappings as needed. Unmapped columns are ignored.
  4. Click Import to begin processing.

Duplicate Handling

When an imported record matches an existing record by title, the importer can either skip the duplicate or update the existing record with the new data. This behavior is configured in code via filters and defaults to skip.

Title matching is case-insensitive and ignores leading/trailing whitespace.

Batch Processing

Large CSV files are processed in batches to avoid PHP timeout limits. The importer handles chunking automatically. For files with thousands of rows, import runs in the background and you can navigate away from the page without interrupting the process.

A progress indicator shows how many rows have been processed and how many remain.

Exporting Data

Export any entity type to CSV with optional filters:

  1. Select the entity type (Events, Venues, Organizers, or Tickets).
  2. Optionally filter by date range (start and end dates).
  3. Optionally filter by category (events only).
  4. Optionally filter by status (published, draft, pending).
  5. Click Export.

The browser downloads a CSV file named {entity}-export-{date}.csv (e.g., events-export-2026-02-11.csv).

Exported CSVs use the same column format as imports. You can edit an export file and re-import it to make bulk updates.

Common Questions

Can I import events with tickets in one CSV file? No. Events and tickets are separate entity types with different column structures. Import events first, then import tickets referencing those events.

What date format should I use in CSV files? Use YYYY-MM-DD HH:MM:SS (e.g., 2026-06-15 09:00:00). This is the only format the importer accepts.

What happens if my CSV has extra columns not listed above? Unmapped columns are ignored during import. They do not cause errors.

Can I import featured images for events? Yes. Include an image column with a publicly accessible URL. The importer downloads the image and sets it as the event’s featured image. Large images may slow down the import.

Is there a row limit for CSV imports? No hard limit. Batch processing handles large files. However, imports with tens of thousands of rows may take several minutes to complete.

Can I schedule recurring imports? Automated scheduled imports (from Google Calendar, Meetup, Eventbrite, etc.) are not available in the current version. Use manual CSV import for bulk data loading.

Does export include attendee data? The export tool covers events, venues, organizers, and tickets. Attendee data can be exported separately from the Attendee Management screen using the CSV export button.

Will importing update existing events or create duplicates? By default, matching titles are skipped. Configure duplicate handling to “update” if you want imports to overwrite existing records with the same title.

Next Steps