New for Version 4.3

Rules can be set to apply always, not just current dates. Useful when adding new dates for the next term, for example.

Certain preferences are now remembered when a school is saved.

Warning given if changing start time invalidates a rule.

Full version 4 history>


Hopefully most of the site is self-explanatory but here you can find more detail about certain areas. It is written mostly in Javascript, so that will need to be enabled in your browser (it usually is). Also, you should know that the site uses cookies.


If you reload the Home page (which includes the six tabs) it will reset and any unsaved data will be lost. Links to other pages (eg Contact) therefore open in a new window, so the previous one is still available. If you 'lose' the Home page, it's here.

Home tab

Here you will see a list of schools saved in the Timetable tab, as well as a 'demo school', which you can load or delete. If you are new to the site it is recommended that you load the demo school and look at the different tabs to see what data a school comprises. You can also load a school from your hard drive if you have saved any to disk from the Timetable tab. Or you can make a new blank school: click 'Make new school' and enter some pupils and dates.

Data entry tabs

For the Pupils, Term dates and Teaching times tabs you add new entries by filling in the blank text field and clicking Add(/Save). To edit an existing one click Edit, edit the field and click (Add/)Save. Starred entries must be filled in.

Pupils tab

Sorted alphabetically by first name. In the timetable itself you can choose between showing the full name, just the first name, or initials, with or without the form. (The 'form' entry can also be used for any other info you wish to be included in the timetable.) You can assign a random pastel or stronger colour to each new pupil using the menu, or choose a specific one by clicking the colour rectangle. If the menu is set to 'off' and you don't specify a colour, the default colour (settable on the Timetable page) will be applied. You can override the default Rotation setting (see right) for a pupil - useful for 6th formers, for example, who can come at the same time each week during their free periods. See here for more info about importing pupils' data.

Term dates tab

Inactive weeks will be greyed out in the timetable - useful for half term. Use the bottom fields to generate multiple weeks automatically.

Teaching times tab

Enter your start time, and any set breaks, eg coffee and lunch. These can be defined as a set length within a larger time span.

Rules tab

Here you can define any conditions for pupils who must, or can't make specific times/dates. You can make multiple selections from the lists of pupils or dates, by holding Shift as you click for adjacent or Control for separate ones. You can give a rule a name for your own reference.

Timetable tab

Shows your completed timetable. Click Update to reflect any changes made in the other tabs, or simply to generate a new random table. It can be fine tuned by dragging lessons around the timetable grid. Double-click one to edit the text under the time. You can make a new one by clicking and dragging (or double-clicking) on the grid outside any lesson. This lesson is not linked to any of your pupils, and will take the default colour. They default to being 'fixed', so they don't disappear after updating.


For a detailed look at how the Rotation settings and the Rules affect the timetable look here.

Mode: with 'Random' the software generates a number of random tables (set under 'Number of passes') and selects the best in terms of the least number of gaps. It is still worth updating several times to find the best table. 'Skip 1/2' tries to place pupils one or two lessons later each week, although other constraints may upset this. These modes are not available if there are any breaks set.
Observe start time: lessons will be placed starting at the time set in 'Teaching times' if possible, otherwise they will be nudged up to the first fixed (or 'rule') lesson, if there is one, to minimise gaps.


Select lessons by clicking on them; they become transparent. Deselect them by clicking somewhere on the grid but not on a lesson.
Select all (a)
: selects all the lessons in the timetable.
Select past: selects all lessons in the past.
Fix selected (f): fixed lessons will stay put during further updates, but they can still be dragged to different positions.


Vertical scale: adjust the height of the timetable. The time spans in brackets show the length of each subdivision.
Default colour: this colour will be assigned to lessons which haven't been given their own colour under 'Pupils'.


Save school: saves the school, including data, rules and the current timetable with the name shown. It is stored in your browser so can only be reloaded in the same browser on the same computer.

Save to disk: as above, but it is saved to your hard drive (by default, your Downloads folder). This is useful as a backup, or if you want to open a school in a different browser or computer.

Export: opens a new window where you can preview text before either copying it to the clipboard, or saving it as a CSV file. 'Tabular' displays headings and is good for pasting into a spreadsheet (which is actually much easier than saving as a csv file then importing it). Otherwise for pasting into an email, say, don't select this, as it is likely the columns won't align neatly.

Publish: if you have made a donation you can put the current timetable online. Its URL will be This can be accessed by anyone from anywhere, and there is no security in place. In the same folder there will be a file 'list.php' where you can manage your online tables.

Print: opens a new window from where you can print the timetable. To print the colours, you may have to select an option either in the browser print window, or in the browser's settings. You may also want to adjust the browser print window orientation and/or scale to make everything fit.