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).
Download a CSV for editing and re-import (upsert). Uses the same column layout as staff import.
Preview changes from CSV or Excel, then confirm to create or update classes by class_code.
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.
| Column | Required | Description |
|---|---|---|
| class_code | No | Stable upsert key. Leave empty only for new rows; must match an existing class to update. Export fills this for you. |
| name | Yes | Product / class display name. |
| language | No | e.g. Spanish, French. |
| level | No | e.g. A1, B2 (CEFR-style labels). |
| term | No | spring, summer, or fall (aliases: sp, su, fa). |
| semester_name | No | Must 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_number | No | Integer session index. |
| session_name | No | e.g. Session 1. |
| days_of_week | No | Comma-separated: Mon, Wed or Tuesday, Thursday. |
| start_datetime | No | ISO-8601 recommended (matches export). Other strings are parsed with JavaScript Date where possible. |
| end_datetime | No | Same as start_datetime; must be after start when both set. |
| location_type | No | In-Person, Online, Hybrid (inferred from text if fuzzy). |
| room | No | Room or space name. |
| capacity | No | Max seats (integer). |
| min_capacity | No | Minimum enrollment (integer). |
| base_price_cents | No | Price in cents (integer), e.g. 35000 for $350. Alias header: price (mapped to cents in some parsers). |
| member_discount_percent | No | Optional percent discount for members. |
| intensity | No | regular or intensive (partial text match). |
| active | No | true/false, yes/no, 1/0. |