Quick guides to help you get started.
Manage your schedule in a spreadsheet, then export it as a UTF-8 CSV.
Use all eight headers below and keep each event_id unique
within your track and stable across uploads.
event_id,title,start_at,end_at,event_type,status,description,visibility practice-2030-06-01,Open practice,2030-06-01T09:00:00-06:00,2030-06-01T12:00:00-06:00,individual_session,scheduled,Bring your kart.,public
Times must include a timezone offset (as above) or Z
for UTC, and the end must be after the start. Files can contain up to
10,000 entries and be at most 5 MiB. Quote descriptions containing commas
or newlines; a blank description is allowed.
event_type: individual_session,
group_buy, private_event, or other.status: scheduled or cancelled.visibility: public or private.This sample contains one event on October 27, 2026, from 9:00 AM to noon at UTC-05:00. The date is already in the past and should appear in a gray cell when viewing October 2026 in the manager calendar. Importing it still adds a real schedule entry to the selected track; it does not create a bookable date.
event_id,title,start_at,end_at,event_type,status,description,visibility example-practice-2026-10-27,Example past practice,2026-10-27T09:00:00-05:00,2026-10-27T12:00:00-05:00,individual_session,scheduled,Example event on a past date.,public
If your track has configured types, add an optional ninth
column named trackday_type. Use the code, not the display
label. This classification is separate from the generic
event_type (individual session, group buy, private event, or other).
The following types come from the
Adams schedule;
an administrator must configure them for your selected track before use.
| Trackday type | CSV code |
|---|---|
| Arrive and Race | arrive_and_race |
| Drift/Time Attack/Grip | drift_time_attack_grip |
| Grip/Time Attack | grip_time_attack |
| Parties and Corporate Events | parties_corporate_events |
| Practice Schedule | practice_schedule |
| Racing Schools | racing_schools |
Existing eight-column files preserve assigned types when updating events and leave new events untyped. Include the ninth column with a blank value to clear an assignment. A code configured only for another track is rejected. Manual editing offers the same types in the Trackday type dropdown. Holidays are not included.
Download Adams-type example CSV
The six sample events and dates are illustrative, not the official Adams schedule. Importing the sample creates real schedule entries; replace the sample dates and details before using it.
Imported type codes may differ from these illustrative codes.
Ask an administrator to check your track's Trackday types
in Django admin, then update the example CSV to use those exact codes.
For example, a fresh source import generates
parties_and_corporate_events for Parties and Corporate Events;
existing configured codes are retained.
Use Google Sheets, not a Google Docs text document, to create your CSV. These steps use the desktop web version.
event_id, title, start_at,
end_at, event_type, status,
description, visibility. Do not put the
entire comma-separated header line in a single cell.2030-06-01T09:00:00-06:00, including the offset.
Use the offset that applies at your track on that event date.trackday_type in I1,
and enter each event's type code below it..csv file for upload.These steps use desktop Excel; menu wording can vary by version.
trackday_type in I1, and
enter the type codes below it..xlsx workbook. Select the
sheet containing the calendar, then choose
File > Save As (or Save a Copy)..csv, not the .xlsx workbook.Enter descriptions normally in spreadsheet cells; the CSV
exporter handles quoting commas and newlines. Before uploading, open
the exported file in a plain-text editor and check that its first line
matches the comma-separated headers above and its timestamps still
include offsets. Some Excel regional settings export semicolons instead
of commas; those files must be exported with a comma delimiter.
Do not rename a document or workbook to .csv as a substitute
for exporting it.
Matching event IDs update existing entries; omitted entries are retained. Schedule imports do not create bookable dates or initiate payments. If the calendar changes after previewing, upload again for a fresh preview.
Set Facility timezone on the Calendar tab using an IANA name such as America/Chicago or UTC. All named tracks share this setting; facilities initially use UTC until changed. Choose Add event or open an event on the management calendar. New events inherit the facility timezone, shown read-only in the editor. Existing events keep their saved timezone even after the facility setting changes; no existing booking or customer reference is rewritten. Enter local start/end times in the displayed timezone. The event must have an end after its start. Nonexistent or repeated daylight-saving times are rejected; enter an unambiguous local time instead.
For a public, scheduled, future Individual Session or Group Buy event, booking is created automatically on save. Select a named track and one vehicle type; capacity comes from that track's configured vehicle-type maximum and cannot be overridden in the event editor. Set participant price and tax code; group buys also require a full-day rental price. Missing configuration or pricing rejects the whole eligible save. Other events remain schedule-only. Booking date, start, and mode are derived from the event. The event must fit within one local day, and there is one booking per facility per local date. Save event saves the event and booking together, enabling the existing $20 participant deposit selection without charging or reserving capacity.
The first dropdown controls Individual Session, Group Buy, Private Event, or Other behavior. Event type selects the facility's configured classification and badge color, such as Open, Race org, or Track org. These are separate selections; changing classification does not change the event's booking behavior.
Customer and management calendar entries show Date, Track, Event type, and the selected Vehicle type without expanding event details. Sold / max counts paid active participants against the saved booking capacity, not a later change to the track's configuration. Cart selections, unpaid checkouts, refunded, refund-pending, and cancelled participants are excluded. Group Buy counts only the winning proposal, or zero before a winner. Holding deposit / Total purchase shows the existing deposit and full purchase price per participant before tax, not the remaining balance. Missing configuration is labelled explicitly; private event details remain unavailable to regular customers. These values do not reserve places or change booking rules.
Other scheduled events still block that booking day. Cart, proposal, checkout, or participation references lock the linked event and configuration against editing/deletion, including CSV and admin edits. Before references exist, edit event times and booking values together. Remove booking keeps the event, and Delete event with booking removes both; each requires explicit confirmation and does not apply unsaved editor changes. Saving an eligible event again recreates booking after removal. Making a linked event incompatible requires explicit removal first. Track maximum changes alone do not rewrite saved booking capacity; explicit unreferenced event saves refresh it from current configuration. Cancelled bookings remain locked. Legacy standalone bookable dates remain editable without creating schedule events. Cancellation and refunds use the existing separate workflows.