Many approaches have been taken in academic environments to address the problem of student and course timetabling. Typically, student scheduling and course scheduling have been treated as separate tasks. Our approach is to build the schedule and place the students into classes simultaneously. That is, to collect all constraints and requirements, quantify them, and build a schedule based on heuristic functions, as we populate it with students. Heuristic functions are also used to order the processing of students. After the schedule is built, we endeavour to further optimise it using additional heuristic-based operations. An initial parallel implementation of the system was performed alongside the manual system followed by live runs in recent semesters. The system has been successfully adopted by the UnitedArab Emirates University’s University General Requirements Unit since the semester starting