Take over an entire program from Excel or Google Sheets – and export it again as a backup at any time. From about thirty sessions on, a spreadsheet saves more time than the detour costs. Everything is under Events → Import / Export.
The page has three areas: Events, Speakers (a file of their own, see Importing speakers) and – for administrators only – Back up & restore settings.
The process in five steps
- 1Download the sample template
“Download sample template (.csv)” gives you all columns and two sample rows – one main event, one sub-event.
- 2Fill it in
Enter your program data in the columns. You may delete columns you don’t need – missing columns and empty cells leave existing data untouched.
- 3Save as CSV UTF-8
In Excel, explicitly choose “CSV UTF-8 (comma delimited)”. The variant “CSV (delimiter separated)” destroys special characters. An .xlsx file is not accepted.
- 4Upload
Choose the file, a target event if needed, “Start import”. At the end the plugin reports how many entries were created and how many updated.
- 5Check in the dashboard
The data quality check shows at once whether times, venues or images are missing.
What the file must meet
| Rule | Meaning |
|---|---|
| Header row | The first row holds the column names. Columns are matched by name only; case and order don’t matter. If the title column is missing, the import stops with an error message instead of guessing by position. |
| Delimiter | Comma, semicolon or tab – detected automatically. |
| Encoding | UTF-8. Every plugin export is already UTF-8 with a marker so that Excel shows special characters correctly. |
| Security | Genuine .csv files only. Files containing program code, scripts or HTML pages are rejected. |
How the plugin avoids duplicates
- 1By event_id
If
event_idholds a value, the session with exactly this ID is updated. - 2By title
Without a matching ID, the plugin looks for a session with exactly the same title – published, scheduled, private or draft. If
event_idis empty in the file, that session is updated and keeps its ID. If the file holds a different ID than the session carries, it doesn’t count as a match. - 3Otherwise new
If nothing is found, a new entry is created – with the ID from the file or, if that cell is empty, with the next free ID. The plugin continues your numbering: if
WMK2026-074exists,WMK2026-075follows; without a pattern it starts atEVT-001.
With your own IDs such as DAY1-001 you can upload the same file as often as you like and always update the same entries instead of duplicating the program.
The target event
If you choose a main event above the file field, all rows are assigned to it – regardless of what parent_event_id says. The fastest way to attach a list without a hierarchy column. If the choice stays on “– From CSV or create new –”, the file decides: parent_event_id refers to the event_id (or the title) of the main event.
The columns of the event file
| Column | Required | Format and meaning |
|---|---|---|
event_id | no | Unique key for later updates; assigned automatically if needed. |
parent_event_id | no | event_id of the main event. |
title | yes | Name of the session. Rows without a title are skipped. |
status | no | publish, draft, pending, private or future. Filled in by the export. Empty keeps the current status. |
date | yes | YYYY-MM-DD, e.g. 2026-10-17. |
start_time | yes | HH:MM, e.g. 10:30. |
end_time | no | HH:MM – strongly recommended. |
venue | no | Name of the venue; missing venues are created. |
category | no | Categories, several separated by semicolons: Talk; Keynote. |
short_description | no | Excerpt for tile, list and timetable. |
full_description | no | Full text of the detail view; simple HTML such as <b>, <br>, <ul><li> is allowed. |
image_url | no | Direct image address. If the image is already in the media library it is linked, otherwise downloaded. |
external_link | no | External address for a direct link or “More Information”. |
show_details | no | Click action: page, external or none (also 1/0, yes/no). |
link_target | no | _self or _blank. |
role_type, role_name, role_url | no | Role, name and profile address of the first person. Missing roles are created. |
language | no | Language, e.g. “German, English”. |
ticket_url, ticket_hide | no | Ticket address (takes precedence over the main event’s); 1 hides the ticket icon. |
website, shop, instagram … | no | One column per platform (24 platforms) plus email. Short forms like @name are completed; a phone number in whatsapp becomes a chat link. |
internal_info_url | no | Internal info page; paths like /program-info/ work too. |
speakers | no | Additional people from the second one on – structure under Importing speakers. |
tags | – | Reserved; exported but not evaluated. |
The cancellation switch, prices, the primary category and the exhibitor entry are neither exported nor imported via CSV. Set cancellations in the Master Editor or the edit screen.
What an import overwrites – and what it doesn’t
When updating, one simple rule applies: an import never deletes anything. Only what is in a cell is written.
| Case | Result |
|---|---|
| Column missing from the file | The field stays unchanged. |
| Column present, cell empty | The field stays unchanged – including speakers, dates and descriptions. |
| Cell filled in | The value is taken over. List columns such as category or speakers replace the existing list. |
| Explicit “off” value | Takes effect as given, e.g. ticket_hide = 0 or show_details = none. |
| Assignment to the main event | Only changes if the target event or parent_event_id point to a main event. Otherwise it stays as it is. The main event may also appear further down in the same file; anything that cannot be found at all is named in the final message. |
| Status | A filled status column applies. Without it, new entries are published and existing ones keep their status – a draft stays a draft. An entry in the trash comes back (as a draft without a value); an import cannot move anything to the trash. |
| New entries | Whatever is missing stays empty; the click action is set to “detail page”, the ID continues your numbering. |
Descriptions are only taken over while “CSV import: descriptions” is allowed, images only with “CSV import: images”.
A file with only event_id (or title) and venue changes only the venues – dates, descriptions and the main event assignment stay as they are. All that matters is that every row finds its session; otherwise a new entry is created. Emptying a field is not possible via import – use the edit screen or the Master Editor.
The full export also contains drafts and writes each row’s status into the status column. Drafts therefore stay drafts even when imported into another website. If the column is missing – e.g. in an older export file – new rows are published.
Export variants
| Variant | Content |
|---|---|
| Export all events | Full backup of all sessions including drafts, sorted ascending by event ID. |
| Specific main event | One main event with all its sessions – ideal for passing on a year or using it as a template for the next. |
| Sample template | All columns with two sample rows. |
| Statistics exports | In the dashboard: favorites, main events, venues and categories, each complete. |
Choose the delimiter right next to the button: comma, semicolon or tab. The choice is remembered; for German Excel the semicolon is usually most convenient.
Back up & restore settings
This area is only visible to administrators. It saves all plugin settings, including your changed texts & labels, to a JSON file – for example before an update or to transfer them to another website. Optionally the colors and images of venues, categories and roles are included.
- 1Download the backup
“Download settings backup”, optionally with colors and images of the terms.
- 2Upload the file
Under “Restore settings”. You first see what would change: changed settings, changed texts, texts that fall back to their default, and venues, categories and roles found.
- 3Confirm
Only now is anything overwritten. If the backup comes from another website, the plugin points this out – check URL slugs and images afterwards.
Sessions, speakers and the venues and categories themselves (that’s what the CSV areas are for), the option “Delete data on uninstall” and technical markers. Images that don’t exist in the target site’s media library are skipped.
When something goes wrong during import
| Observation | Cause and fix |
|---|---|
| Cryptic characters instead of accents | The file isn’t UTF-8. Choose “CSV UTF-8 (comma delimited)” in Excel and upload again. |
| “No recognisable header row” | The title column is missing or named differently. Copy the header row from the sample template. |
| “Security error” | Not a genuine .csv file, or the beginning of the file contains program code or HTML. |
| Program appears twice | Titles differ minimally (one space is enough), or the file carries a different event_id than the existing session. Export your data, take over the IDs, upload again. |
| Some rows are missing | Rows without a title are skipped. Also check date and start_time. |
| A field cannot be emptied via import | Intended: empty cells change nothing – see “What an import overwrites”. Empty the field in the edit screen or the Master Editor. |
| Images are missing | “CSV import: images” is switched off, or the server doesn’t allow outgoing connections. Add images via the media library or the Master Editor. |
| Everything in the wrong main event | A target event was selected at the top – it always takes precedence. |
| Aborts with very large files | Split into chunks of a few hundred rows. As long as every row carries an event_id, you can reload as often as you like. |