Import / export classes

Download classes as CSV, edit offline, then preview and commit updates. Columns match the staff round-trip format below (UTF-8 CSV or first sheet of Excel).

View Import History

Export classes

Download a CSV for editing and re-import (upsert). Uses the same column layout as staff import.

Import classes (upsert)

Preview changes from CSV or Excel, then confirm to create or update classes by class_code.

Staff CSV / Excel column reference

Header row should use these column names (snake_case). Easiest path: use Export classes above, edit, then Preview import. You can also start from sample CSV.

Tip: Save as UTF-8 without BOM if the first column looks wrong in Excel. For Excel uploads, only the first sheet is read.

ColumnRequiredDescription
class_codeNoStable upsert key. Leave empty only for new rows; must match an existing class to update. Export fills this for you.
nameYesProduct / class display name.
languageNoe.g. Spanish, French.
levelNoe.g. A1, B2 (CEFR-style labels).
termNospring, summer, or fall (aliases: sp, su, fa).
semester_nameNoMust match an existing semester name, or use a creatable pattern like "Spring 2026" for new semesters. Required when creating a class without an existing class_code.
session_numberNoInteger session index.
session_nameNoe.g. Session 1.
days_of_weekNoComma-separated: Mon, Wed or Tuesday, Thursday.
start_datetimeNoISO-8601 recommended (matches export). Other strings are parsed with JavaScript Date where possible.
end_datetimeNoSame as start_datetime; must be after start when both set.
location_typeNoIn-Person, Online, Hybrid (inferred from text if fuzzy).
roomNoRoom or space name.
capacityNoMax seats (integer).
min_capacityNoMinimum enrollment (integer).
base_price_centsNoPrice in cents (integer), e.g. 35000 for $350. Alias header: price (mapped to cents in some parsers).
member_discount_percentNoOptional percent discount for members.
intensityNoregular or intensive (partial text match).
activeNotrue/false, yes/no, 1/0.