The schedule is the plan for the weekend. Race Control prints it and publishes it, and the same data drives both.

Days and sessions

An event holds one or more days, and each day holds an ordered list of items.

A sessionOne slot on the schedule: a practice, a qualifying session, a warmup, or a race. is any block that goes on track. Each one is a practice, a qualifying session, a warmup, or a race. Other items sit in the same ordered list and carry no timing: a riders meeting, a break, a tech window, or anything you label yourself.

A race session carries the competition detail. Its race number, its classes and waveA group of classes that starts together, with a gap before the next group starts. layout, its lap count, and its grid settings all live there.

Open Event → Schedule to add days, add items, reorder them, and set their times.

When editing a race's classes, Cancel and Save Race Setup stay visible while the class setup scrolls. Selected qualifying summaries include the Day and start time, so repeated codes remain distinct. The qualifying selector keeps its title, bulk actions, and Done visible while its choices scroll. These choices remain part of the race setup draft until you save it.

Fixed start times

Every item carries a fixed start time. That matches how a printed club schedule already works, and it is what the public day view shows.

Enter start times as 24-hour HH:MM, such as 13:05.

Your organization's Time Display setting controls whether schedule times appear in 24-hour or 12-hour form. Change it under Setup → Settings. The saved start time stays the same.

Estimated times and red-flag repacking are not built. A delay on the day is something you announce, and the printed schedule stays the plan.

Import a schedule

Open Event → Schedule and choose Import Schedule. Use CSV for a structured schedule import. PDF schedules remain supported.

Choose Download Example CSV to start from the example file. Set its dates to your event dates. Replace its class names and race numbers with your event's values.

Create the event races and their complete class lists before importing race rows. Import does not create races or grant riders eligibility.

  1. Select a CSV or PDF under Schedule File.
  2. Review the proposed days, sessions, classes, and waves.
  3. Resolve each highlighted item.
  4. Choose Apply Schedule.

When the schedule and an existing race have different classes, the preview shows both lists. Correct the file or the event race setup. Then preview again.

Each CSV class row needs one unique local class. Select all classes for each practice, qualifying, or warmup session before marking it reviewed. PDF sessions need at least one selected class.

For an unknown CSV race class, correct the file or save a class alias. Then preview again. A reviewed checkbox cannot clear an incomplete class selection.

Prepare the CSV

Use UTF-8 CSV with commas between columns. Keep these exact headers, in any order. Do not add extra columns.

date,day,session_key,start_time,kind,code,name,race_number,laps,class,wave,qualifying_sessions
ColumnWhat to enter
dateThe session date as YYYY-MM-DD, within the event dates;
dayThe Day label, or blank to use the weekday;
session_keyA unique key for this session, such as sat-q1-open; Keep it unchanged when you rename, retime, or move the session;
start_timeA 24-hour start time as HH:MM;
kindpractice, qualifying, warmup, race, meeting, break, tech, or custom;
codeAn optional display code, such as Q1; Different sessions can share a code;
nameAn optional session name;
race_numberAn existing event race number for a race row; Leave blank for other kinds;
lapsThe positive lap count for a race row; Leave blank for other kinds;
classOne local class name or saved alias; Leave blank for meetings, breaks, tech windows, and custom items;
waveThe class's physical wave for a race row, starting at 1; Leave blank for other kinds;
qualifying_sessionsThe qualifying session keys for this race class, separated by semicolons; Blank selects no qualifying sessions; Leave blank for other kinds;

Use one row per class in a session. Repeat the session fields on those rows, including its key. Their first appearance sets the class order. For a schedule-only item, use one row with the last three fields blank.

Keys use up to 64 letters, digits, underscores, or hyphens. Keys identify sessions; display codes do not. For example, two Q1 sessions need two different keys.

Each qualifying key must name a qualifying session in the same file that includes the race class. Use sat-q1-open;sat-q2-open to select two runs for one class.

In class order, waves start at 1. Each following class stays in that wave or starts the next wave. Race Control rejects skipped or reversed wave numbers.

The CSV limit is 1 MiB and 5,000 data rows. Correct structural errors in the file, then preview again. A reviewed checkbox cannot override a CSV error.

What apply changes

Import updates matched session names, times, and classes. It sets race lap counts and qualifying assignments. Keep each CSV session key unchanged so later imports find the same session.

Import keeps omitted sessions, existing organizer wave edits, and published grids. It does not rebuild grids. Remove unwanted sessions separately.

PDF schedules

The PDF preview reports rows it cannot read. Review inferred class mappings before applying. A printed suffix such as - 6 Laps sets the race lap count without changing the race name.

Each top-level / in the PDF class list starts the next physical wave. Existing organizer wave edits stay in place.

Print from your browser. The public schedule offers Print schedule for the whole event. For a multi-day event it also offers Print this day.

  • Portrait · One Page Per Day prints every day in order, with a page break between days. A two-day event prints both pages in one browser print job.
  • Landscape · Both Days puts a two-day event side by side on one Letter sheet. Choose this layout on the print page.
  • A single day keeps its portrait sheet. A one-day event needs only Print schedule.

Use your browser's Print command at 100% on Letter paper. Turn off browser headers and footers. Check the preview before printing: long schedules can continue onto extra pages. Portrait gives each day more room.

Both layouts use the current event's name, dates, track, and edited schedule. They include the complete items, lap counts, class descriptions, and qualifying references.

What riders see

The public schedule is a mobile-first day view with a tab per day. Each row shows its time and one descriptive name.

A race row gets a red Grid action as soon as you publish its grid. That action reads Results & Grid once you post the finishing order. A draft grid gets no action at all, so nothing leaks before you publish.

The schedule is public before any timing exists, because it is the plan. See What riders see for the addresses and how to share them.