Purpose: This guide covers importing Events: creating a season of scheduled events in bulk, updating existing events, and the date, location, and lookup rules that event imports depend on.
Related: Importing data into Administrate | Choosing your import workflow
Choosing the action
Events are created per delivery type, so pick the action that matches what you are scheduling:
- createClassroom for classroom or virtual classroom events
- createLMS for self-paced events
- createBlended for blended events
- update to change existing events by Administrate ID
- upsertClassroomEventByExternalId (and the LMS and Blended equivalents) when an external system owns the schedule
Required combinations
Validation enforces a few pairings on event creates:
- Classroom and blended events need a start and an end. Provide either the local date-time columns or the time-zoned ones for each.
- Public events need a location.
- Private events need a financial unit, which resolves from a currency code or name, or a training token type.
Dates, times, and time zones
- Local date-times use the format
2025-11-04T14:00:00. - Time-zoned date-times include an offset:
2025-11-04T14:00:00+03:00. - Time zone name columns must contain a standard identifier such as
America/New_York.
The Excel template shows the expected format when you hover over a column header.
Lookups event imports rely on
- Course: the course template column resolves by course code first, then by ID. Keep course codes stable and unique; import course templates before the events that reference them. See Import Course Templates (CSV).
- Location, tax type, and similar references must already exist and match exactly. A value that resolves to no record, or to more than one, fails the row.
Beyond creating the event
Learners can be registered onto events in bulk; see Import Registrations and Results (CSV). The staff and session tasks below are the other common follow-up imports.
Add an instructor (or other staff) to an event
Choose the Event record type and the addStaff action. Each row adds one staff member to one event:
- Contact ID of the person to add (an instructor is a contact in a staff role).
- Event ID to add them to.
- Staff Role ID, for example the Instructor role.
- Optionally, set required sessions only to book them on just the sessions whose role they are needed for, rather than every session.
To add the same person across many events, repeat the row per event.
Set an event's primary instructor
Choose the Event record type and the setStaffToPrimary action. It takes a single column, the Staff ID, which is the ID of the staff record (the person's booking on that event), not their contact ID. Add the instructor first with addStaff, then use the resulting staff ID here.
Adjust session times
Session times are changed with the Session record type and the update action, which accepts plain numeric session IDs alongside the new start and end values.
Watch out for
- Connected systems. Event creation can flow to integrations such as LMS platforms and calendars. See Importing when other systems are connected.
- "Not found" lookups are the top failure source for event imports, and they surface only while the import runs, not during upfront validation. Confirm courses, locations, and tax types exist before importing.
- Time zones deserve a pilot row. Import one event, open it, and confirm the times display as intended before loading the season.
- No rollback: a partially failed import leaves the successful events in place. Correct and re-run only the failed rows.