Timetable Generator (desktop version, web version) is very popular among U of T students, and over the years I've had many requests for new features, extensions, and support for other faculties/campuses or even other universities, as well as requests for a web version of Timetable Generator. While I plan to work on some of these things, I cannot possibly work on all of them, so I decided to make an API that exposes the functionality of Timetable Generator, and allows other people to build software based on this functionality.
In its current state, the API functionality is specific to the University of Toronto (more specifically, to the supported faculties within the University of Toronto, which are the Faculty of Arts and Science and the Faculty of Applied Science and engineering at the St. George campus), so the API is mainly useful for building other front-ends for the existing functionality.
Over time, however, I plan to expand the API and make it more generic, so it can support any university, not just the University of Toronto, and people can use it to build timetable generation/optimization software at any university.
As of November 2012, the Timetable Generator API is open source.
I have also released a related library called libtg-ui which contains utilities for writing UIs on top of the Timetable Generator API. The Timetable Generator API together with libtg-ui currently power the desktop and web versions of Timetable Generator.
Skip ahead to Features, Documentation, FAQ, Version History, or Old Versions.
The Timetable Generator API takes the form of a C++ software library.
Get it here:
(For previous releases, I provided pre-built binary distributions as well, but I found that using them was quite error-prone. The chances of an
application using the library successfully linking against the pre-built binary, and the resulting executable running correctly, were quite small,
as a number of things such as compiler and library versions had to match. As a result, I discontinued distributing binary releases. Please build the library from source as instructed in the README.txt file in the source distribution.)
Don't forget to also check out libtg-ui, a library of utilities for writing UIs on top of the Timetable Generator API.
Timetable Generator is built on top the Timetable Generator API, so the API has all the features that Timetable Generator has (other than UI-specific functionality, of course).
Over time, it is possible that the API will acquire features that the desktop version of Timetable Generator does not have; if that happens, I will document those features here.
Detailed, fully cross-referenced documentation for the Timetable Generator API can be found here.