Program Planner DOCS & HELP

CSV Interface & Backup

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 “Import / Export” page: import with sample template and target event on the left, the two export variants on the right; below, the separate area for speakers.

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

  1. 1
    Download the sample template

    “Download sample template (.csv)” gives you all columns and two sample rows – one main event, one sub-event.

  2. 2
    Fill 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.

  3. 3
    Save 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.

  4. 4
    Upload

    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.

  5. 5
    Check in the dashboard

    The data quality check shows at once whether times, venues or images are missing.

What the file must meet

RuleMeaning
Header rowThe 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.
DelimiterComma, semicolon or tab – detected automatically.
EncodingUTF-8. Every plugin export is already UTF-8 with a marker so that Excel shows special characters correctly.
SecurityGenuine .csv files only. Files containing program code, scripts or HTML pages are rejected.

How the plugin avoids duplicates

  1. 1
    By event_id

    If event_id holds a value, the session with exactly this ID is updated.

  2. 2
    By title

    Without a matching ID, the plugin looks for a session with exactly the same title – published, scheduled, private or draft. If event_id is 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.

  3. 3
    Otherwise 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-074 exists, WMK2026-075 follows; without a pattern it starts at EVT-001.

Use meaningful IDs

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

ColumnRequiredFormat and meaning
event_idnoUnique key for later updates; assigned automatically if needed.
parent_event_idnoevent_id of the main event.
titleyesName of the session. Rows without a title are skipped.
statusnopublish, draft, pending, private or future. Filled in by the export. Empty keeps the current status.
dateyesYYYY-MM-DD, e.g. 2026-10-17.
start_timeyesHH:MM, e.g. 10:30.
end_timenoHH:MM – strongly recommended.
venuenoName of the venue; missing venues are created.
categorynoCategories, several separated by semicolons: Talk; Keynote.
short_descriptionnoExcerpt for tile, list and timetable.
full_descriptionnoFull text of the detail view; simple HTML such as <b>, <br>, <ul><li> is allowed.
image_urlnoDirect image address. If the image is already in the media library it is linked, otherwise downloaded.
external_linknoExternal address for a direct link or “More Information”.
show_detailsnoClick action: page, external or none (also 1/0, yes/no).
link_targetno_self or _blank.
role_type, role_name, role_urlnoRole, name and profile address of the first person. Missing roles are created.
languagenoLanguage, e.g. “German, English”.
ticket_url, ticket_hidenoTicket address (takes precedence over the main event’s); 1 hides the ticket icon.
website, shop, instagram …noOne column per platform (24 platforms) plus email. Short forms like @name are completed; a phone number in whatsapp becomes a chat link.
internal_info_urlnoInternal info page; paths like /program-info/ work too.
speakersnoAdditional people from the second one on – structure under Importing speakers.
tags–Reserved; exported but not evaluated.
Not in the CSV

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.

CaseResult
Column missing from the fileThe field stays unchanged.
Column present, cell emptyThe field stays unchanged – including speakers, dates and descriptions.
Cell filled inThe value is taken over. List columns such as category or speakers replace the existing list.
Explicit “off” valueTakes effect as given, e.g. ticket_hide = 0 or show_details = none.
Assignment to the main eventOnly 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.
StatusA 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 entriesWhatever 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”.

Slimmed-down files are fine

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 status travels along

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

VariantContent
Export all eventsFull backup of all sessions including drafts, sorted ascending by event ID.
Specific main eventOne main event with all its sessions – ideal for passing on a year or using it as a template for the next.
Sample templateAll columns with two sample rows.
Statistics exportsIn 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.

  1. 1
    Download the backup

    “Download settings backup”, optionally with colors and images of the terms.

  2. 2
    Upload 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.

  3. 3
    Confirm

    Only now is anything overwritten. If the backup comes from another website, the plugin points this out – check URL slugs and images afterwards.

Not included

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

ObservationCause and fix
Cryptic characters instead of accentsThe 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 twiceTitles 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 missingRows without a title are skipped. Also check date and start_time.
A field cannot be emptied via importIntended: 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 eventA target event was selected at the top – it always takes precedence.
Aborts with very large filesSplit into chunks of a few hundred rows. As long as every row carries an event_id, you can reload as often as you like.