# STEP TWO: Import Data Files

### Overview

The PTA scheduler requires **4 data files**: **Student**, **Teacher**, **Class**, and **Enrollment**. Two additional files — **Parent** and **Parent-Student Relationship** — are optional and only needed for **Single Sign-On** setups.

All files must be **tab-delimited text files** (`.txt` from Excel, or `.tsv` from Google Sheets), with column headers in the **first row**, matching the exact field names below (no spaces).

---

### Student File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-field-description-st"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Field</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Description</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**StudentID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Unique identifier for the student *(key field)*</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**First**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Student's first name</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Last**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Student's last name</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**SecurityValue**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">A value (e.g., birthdate) parents enter to confirm they're selecting the correct child</td></tr></tbody></table>

</div>**Example:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-studentid-securityva"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">StudentID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">SecurityValue</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">First</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Last</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">4321</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">04/12/2012</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Amanda</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Jones</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">4322</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">08/04/2012</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Timothy</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Smith</td></tr></tbody></table>

</div>> ⚠️ **Don't recycle Student IDs** without removing the old student first. If StudentID 101 belonged to Betsy Smith last year and is reassigned to William Johnson this year, Betsy's parent will see William listed as their child. If recycling IDs, remove all stored contacts first via **Global Setup / Contacts Setup / Remove All Contacts**.

**Optional column:** `Action` — set to `delete` to remove a previously imported row. Defaults to `update` if omitted.

---

### Teacher File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-field-description-te"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Field</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Description</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**TeacherID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Unique identifier for the teacher *(key field)*</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**First**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Teacher's first name</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Last**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Teacher's last name</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Email**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Teacher's email (must be unique; one address only)</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Room**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Where the teacher will be during conferences — useful for room-based reporting</td></tr></tbody></table>

</div>**Example:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-teacherid-first-last"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">TeacherID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">First</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Last</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Email</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Room</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">234</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Angela</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Frank</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top"><a@school.com></td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">106</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">225</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Bobby</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Smith</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top"><b@school.com></td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Library</td></tr></tbody></table>

</div>> Want team-taught conferences? See **Creating Teams**, below.

**Optional columns:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-column-purpose-passw"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Column</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Purpose</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Password**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Sets an initial password (min. 6 characters). If omitted, the teacher creates their own at first login. *(Once a teacher sets their own password, future imports won't override it — use the Reset Admin Password button under Global Setup / Contacts Setup to reset instead.)*</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Virtual Room**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Online meeting link, if manually generating your own (not needed if using pickAtime's built-in meeting integration)</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**AccessLevel**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Sets admin access. `3` = Resource Administrator (can block their own schedule). Default is Appointment Viewer.</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**GroupName**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Categorizes teachers (e.g., "Middle School," "Science") — useful for creating different slot durations per group, or displaying teachers grouped on the scheduler</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Action**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Set to `delete` to remove a previously imported row</td></tr></tbody></table>

</div>---

### Class File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-field-description-cl"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Field</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Description</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**ClassID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Unique identifier for the class *(key field — must be unique **per teacher**)*</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**TeacherID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Must match a TeacherID in the Teacher file</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**ClassName** *(optional)*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Display name shown on the CUI legend</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**GroupName** *(optional)*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Categorizes teachers for grouped slot creation or display</td></tr></tbody></table>

</div>**Example:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-classid-teacherid-cl"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ClassID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">TeacherID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ClassName</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Math-Sec200</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">234</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Math</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Math-Sec201</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">235</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Math</td></tr></tbody></table>

</div>> ⚠️ **ClassID must be unique per teacher.** If your school has one "English 9" course taught by multiple teachers, give each section its own ClassID — e.g., `Eng9-869` for the section taught by teacher 869. Make sure your Enrollment file uses this same exact ClassID.

**Optional columns:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-column-purpose-actio"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Column</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Purpose</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Action**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Set to `delete` to remove a previously imported row</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**PTAN**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Number of appointments allowed per parent for this class (default: 1)</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Max**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Maximum students allowed to enroll (default: a very high number)</td></tr></tbody></table>

</div>---

### Enrollment File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-field-description-st-1"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Field</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Description</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**StudentID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Must match a StudentID in the Student file</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**ClassID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Must match a ClassID in the Class file</td></tr></tbody></table>

</div>**Format Option 1 — One class per row** (multiple rows per student if enrolled in multiple classes):

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-studentid-classid-12"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">StudentID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ClassID</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">123</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">English-SecB</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">123</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Science</td></tr></tbody></table>

</div>**Format Option 2 — One row per student**, with each class in its own `ClassID` column:

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-studentid-classid-cl"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">StudentID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ClassID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ClassID</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">123</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">English-SecB</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Science</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">456</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Math</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Gym</td></tr></tbody></table>

</div>**Optional column:** `Action` — set to `delete` to remove a previously imported enrollment row.

---

### Creating Teams

You can set up team-taught classes either **during import** or **after import**, depending on your situation.

#### Option A: Via Import

**Method 1 — Import the team as a single "teacher"** Use this if you're importing team data directly (not individual teacher data), and the team members won't also have individual conferences.

- Create a new "teacher" record representing the team (e.g., `Team Smith-Jones`), with its own unique **TeacherID**.
- This team's class should include all students from both teachers' rosters.
- You can optionally use one teacher's email, or leave it blank — but it can't duplicate an email already used by another teacher.
- Make sure the individual teachers (Smith, Jones) aren't also separately bookable at the same times as the team.
- **To grant the individual teachers visibility into the team's schedule:** Go to **Contacts**, locate each teacher, and under **Resource Access**, grant them access to the team resource.

**Method 2 — Combine individual teachers into a team via the Class file** Use this if you're importing individual teacher data and want to combine some into a team. In the Class file's `TeacherID` column, concatenate teacher IDs with a semicolon.

**Example:**

*Teacher File:*

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-teacherid-first-last-1"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">TeacherID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">First</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Last</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Email</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">T123</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Anne</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Smith</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top"><asmith@school.com></td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">T124</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Harold</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Rice</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top"><hrice@school.com></td></tr></tbody></table>

</div>*Class File:*

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-teacherid-classid-t1"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">TeacherID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ClassID</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">T123;T124</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Math101</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">T123</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Biology</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">T124</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">English</td></tr></tbody></table>

</div>Here, Anne Smith and Harold Rice team-teach Math101. A parent with a student in Math101 books with the **team**; a parent with a student in Biology or English books with the **individual** teacher. The system prevents double-booking — booking with Anne Smith (individually) automatically blocks the corresponding slot for the Smith/Rice team.

> This same technique works for cases like pairing a general education teacher with a special education teacher for select students — create a combined class (e.g., "English/Special Ed") and enroll only the relevant students in it, while others remain in the standard "English" class.

#### Option B: After Import

1. Go to **Class Editor**.
2. Select **Add Teacher/Team**.
3. In the **Select Person** dialog, search for and select the first teacher, then click **Add to Team**. Repeat for the second teacher.
4. Once both teachers appear in the top-left list, click **OK**.
5. Either manually create a class for the team, import a class/enrollment file for them, or move existing classes from an individual teacher to the team.

> Booking with the team blocks the corresponding slot for each individual member, and vice versa — this prevents double-booking automatically.

**To add a room number for a team:** Go to **Appointments**, and enter the room number to the right of the team's name.

---

### Parent File *(Optional — Single Sign-On only)*

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-field-description-pa"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Field</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Description</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**ParentID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Unique identifier for the parent</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**First**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Parent's first name</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Last**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Parent's last name</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**Email**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Parent's email (one only)</td></tr></tbody></table>

</div>**Example:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-parentid-first-last-"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ParentID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">First</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Last</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Email</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">123</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">John</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Smith</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top"><js@parent.com></td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">456</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Susie</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Smith</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top"><ss@parent.com></td></tr></tbody></table>

</div>> Both **ParentID** and **Email** should be unique — duplicate rows will simply update the same contact rather than create a new one.

**To prevent parents from manually attaching/detaching students:** Go to **Global Setup / Business Setup / Miscellaneous**, and uncheck **"Allow parents to attach and detach students."**

---

### Parent-Student Relationship File *(Optional — Single Sign-On only)*

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-field-description-pa-1"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Field</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Description</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**ParentID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Must match the Parent file</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">**StudentID**</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Must match the Student file</td></tr></tbody></table>

</div>**Example:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-studentid-parentid-3"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">StudentID</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">ParentID</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">37890</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">4451</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">37891</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">4478</td></tr></tbody></table>

</div>---

### Mistakes to Avoid

- **Don't export a full year of class data** if you only need half a year.
- **If parents won't recognize a numeric Student ID:** Use a first+last name concatenation instead (e.g., `BenjaminFranklin`). You don't need to create this field manually — check **"Use First + Last Name as StudentID"** under **Global Setup / Business Setup / Parent Login**, then customize the prompt text under **CUI Messages / Student / StudentID**.
- **Watch for leading zeros.** Opening a numeric ID column in Excel may strip leading zeros automatically.
- **If Student IDs changed from last year**, remove the old stored student data first (see *Previous Users of pickAtime*).
- **If Student IDs are reassigned annually** (not tied to a permanent record), also remove old stored data first.
- **Cleaning up old data:** You can now delete an event's existing classes/enrollment (and their associated teacher resources) directly from the **Importer** page — no need to leave the page. Select **Class** under **File Type**, then click **Remove Existing Classes**.
- **Email column naming:** The column must be labeled exactly `Email`. Variants like `Email_Address` or `Teachers_Email_Address` will import as extra data fields, **not** as the teacher/participant's login email.

---

### Import Process

1. Log into pickAtime and click **Importer**.
2. Set **Data Type** to **School**.
3. Select your event from the **Event** pull-down.
4. Set **File Type** to **Students**.
5. Click **Browse**, select your file, and click **Import**.
6. If the import succeeds with no errors, repeat steps 4–6 for **Teachers**, **Classes**, and **Enrollment** (in that order), changing the File Type each time.

> **Data Type** should be set to **School** for all four files.

**Import logic:** Each row has a unique key (StudentID, TeacherID, or ClassID). Re-importing the same data won't create duplicates — the system checks for an existing match and either **updates** it or **creates** a new record. This also means you can safely import a file containing only **missing** rows to fill in gaps.

> ⚠️ **Always confirm the number of rows imported matches your file** — silent partial imports can be easy to miss.

**Import order matters:**

- Fix all **Teacher file** errors before importing the **Class file**.
- Fix all **Class file** errors before importing the **Enrollment file**.

---

### Error Messages on Import

#### General

**"Incorrect file type was supplied."** Your file must be tab-delimited. Re-save/re-export and try again.

---

#### Student File Errors

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-error-cause-%2F-fix-%22t"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Error</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Cause / Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"The file does not have a column labeled 'First' or 'First Name'"* / *"...labeled 'StudentID'"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Column headers must match exactly (e.g., `StudentID`, not `Student Lunch Number`)</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"The ID field is empty for XX"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">A required field (name, StudentID, birthdate) is blank in that row</td></tr></tbody></table>

</div>---

#### Teacher File Errors

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-error-cause-%2F-fix-%22f"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Error</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Cause / Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Found contact with teacherid of ABC and a different contact with the email of \[email\]"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Your import row has TeacherID `ABC` + a specific email, but the Admin UI already has **two separate** existing contacts — one matching the TeacherID, one matching the email — and the system can't tell which to update. **Fix:** In Contacts, find the conflicting record(s), delete the outdated one, and re-import.</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"The ID field is empty for XX"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">A required field (name, email) is blank in that row</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"The password field should be 6 characters or more for XX"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Check the Password column for that row</td></tr></tbody></table>

</div>---

#### Class File Errors

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-error-cause-%2F-fix-%22c"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Error</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Cause / Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Could not find teacher with teacherID XX"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">This TeacherID isn't in your imported Teacher file — import teachers first, or correct the ID</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Class 'Math' already exists with a different teacher than '123'"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">ClassID must be unique **per teacher** — two rows are using the same ClassID for different teachers. Fix by appending a section/teacher identifier (e.g., `Math-123`), and update your Enrollment file to match. *(See "Removing a bad class" below to clean up the incorrect entry first.)*</td></tr></tbody></table>

</div>---

#### Enrollment File Errors

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-error-cause-%2F-fix-%22s"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Error</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Cause / Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Student ID not found"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">This StudentID isn't in your Student file — import students first</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Class XX not found"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">This ClassID isn't in your Class file. *(Safe to ignore if it's a non-conference class, like Study Hall.)*</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"No class ID found for student XX"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">This row has a StudentID but no associated ClassID</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Student XX not in class YY"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Appears when deleting enrollment — the student wasn't actually enrolled in that class</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Class XX has reached maximum enrollment. Student XX has been skipped."*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">The class's **Max** setting was reached. Check/adjust this value in **Class Editor** under the teacher → class → **Maximum** column</td></tr></tbody></table>

</div>---

#### Parent File Errors

**"The file does not have a column labeled 'First' or 'First Name'"** Column headers must match the spec exactly.

---

#### Parent-Student Relationship File Errors

**"Could not find Parent with ID 'XX' or Student with ID 'YY' as this parent/student was not imported"** Double-check that both the ParentID and StudentID exist in their respective files and were successfully imported first.

---

### How to Correct Bad Data

> 💡 **Removing a bad class — quick reference (used throughout this section):**
> 
> - **Individually:** Go to **Class Editor**, check **"Show Only Classes,"** locate the class, and click the **red X** next to it.
> - **In bulk prior to an updated Class file import:** On the **Importer** page, select **Class** under **File Type**, then click **Remove Existing Classes** — this also removes the associated teacher resources, without needing to leave the Importer.

#### Student File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-issue-fix-names-reve"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Issue</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Names reversed</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Correct the file and re-import</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Incorrect Student IDs</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Re-import the bad file with an added `Action` column set to `delete`, to remove the incorrect records</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Forgot the SecurityValue field</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Add the field and re-import</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">File was missing some students</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Import the missing students, then import an enrollment file to enroll them</td></tr></tbody></table>

</div>---

#### Teacher File

**Your fix depends on whether you've already imported your Class file** — once imported, teachers become "resources" tied to Appointments and Class Editor, and can no longer be simply overwritten by re-importing the Teacher file.

**If you have NOT yet imported your Class file:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-issue-fix-names-reve-1"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Issue</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Names reversed</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Correct the file and re-import</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Teacher data was wrong</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Re-import the bad file with an `Action` column set to `delete`</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Teacher IDs incorrect</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Same as above — re-import with `Action: delete` to remove, then import the corrected file</td></tr></tbody></table>

</div>**If you HAVE already imported your Class file:**

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-issue-fix-unwanted-t"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Issue</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Unwanted teachers present</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Go to **Class Editor** and remove the teachers you don't need</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Teachers assigned to wrong classes</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Go to **Class Editor**, remove all classes, then re-import your Class file OR correct your class file, and prior to a new Class file import, check the box "remove existing classes."</td></tr></tbody></table>

</div>---

#### Class File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-issue-fix-imported-w"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Issue</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Imported wrong/too many classes</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Remove the bad classes (see quick reference above)</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">*"Class A already exists but with a different teacher than Teacher B"*</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">The same ClassID is assigned to two different teachers. Determine the correct teacher, then either fix and re-import the bad row, or go to **Class Editor** and move/delete the incorrect class assignment</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Classes assigned to wrong teachers</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Remove all classes (see quick reference above), then re-import your Class file</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">One class assigned to the wrong teacher</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Simplest fix: in **Class Editor**, move the class to the correct teacher directly. *(Just correcting your import file won't remove the original incorrect assignment — you must move it manually.)*</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Missed some classes</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Add them to your Class file and re-import (or import a file with just the missing classes)</td></tr></tbody></table>

</div>---

#### Enrollment File

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-issue-fix-imported-w-1"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Issue</th><th class="text-text-100 border-b-0.5 border-[hsl(var(--border-300)/0.6)] py-2 pr-4 align-top font-bold" scope="col">Fix</th></tr></thead><tbody><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Imported wrong/last year's enrollment</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Remove all classes via **Class Editor**, then re-import a corrected Class file and Enrollment file</td></tr><tr><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">File was missing some enrollment</td><td class="border-b-0.5 border-[hsl(var(--border-300)/0.3)] py-2 pr-4 align-top">Import the missing enrollment data — no need to redo the full file</td></tr></tbody></table>

</div>---

### How to Remove Imported Data

**To remove everything (start completely fresh):**

1. Create a new event using your last event as a **template** (Events List → **Add**), then delete the old event. This clears class and enrollment data.
2. Remove stored contacts: **Global Setup / Contacts → Show Advanced Options → Remove All Customers**, selecting **Event Administrator** as the level to delete. *(This also removes parents.)*
3. Remove stored students: Click **Remove Students Not Enrolled in a Class**. *(This may take a few minutes.)*

> If only your **class and enrollment** data is wrong (students/teachers are fine), you only need **step 1**.

---

**To remove class data only, while keeping your teacher roster and slots:**

1. Go to **Class Editor** and delete all classes — this keeps your teacher roster on the Appointments and Class Editor pages.
2. Import a new Class file and a new Enrollment file.

---

**To remove students, teachers, classes, and enrollment — but keep parents:**

1. Create a new event using your last event as a template, then delete the old one (clears class/enrollment data).
2. Take your old Student and Teacher files, add an `Action` column set to `delete`, and re-import both.

---

### Frequently Asked Questions

**We accidentally imported last semester's data, but have too many parent appointments to start over. Can we just import new files?**

Yes — new imports **add to** existing data rather than replacing it. New classes/enrollment will be added, but anything previously imported stays unless explicitly deleted (via Class Editor or an `Action: delete` import). **Existing parent appointments are never affected by a new import.**

---

**We re-imported corrected class/enrollment files to remove some classes, but the old ones are still showing.**

Imports only **add or update** — they never delete automatically. To remove classes, use **Class Editor** directly, or include an `Action: delete` column in your import file for the rows you want removed. The same applies to removing specific enrollment records.

---

**We were missing some class/enrollment data. Will importing the missing data delete any booked appointments?**

No. Importing additional class/enrollment data only **adds** what's missing — it will not disturb appointments already booked.

---

### Viewing Your Imported Data

1. From **Events Preview**, select your event and click **Go to Event**.
2. Select **Class Editor** to see your teacher list. Select a teacher to see their classes; select a class to see enrolled students.
3. Check **"Show Only Classes"** (far right) to view data organized by class instead.

> See **Modifying Teacher or Room Data** to add/remove teachers, **Moving a Class** to reassign a class, and **Modifying Enrollment Data** to add/remove students from a class.

---

#### Missing Classes

- **No manual changes made in Admin UI:** Simply re-import updated Class and Enrollment files — new data will be added without disturbing existing data.
- **Manual changes were made** (e.g., reassigned teachers, moved students): Import a Class file with **only** the missing class(es), and an Enrollment file with **only** the missing enrollment.

> Neither approach disturbs appointments already booked.

#### Missing Enrollment

If no manual changes were made, simply import an updated Enrollment file — subsequent imports never overwrite previously imported class/enrollment data; they only **add** new rows.