The following picture depicts (a slightly simplified version of) the MyTimetable data model. It can be used during development of custom data providers. These data providers can provide data to MyTimetable through a web service or a database. In case of a database, we currently prefer a PostgreSQL database, but Microsoft SQL Server or MySQL are possible as well.
The base entity of MyTimetable is an Event, which represent one activity in the timetable. Each activity optionally has a type, department, zero or more locations, zero or more staff members, zero or more students and zero or more student sets attached to it. The type, department, locations, staff members, student and student sets can also be kept in a denormalised format in the same table as the events, to further simplify the data model.