1. Help Articles
  2. Administrators
  3. Timetabling and Daily Organisation

Timetable import - specifications to create a CSV

This article addresses the requirements for successfully importing timetable data into XUNO from third-party timetabling products using a single CSV format file.


In this article

Export file format

  • The CSV file should have no header row.
  • Fields should be comma-separated and enclosed in double quotes.
  • Lines should have CRLF line endings.
  • Each row should represent an individual timetable entry for an individual period on an individual day.
  • Any fields that do not contain data should still be included empty and enclosed in double quotes ("").



The fields on each line must be in the following order. Each field (mandatory or not) must be enclosed in double quotes. 
* Denotes a mandatory field.

SIS student code (max 20 chars)
Class code (max 100 chars) *
Subject code (max 100 chars) *
Subject name (max 200 chars) *
Day (integer) *
Day name (max 100 chars) *
Period (integer or varchar unique ID, max 10 chars) *
Period name (max 100 chars) *
Room (max 100 chars)
Staff code for the teacher of this class (T.O. code or initials) *
Staff code for the second teacher of this class (optional, for team teaching. Leave blank if not used)
Yard duty flag (1 = yes or 0 = no) *


Yard duties

The format for yard duties is the same format as the student timetabled classes, excluding the SIS student code field. You will see in the field table above that the last column exported is 'Yard duty flag' which is either a "1" = yes or "0" = no, which will tell XUNO if that row being imported is a yard duty.

All timetabled classes that do not contain students will also get treated as a yard duty when imported into XUNO. The vendor does have the choice of exporting the timetabled classes and yard duty in the one file, or separating them into two files.

Team-taught classes

XUNO supports team-taught classes. When the timetable is imported, XUNO will combine classes with the same class code and unique staff codes into one class, because it will automatically treat those records as a team-taught class.

For example: 

ENGY07A taught by AM and ENGY07A taught by JA will be combined into one team-taught class ENGY07A-AMJA. Note how the initials of each teacher are appended at the end of the class code.

There are two ways of indicating a team-taught class in the XUNO timetable format:

  1. Include the secondary staff code field in each timetable row.
  2. Create duplicate entries for the timetabled class, then change the staff code of the newly duplicated entries to add a staff member. This can be repeated for each additional teacher of the team-taught class.

If you do not want this behaviour to occur and would like each class to remain separate, then you must either use a unique class code for each class, or add a unique suffix to each class in your timetabling software. CASES21 timetabling does not support the unique suffix option.

Priority classes

XUNO only supports one class per period per student. If you timetable multiple classes per period per student (e.g. external courses) you need to only include one of the two in the exported file. You cannot have multiple classes per period per student in the end result set.      

Composite classes

XUNO expects all classes to have unique class codes. XUNO will create a composite class when two or more classes are taught by the same teacher on the same day and same period on your timetable. This will occur even if the class has a different class code.

The example below will produce one team-taught class with the class code 8ENG2C and teachers with the staff codes 09581143, 07541325, and 04851458. If you do not want this to occur and would like each class to remain separate, then you must either use a unique class code for each class, or add a unique suffix to each class.

"MUR0010","8ENG2C","8ENG2","8 English S2 B1","1","Day 1","1","P1","01","09581143","","0"
"SAN0018","8ENG2C","8ENG2","8 English S2 B1","1","Day 1","2","P2","01","09581143","","0"
"REN0001","8ENG2C","8ENG2","8 English S2 B1","1","Day 2","2","P2","01","09581143","","0"
“HUY0003","8ENG2C","8ENG2","8 English S2 B2","1","Day 3","1","P1","03","07541325","","0"
"SMI0020","8ENG2C","8ENG2","8 English S2 B2","1","Day 4",”4","P4","03","07541325","","0"
"TEH0009","8ENG2C","8ENG2","8 English S2 B3","1","Day 4","5","P5","09","04851458","","0"

Example #1: Student timetable

The entries below represent an individual student’s class on day 1 of the timetable. The SIS student code is ABC0010. Notice that Form Assembly is a team-taught class.

Each entry should be on one line.

"ABC0010","FA206","FA2","Form Assembly S2","1","Day 1","1","P1","01","09581143","","0"
"ABC0010","FA206","FA2","Form Assembly S2","1","Day 1","1","P1","01","07983546","","0"
"ABC0010","8ENG201","8ENG2","8 English S2","1","Day 1","2","P2","03","09581143","","0"
“ABC0010","8ENG201","8ENG2","8 English S2","1","Day 1","3","P3","03","09581143","","0"
"ABC0010","8HUM201","8HUM2","8 Humanities S2","1","Day 1",”4","P4","08","07541325","","0"
"ABC0010","8SCI201","8SCI2","8 Science S2","1","Day 1","5","P5","G09","04851458","","0"
"ABC0010","8TEX201","8TEX2","8 Textiles S2","1","Day 1","6","P6","T01","08850076","","0"


Example #2: Yard duties

The entries below represent the yard duty schedule for the first three days of the timetable cycle for the oval.

Each entry should be on one line.

"","YDOVAL15C","YDOVAL15","Yard Duty Oval - 15 mins","1","Day 1","7","Recess","","08850076","","1"
"","YDOVAL30C","YDOVAL30","Yard Duty Oval - 30 mins","1","Day 1","8","Lunch 1","","08758349","","1"
“","YDOVAL15C","YDOVAL15","Yard Duty Oval - 15 mins","2","Day 2","7","Recess","","02219255","","1"
"","YDOVAL30C","YDOVAL30","Yard Duty Oval - 30 mins","2","Day 2","8","Lunch 1","","01526264","","1"
"","YDOVAL15C","YDOVAL15","Yard Duty Oval - 15 mins","3","Day 3","7","Recess","","02219255","","1"
"","YDOVAL30C","YDOVAL30","Yard Duty Oval - 30 mins","3","Day 3","8","Lunch 1","","08850076","","1"