MAG OptiAI

SchedAI Input Specs

SchedAI Academic Scheduling Input Specs

Use this guide to prepare CSV files for Academic Scheduling. The upload requirements depend on whether you are building a class timetable or an exam timetable.

Overview

Use this guide to prepare valid input files for this workspace. Review the required files, exact column names, example rows, and common formatting rules before uploading.

Required files

7

Optional files

4

Spec sections

2

Applies to class timetable

Class Timetable Mode

Use these files when the workspace is set to Class timetable. Timeslots and rooms are shared foundations, then professors and courses define the teaching schedule.

Required file

timeslots.csv

Shared timetable slot roster used by classes or exams.

Requirements

Required columns

  • slot_id
  • day
  • start
  • end

Optional columns

No optional columns documented for this file.

Reference requirements

  • slot_id values must match references in professors.csv, courses.csv, exams.csv, room unavailable_slots, and meeting pattern rows.

Value rules and examples

  • slot_id values must stay unique.
  • Every row needs a day, start, and end value.
  • Use the same slot ids in professors.csv, courses.csv, exams.csv, room unavailable_slots, and meeting pattern rows.

Example CSV table

slot_iddaystartend
MON_09Mon09:0010:00
MON_10Mon10:0011:00

Required file

rooms.csv

Room inventory with capacity plus optional fit and blackout fields.

Requirements

Required columns

  • room_id
  • capacity
  • features

Optional columns

  • building
  • room_type
  • resources
  • unavailable_slots

Reference requirements

  • unavailable_slots must reference slot IDs from timeslots.csv.

Format limitations

  • List fields such as features, resources, and unavailable_slots use semicolon separators.

Value rules and examples

  • room_id values must stay unique.
  • capacity must be at least 1.
  • Use unavailable_slots only with slot ids listed in timeslots.csv.
  • Every room_id referenced by relationships or assignments must match this file.

Example CSV table

room_idcapacityfeaturesbuildingroom_typeresourcesunavailable_slots
SCI_10150proj;whiteboardSciencelectureprojector
SCI_20228proj;labSciencelabwet_labMON_10

Required file

professors.csv

Professor availability and teaching-load limits for class timetables.

Requirements

Required columns

  • professor_id
  • available_slots

Optional columns

  • max_load_slots
  • preferences

Reference requirements

  • available_slots must reference timeslots.csv; professor_id values are referenced by courses.csv.

Format limitations

  • available_slots uses semicolon separators.

Value rules and examples

  • professor_id values must stay unique.
  • available_slots should use slot ids from timeslots.csv, separated with semicolons.
  • professor_id values referenced from courses.csv must match this file.
  • max_load_slots, when provided, must be at least 1.

Example CSV table

professor_idavailable_slotsmax_load_slotspreferences
P_CHENMON_09;MON_10;WED_092Mon
P_ALVAREZMON_10;WED_09;WED_102Wed

Required file

courses.csv

Course sections, enrollment, assigned professor, and room-fit needs for class timetables.

Requirements

Required columns

  • course_id
  • enrollment
  • professor_id
  • meeting_slots_required
  • allowed_slots

Optional columns

  • required_features
  • required_room_type
  • required_resources
  • allowed_buildings
  • student_groups
  • section_id
  • offering_id
  • instructional_unit_id
  • meeting_pattern

Reference requirements

  • professor_id must match professors.csv; allowed_slots must match timeslots.csv; course_id is referenced by relationships, meeting patterns, and section groups.

Format limitations

  • List fields such as allowed_slots, required_features, required_resources, allowed_buildings, and student_groups use semicolon separators.

Value rules and examples

  • professor_id must match a row in professors.csv.
  • meeting_slots_required must be at least 1.
  • allowed_slots should reference slot ids from timeslots.csv.
  • course_id values referenced by relationships, meeting patterns, and section groups must match this file.

Example CSV table

course_idenrollmentprofessor_idmeeting_slots_requiredallowed_slotsrequired_featuresrequired_room_typerequired_resourcesallowed_buildingsstudent_groupssection_idoffering_idinstructional_unit_idmeeting_pattern
CHEM101_LEC_A42P_CHEN1MON_09;WED_09projlectureprojectorScienceG1ACHEM101CHEM101_A
CHEM101_LAB_A24P_ALVAREZ1MON_10;WED_10proj;lablabwet_labScienceG1ACHEM101CHEM101_A

Optional file

meeting_patterns.csv

Optional reusable meeting patterns for class schedules.

Requirements

Required columns

  • pattern_id
  • days

Optional columns

  • same_start

Reference requirements

  • pattern_id values are referenced by courses.csv meeting_pattern.

Format limitations

  • days uses semicolon-separated day labels.

Value rules and examples

  • pattern_id values must stay unique.
  • days should list one or more day labels separated with semicolons.
  • Reference these pattern ids from courses.csv when needed.

Example CSV table

pattern_iddayssame_start
MWFMon;Wed;Fritrue
TTHTue;Thutrue

Optional file

course_relationships.csv

Optional no-overlap, ordering, or day-separation rules between classes.

Requirements

Required columns

  • relation_type

Optional columns

  • relationship_id
  • course_ids
  • instructional_unit_id
  • before_course_id
  • after_course_id
  • hard
  • preference_weight

Reference requirements

  • course_ids, before_course_id, and after_course_id must match courses.csv when provided.

Format limitations

  • course_ids uses semicolon separators.

Value rules and examples

  • relation_type must be one of no_overlap, different_days, or ordered.
  • ordered rows need before_course_id and after_course_id.
  • Other relationship rows should point to course ids already listed in courses.csv.

Example CSV table

relationship_idrelation_typecourse_idsinstructional_unit_idbefore_course_idafter_course_idhardpreference_weight
CHEM101_LINKno_overlapCHEM101_Atrue
CHEM101_ORDERorderedCHEM101_ACHEM101_LEC_ACHEM101_LAB_Afalse6

Optional file

section_groups.csv

Optional section-group rules for related class offerings.

Requirements

Required columns

  • course_ids

Optional columns

  • group_id
  • offering_id
  • no_overlap

Reference requirements

  • course_ids must match courses.csv.

Format limitations

  • course_ids uses semicolon separators.

Value rules and examples

  • course_ids should list one or more course ids separated with semicolons.
  • Every referenced course id must already exist in courses.csv.
  • Use no_overlap when grouped sections should not run at the same time.

Example CSV table

group_idoffering_idcourse_idsno_overlap
BIO201_LABSBIO201BIO201_LAB_A;BIO201_LAB_Btrue

Common mistakes

  • Using slot ids in professors.csv or courses.csv that are not listed in timeslots.csv.
  • Referencing a professor_id in courses.csv that does not exist in professors.csv.
  • Adding relationship or section-group rows that point to missing course ids.

Quick rules

  • Load timeslots.csv and rooms.csv before adding class-specific structure.
  • professor_id values in courses.csv must match professors.csv.
  • Use semicolons in list fields such as allowed_slots, features, resources, buildings, and student groups.

Navigate

Keep the right guide close by

Pair this upload guide with the product page for workflow context or the resources hub for related public material.

Applies to exam timetable

Exam Timetable Mode

Use these files when the workspace is set to Exam timetable. Timeslots and rooms still define the schedule frame, then exams and optional conflict pairs add exam-specific constraints.

Required file

timeslots.csv

Shared timetable slot roster used by classes or exams.

Requirements

Required columns

  • slot_id
  • day
  • start
  • end

Optional columns

No optional columns documented for this file.

Reference requirements

  • slot_id values must match references in professors.csv, courses.csv, exams.csv, room unavailable_slots, and meeting pattern rows.

Value rules and examples

  • slot_id values must stay unique.
  • Every row needs a day, start, and end value.
  • Use the same slot ids in professors.csv, courses.csv, exams.csv, room unavailable_slots, and meeting pattern rows.

Example CSV table

slot_iddaystartend
MON_09Mon09:0010:00
MON_10Mon10:0011:00

Required file

rooms.csv

Room inventory with capacity plus optional fit and blackout fields.

Requirements

Required columns

  • room_id
  • capacity
  • features

Optional columns

  • building
  • room_type
  • resources
  • unavailable_slots

Reference requirements

  • unavailable_slots must reference slot IDs from timeslots.csv.

Format limitations

  • List fields such as features, resources, and unavailable_slots use semicolon separators.

Value rules and examples

  • room_id values must stay unique.
  • capacity must be at least 1.
  • Use unavailable_slots only with slot ids listed in timeslots.csv.
  • Every room_id referenced by relationships or assignments must match this file.

Example CSV table

room_idcapacityfeaturesbuildingroom_typeresourcesunavailable_slots
SCI_10150proj;whiteboardSciencelectureprojector
SCI_20228proj;labSciencelabwet_labMON_10

Required file

exams.csv

Exam roster with enrollment, slot options, and optional separation rules.

Requirements

Required columns

  • exam_id
  • enrollment
  • duration_slots
  • allowed_slots

Optional columns

  • required_features
  • student_groups
  • separation_from

Reference requirements

  • allowed_slots must match timeslots.csv; separation_from exam ids must match exams.csv.

Format limitations

  • allowed_slots, required_features, and student_groups use semicolon separators.

Value rules and examples

  • duration_slots must be at least 1.
  • allowed_slots should reference slot ids from timeslots.csv.
  • Use separation_from like EXAM_B:1 to require spacing between exams.

Example CSV table

exam_idenrollmentduration_slotsallowed_slotsrequired_featuresstudent_groupsseparation_from
MATH101_EXAM1101DAY1_AM;DAY1_PM;DAY2_AMstdG1;G2
PHYS110_EXAM801DAY1_PM;DAY2_AM;DAY2_PMstdG1CHEM120_EXAM:1

Optional file

conflict_pairs.csv

Optional explicit exam pairs that should not be scheduled together.

Requirements

Required columns

  • a
  • b

Optional columns

No optional columns documented for this file.

Reference requirements

  • a and b must match exam_id values in exams.csv.

Value rules and examples

  • Each row needs both exam ids.
  • Both exam ids must exist in exams.csv.
  • Use this file only for explicit conflicts that are not already covered by student_groups or separation rules.

Example CSV table

ab
MATH101_EXAMPHYS110_EXAM

Common mistakes

  • Using slot ids in exams.csv that are not listed in timeslots.csv.
  • Entering duration_slots values below 1.
  • Adding conflict pairs for exam ids that are missing from exams.csv.

Quick rules

  • Load timeslots.csv and rooms.csv before importing exams.csv.
  • Use semicolons in allowed_slots, required_features, and student_groups when a row needs multiple values.
  • conflict_pairs.csv is optional, but both exam ids must already exist in exams.csv.

Navigate

Keep the right guide close by

Pair this upload guide with the product page for workflow context or the resources hub for related public material.

Navigate

Keep the right input guide close

Return to the input-spec library for another upload contract, or go back to the resource hub for quickstarts, how-to guides, and use cases.