Included in
This is the feature list, liftet from the project web site:
FET is free software, licensed under the GNU GPL v2 or later. You can freely use, copy, modify and redistribute it
Localized to en_US (US English, default), ar (Arabic), ca (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa (Persian), fr (French), gl (Galician), he (Hebrew), hu (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala), sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz (Uzbek) and vi (Vietnamese) (incompletely for some languages)
Fully automatic generation algorithm, allowing also semi-automatic or manual allocation
Platform independent implementation, allowing running on GNU/Linux, Windows, Mac and any system that Qt supports
Flexible modular XML format for the input file, allowing editing with an XML editor or by hand (besides FET interface)
Import/export from CSV format
The resulted timetables are exported into HTML, XML and CSV formats
Flexible students structure, organized into sets: years, groups and subgroups. FET allows overlapping years and groups and non-overlapping subgroups. You can even define individual students (as separate sets)
Each constraint has a weight percentage, from 0.0% to 100.0% (but some special constraints are allowed to have only 100% weight percentage)
Limits for the algorithm (all these limits can be increased on demand, as a custom version, because this would require a bit more memory):
Maximum total number of hours (periods) per day: 60
Maximum number of working days per week: 35
Maximum total number of teachers: 6000
Maximum total number of sets of students: 30000
Maximum total number of subjects: 6000
Virtually unlimited number of activity tags
Maximum number of activities: 30000
Maximum number of rooms: 6000
Maximum number of buildings: 6000
Possibility of adding multiple teachers and students sets for each activity. (it is possible also to have no teachers or no students sets for an activity)
Virtually unlimited number of time constraints
Virtually unlimited number of space constraints
A large and flexible palette of time constraints:
Break periods
For teacher(s):
Not available periods
Max/min days per week
Max gaps per day/week
Max hours daily/continuously
Min hours daily
Max hours daily/continuously with an activity tag
Respect working in an hourly interval a max number of days per week
For students (sets):
Not available periods
Begins early (specify max allowed beginnings at second hour)
Max gaps per day/week
Max hours daily/continuously
Min hours daily
Max hours daily/continuously with an activity tag
Respect working in an hourly interval a max number of days per week
For an activity or a set of activities/subactivities:
A single preferred starting time
A set of preferred starting times
A set of preferred time slots
Min/max days between them
End(s) students day
Same starting time/day/hour
Occupy max time slots from selection (a complex and flexible constraint, useful in many situations)
Consecutive, ordered, grouped (for 2 or 3 (sub)activities)
Not overlapping
Max simultaneous in selected time slots
Min gaps between a set of (sub)activities
A large and flexible palette of space constraints:
Room not available periods
For teacher(s):
Home room(s)
Max building changes per day/week
Min gaps between building changes
For students (sets):
Home room(s)
Max building changes per day/week
Min gaps between building changes
Preferred room(s):
For a subject
For an activity tag
For a subject and an activity tag
Individually for a (sub)activity
For a set of activities:
Occupy a maximum number of different rooms
I have not used it myself, as I am not involved in time table planning at a school, but it seem to work fine when I test it. If you need to set up your schools time table, and is tired of doing it manually, check it out. A quick summary on how to use it can be found in a blog post from MarvelSoft. If you find FET useful, please provide a recipe for the Debian Edu project in the Debian Edu HowTo section.