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.

This program is a work in progress. Stay tuned for many cool new features!

Skip ahead to Current Features, Upcoming Features, Screenshots, FAQ, or Related Software.


**NEW**: A web version of Timetable Generator is now available. It doesn't support all the features of the desktop version yet (e.g. 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. It works with the 2016-2017 Fall/Winter and 2017 Summer timetable data.

Download it here:
Older versions can be downloaded here.

Note: The Mac version has been discontinued because I no longer have access to a Mac computer. (Old Mac versions can be found on the old versions page, but they are highly unlikely to work with the latest timetable data, or the latest versions of Mac OS X.) 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.

Current Features

Upcoming Features (stay tuned!)


Windows Mac
Selecting your courses
Viewing your timetables
Sorting the timetables


I press the "-->" button to look at the next timetable, but the timetable on the screen does not change. Is this a bug?
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.

The program hangs during the second half of the sort operation when sorting a large number of timetables
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.

On Mac OS X, I get an error saying "Cannot read timetable data from inventory file" when I open up the program.
Are you trying to run the application directly from the disk image? Copy the application from the disk image to another location (e.g. Applications) and it should work fine.

On Windows, I used Notepad to modify the inventory.txt file, and now the program crashes on startup.
Avoid using Notepad, it can do funny things with character encodings and such. Use WordPad instead, or even better, Notepad++.

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