Timetable Generator

Optimize your timetable at the University of Toronto!

There may be a better timetable out there for you...

Most of the courses you take have multiple lecture, tutorial, and perhaps practical sections. This means that for the same set of courses, you can have many different timetables.

How did you pick the timetable that you have right now? Chances are you didn't go through every single possibility and pick the best one, because there were just too many possibilities. As a result, you can't be sure that the timetable you've chosen is the best you could have.

Enter Timetable Generator. This handy little program that I've written will generate all the possible timetables (that don't have conflicts) for your course load. More importantly, you can sort the generated timetables by various criteria, such as number of days off, number of evening classes, number of long gaps between classes, and so on. You can choose which criteria are the most important to you, and instantly see the best possible timetable you can have.

Note: This project is in maintenance mode. I make sure it's usable with each year's new timetable data, but I no longer have time to add new features to it.


Note:: A web version of Timetable Generator is now available. It supports most of the features of the desktop version, except for saving your course load. If you encounter any problems while using it, please let me know.

The latest version is Timetable Generator 0.9.66.

Download it here:

Older versions can be downloaded here.

Note: The Mac version has been discontinued. Please use the web version instead, or take a look at the Related Software section for alternatives.

For developers: I have released an open-source API that allows you to build your own programs using the functionality of Timetable Generator.


  • Support for the Faculty of Arts and Science and the Faculty of Applied Science and Engineering
  • Support for summer courses
  • Support for first-year seminar courses (CCR199, SII199, etc.)
  • Support for Windows and Linux
  • Easy, intuitive interface for selecting courses
  • Comes with a database of dates and times for all courses in the Faculty of Arts and Science
    • The program refreshes this database every week with fresh data directly from the University of Toronto website, to keep it up to date
  • Generates all possible conflict-free timetables for the set of courses you select...
    • ... and does this fast, even if there are many possibilities
  • Displays the possible timetables in a format similar to how ROSI displays your timetable
  • You can sort the generated timetables by various criteria, such as:
    • Number of days off
    • Less morning classes
    • Less evening classes
    • Less long stretches of class without breaks
    • Less long breaks between classes
    • More balance between the days of the week
    • More balance between weeks 1 and 2 (for timetables with courses that have alternate-week labs)
  • You can save your course load to a file and load the file later
  • Supports the "week 1"/"week 2" system used by science courses for alternate-week labs


Windows Mac
Selecting your courses
Screenshots of course selection wizard on Windows Screenshots of course selection wizard on Mac
Viewing your timetables
Screenshot of timetable viewer on Windows Screenshot of timetable viewer on Mac
Sorting the timetables
Screenshot of sort dialog on Windows Screenshot of sort dialog on Mac


Q: I press the "-->" button to look at the next timetable, but the timetable on the screen does not change. Is this a bug?

A: Look at the timetable in the Spring Term tab and see if that has changed. Often, two different timetables will have the same times for fall courses but different times for spring courses.

Q: The program hangs during the second half of the sort operation when sorting a large number of timetables

A: This is normal. The program has not crashed, it's just not responding while it's performing the sorting. This issue will be fixed in a future version. In the mean time, if this happens, just wait patiently while the sorting completes.

Related Software

CourseFinder, U of T's official course search tool that helps you select courses (you can then use Timetable Generator to figure out how to arrange them in your schedule!)

Arts & Science Course Finder, a similar course search tool (not officially affiliated with U of T)

The TimeTable Generator by Dillon Dixon, a web application similar to Timetable Generator that works for McMaster, U of T Scarborough Campus, University of Western Ontario

The UofT Timetable Generator, an Android app similar to Timetable Generator (see also their blog)

Griddy, a tool that allows you to assemble and see a single U of T timetable

FilleMe Schedule, a tool that allows you to search for courses based on what time they run

And of course, don't forget to check out the web version of Timetable Generator!

Contact Info

Your suggestions (and feature requests, bug reports, etc.) are welcome.

Please send them to: