Skip to content

Importing event data

How to populate classes, courses, controls, and competitors by importing from IOF XML files, Purple Pen, or Eventor — so you don't have to enter everything by hand.

Overview

Manager supports three ways to bring data in:

MethodWhat it gives youWhen to use
IOF XML files (.xml)Courses, controls, classes, competitors, clubs, start timesYou have export files from your course setter (IOF CourseData) or entry system (IOF EntryList, ClassList, StartList). Manager parses the IOF v3 schema.
Purple Pen file (.ppen)Courses and controlsYour course setter uses Purple Pen and you have the .ppen file.
EventorClasses, competitors, clubs, start timesYour federation uses Eventor for entries and you've configured the connection in Settings.

These are not mutually exclusive — you can import courses from Purple Pen and competitors from Eventor for the same event, for example.

Where to import

Open the event dashboard and click Import. The Import Data dialog has three tabs:

  • Local Files — browse and upload IOF XML or Purple Pen files.
  • Linked Event — re-import data from an Eventor event that's already linked to this event (useful for picking up late entries).
  • Other Event — search for any Eventor event and import from it, with the option to link it for future re-imports.

Importing IOF XML files

Course data (IOF CourseData XML)

Upload a file containing course and control definitions — the output of your course-setting software (e.g. OCAD, Condes, Purple Pen).

What gets created:

  • Controls — one for each control referenced by a course. Normal controls keep their punch code; Start, Finish and Check controls are imported as named map positions (e.g. "Start 1") with no code of their own — radio routing for those types comes from the event's start/finish/check unit-code lists.
  • Courses — each course with its ordered chain (Start → middle controls → Finish). Each course's Start and Finish are recorded individually, so a multi-Start map imports as two courses anchored at different Start controls.
  • Class course assignments — if the file contains ClassCourseAssignment entries (most course setters export them, e.g. Purple Pen and OCAD), each named class gets its course pool set to the named course(s) — no manual assigning needed, even when the course names don't match the class names. The file is authoritative for the classes it names (their pools are replaced); classes it doesn't name are untouched. An assignment is skipped — and reported in the import summary — when the class name doesn't match any class in the event or the course name isn't recognised. Classes are matched by name, so import classes before the course file if you want these assignments applied; with no classes in the event yet, the assignments are simply skipped.
  • Per-competitor course locks — if the file contains PersonCourseAssignment or (for relays) TeamMemberCourseAssignment entries, each one locks the named competitor to the named course (see Locking a competitor to a course). Competitors are matched by their Eventor/IOF person ID, then by bib number. An assignment is skipped — and reported in the import summary — when the competitor can't be matched, the course name isn't recognised, or the course isn't in that competitor's class course pool. So import competitors (and, for relays, their bibs via the start list) before the course file if you want these locks applied.

After a course import, the Assign Courses to Classes dialog opens automatically — but only if at least one class is still without a course. If the file's class course assignments covered every class, there's nothing left to do and the dialog stays closed.

Tip: If a control code in the file already exists in the event, it's matched and updated rather than duplicated.

From Condes or OCAD

If the courses were created in Condes or OCAD, then use the standard IOF CourseData XML.

Condes: open your event, then File → Export → Export course data as XML…. Choose IOF Version 3.0 and UTF-8 encoding (both recommended), and export. Upload the resulting .xml here.

OCAD: use Course Setting → Export → Course Data (XML)… and choose the IOF XML v3 format. Upload the resulting .xml here.

Note on coordinates: Condes and OCAD write control positions as millimetres on the printed map, not as real-world latitude/longitude. That's expected — Manager uses the map-relative positions and leg lengths from the file. (For multi-map events, Condes exports controls for one chosen canvas/map at a time, so export from the map whose control positions you want.)

Class list (IOF ClassList XML)

Upload a file defining classes.

What gets created:

  • Classes — one for each class defined in the file.

Entry list (IOF EntryList XML)

Upload a file of competitor entries — typically exported from your entry system.

What gets created:

  • Competitors — one for each entry, with name, card number, and class assignment.
  • Clubs — any clubs referenced by competitors that don't already exist.
  • Classes — any classes referenced by competitors that don't already exist.

Start list (IOF StartList XML)

Upload a file of allocated start times — typically exported from an entry system or start-list draw tool.

What it does:

  • Matches competitors by person ID, then card, then name, and sets their allocated start times.
  • Captures each competitor's bib number from the file, so a later course-data import can match per-competitor course assignments by bib (important for relays).
  • Skips competitors who have already punched (so a late re-import can't overwrite a result).
  • Does not create new competitors — only updates existing ones.

Re-importing

You can re-import the same file (or an updated version) at any point while setting up. Manager matches existing items by their identifiers (control code for controls, name for classes/competitors, etc.) and updates them rather than creating duplicates.

Importing from Purple Pen

Purple Pen .ppen files are handled the same way as IOF CourseData XML. Upload the .ppen file via the Import Data dialog → Local Files tab.

What gets created:

  • Controls — extracted from the Purple Pen event definition, including any Start, Finish and Check controls as named map positions.
  • Courses — each course with its full chain (Start → middle controls → Finish). Per-course Start and Finish anchors are preserved, so a .ppen with multiple Starts imports cleanly.

Note: Purple Pen provides courses and controls only. You still need to import (or create) classes, competitors, and start times separately.

Importing from Eventor

Eventor integration lets you pull entry data directly from your federation's system without handling files.

Prerequisites

Before you can import from Eventor, configure the connection in Settings → Eventor:

  • Host Name — the URL of your Eventor instance.
  • API Key — your Eventor API credentials.
  • Organisation ID — your club or federation's Eventor organisation ID.

If Eventor is not configured, Manager will tell you when you try to import and point you to Settings.

Creating an event from Eventor

If you don't have an event yet, the fastest path is New from Eventor on the Events page — it creates the event and pulls in classes, competitors, clubs, and start times in one step. See Creating an event from Eventor for the full walkthrough.

Importing into an existing event

If you've already created an event and want to pull Eventor data into it:

  1. Open the Import Data dialog (available from the Dashboard, Courses, Classes, Competitors, and Teams pages)
  2. Use the Other Event tab to search for the Eventor event.
  3. Select it, optionally tick Link this event so you can re-import later with one click.
  4. Click Import.

Re-importing from Eventor

As entries close and start lists are published, you'll want to pick up the latest data. If the event is linked to an Eventor event:

  1. Open the Import Data dialog.
  2. Go to the Linked Event tab.
  3. Click Re-import.

Manager will fetch the latest entries and start times, matching them against the competitors already in the event. New entries are added; updated entries are refreshed.

What to check after import

After any import, it's worth spending a few minutes verifying the data:

  • [ ] Open the Classes page — confirm the right classes exist and each has a course assigned.
  • [ ] Open the Courses page — confirm courses have the right controls in the right order.
  • [ ] Open the Competitors page — confirm competitors have names, classes, and card numbers. Sort by card number to spot blanks.
  • [ ] If start times were imported, check the Competitors page — the Start time column shows the allocated time and its source.

Tip: If something looks wrong, you can re-import a corrected file — Manager will update rather than duplicate.