FET favicon

FET

FET is open source free software for automatically scheduling the timetable of a school, high-school or university. It uses a fast and efficient timetabling algorithm. It is licensed under GNU GPL. Usually, FET is able to solve a complicated timetable in maximum 5-20 minutes. For simpler timetables, it may take a shorter time, under 5 minutes (in some cases, a matter of seconds). For extremely difficult timetables, it may take a longer time, a matter of hours.

Features:

  • Localized to en_US (US English, default), ar (Arabic), ca (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa (Persian), fr (French), 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) and uk (Ukrainian) (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
  • Powerful 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

  • Very flexible students (pupils) 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 can have only 100% weight percentage possible)
  • Limits for the algorithm (all these limits can be increased on demand, as a custom version, because this requires 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

  • Adjustable duration for each activity (each activity can have duration of 1 hour, 2 hours, 3 hours or more)
  • Possibility of adding multiple teachers and students sets for each activity. That is, each activity can have specified any number of students subgroups (sets) and any number of teachers (it is possible to have no teacher or no students set for an activity, also)

  • Maximum number of time constraints: 60000

  • Maximum number of space constraints: 60000

  • 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

    Not overlapping

    Consecutive, ordered, grouped (for 2 or 3 (sub)activities)

    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