Importing your schedule from a CSV file

If you already keep your ice schedule in a spreadsheet, you can bring it into the Ice Scheduler in one pass instead of typing every booking by hand. Open your organization's schedule grid, click the More menu, and choose Import. This option is available to editors, admins and owners.

The three steps

Importing walks you through three steps: Upload, Review, and Result. Nothing is saved to your schedule until you click Import on the Review step — you can always back out before then.

1. Upload

Choose a .csv file. Files can be up to 5 MB and 5,000 rows. If you're not sure how to format your file, click Download CSV template on this step — it gives you the 16 supported column headers plus two sample rows to copy from.

Only Start Date is required. Every other column is optional. The full list of supported columns is:

  • Booking
  • Status
  • FIC Confirmed
  • Day
  • Start Date
  • Start Time
  • End Time
  • Facility
  • Rink
  • Program
  • Team / Group
  • Notes
  • Staff / Coaches
  • Dur (min)
  • Ice Rate
  • Ice Cost

Header matching is forgiving — it ignores case and punctuation and understands common aliases. For example, Arena, Venue or Location all map to Facility; Sheet or Ice Sheet maps to Rink; Team, Teams or Group maps to Team / Group; Coach, Coaches or Instructor maps to Staff; and similar aliases exist for Date, Start/End time, Rate and Cost columns. Any column the importer doesn't recognize is simply ignored, and it's listed on the Review step so you can double check nothing important was skipped.

Multiple teams and staff in one cell

Separate multiple teams in a single cell with a semicolon — commas and slashes are kept as part of a team's name, so a cell like 12U A/AA stays as one team. For staff, you can separate names with a semicolon, a slash, or a new line within the cell; commas are left alone, so Smith, J. is read as one person.

Dates and times

Dates can be written in common formats such as 2026-09-14, 9/14/2026 or Sep 14 2026. Times accept formats like 18:00, 6:00 PM, 6pm, or 1800. If the End Time is earlier than the Start Time, the entry is treated as running past midnight.

The Day and Ice Cost columns are checked rather than trusted at face value. The day of the week is always derived from the date you provide — if your Day column disagrees, it's flagged as a warning but doesn't stop the import. Ice Cost is always calculated as rate × minutes; if a row has an Ice Cost but no Ice Rate, the cost is left blank and the row is flagged.

2. Review

Before you see the row-by-row preview, any Facilities, Rinks, Programs, Teams or Statuses in your file that don't already exist in your organization are listed in a resolution box at the top. For each one you choose what to do: Create new (the default), Use existing, Restore deleted (if you'd previously removed it), or Skip these rows. If something close already exists, you'll see a "Use '…' instead" suggestion.

Below that, the Review step shows summary counts: Total, New, Updates, Invalid, Repeats, Conflicts, Duplicate bookings, and Warnings. Under the counts is a full row table (the first 1,000 rows for larger files) with a checkbox per row, plus toggles to Show only rows with problems and Exclude all invalid rows.

Two terms worth knowing: a Repeat is the exact same booking appearing twice in your file — only the first copy is imported. A Duplicate booking is a row that matches the same time slot, program and teams as another row in the file or an entry that already exists in your schedule. A Conflict is any other overlap on the same facility and rink on the same date. Conflicts and duplicate bookings are shown as warnings — they won't block your import, but they're worth a look before you proceed.

3. Result

Once you click Import, entries are created (or updated) and you land on the Result screen with a summary of what happened, along with an Undo this import option (see below).

Re-importing an updated file

If you export your schedule, edit it, and re-import it, matching rows update the existing entries instead of creating duplicates. Rows are matched on the combination of Booking reference, date, start time, facility, rink, program and teams — so it's worth including a Booking reference in every export/import cycle. If you rename a facility, rink or program, or change the date or start time between exports, that row will import as a brand-new entry rather than update the old one. A row that matches an entry you had previously deleted is skipped, not restored.

A blank cell in a supported column clears that field on update. A column that's entirely missing from the file is left untouched, so you can safely re-import a file with fewer columns than your original export without wiping data you didn't include.

Plan limits

On the free plan, your account is limited to 25 schedule entries in total across every organization you own. The importer only counts rows that would actually create new entries against that limit, and it checks the whole batch before writing anything — if importing would push you over the cap, the import is stopped before any changes are made, with a message telling you the numbers ("Import stopped — plan limit reached…").

Large files

Big imports are processed in batches of 500 rows with a progress bar. If you need to stop partway through, Cancel becomes Stop after this batch — it finishes the batch already in progress rather than leaving things half-written. If a run stops early for any reason, you can safely re-upload the same file; nothing gets duplicated.

Undo

If your import created any entries, an Undo this import button appears on the Result screen. It's only available from that screen — if you close the window, it's gone. Undo removes every entry that this specific run created, as long as nobody has edited it since; entries you or a teammate have since changed are left alone, as are pre-existing entries the import only updated. Any facilities, programs or teams the import created along the way are kept. Removed entries are soft-deleted, so if you undo too much you can still restore individual entries afterward.

Was this article helpful?