New for V3.0

The site has been completely rewritten. If you have used it before you should find it far more logical and responsive now. However if you want to put your timetable online you need to make a donation via PayPal.


Hopefully most of the site is self-explanatory but here you can find more detail about certain areas. Version 3 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' this 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 make a new blank school.

Data entry tabs

For the Pupils, Term dates and Lesson 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

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.

Term dates tab

Enter as words eg jan 20 2017 and the date will be interpreted and shown as (d)d mmm(m). You should enter the year so the program knows if lessons are in the past or future (see 'Set completed lessons' below) although the year won't be shown in the timetable.

Lesson times tab

The table is sorted alphabetically, hence the need to use the 24-hour clock. This is so that you can easily insert a new time in the right place. If you want to name a row differently insert a pipe (|) followed by how you want the time to appear. Eg '13.00 |Lunch' or '13.50|1.50'

Rules tab

Remember to 'Apply rules' after setting a pupil's rules in the grid before selecting another pupil, or the changes will be lost. You can make multiple selections from the list of pupils, by holding Shift as you click for adjacent or Control for separate ones. When you do this the table won't try and show rules already set for all the selected pupils, but will show a blank grid. But then any rules you set will apply to all the selected pupils.

Set completed lessons as rules

This updates the rules to fix lessons in the past. Suppose you have made a timetable, but after two weeks you are told a pupil cannot come at a certain time from now on. Then you would load the relevant school, click this button, add the new rule then update the timetable. The point is that the program needs to know about lessons in the past to preserve the rotation.

Timetable tab

Shows your completed timetable. It shouldn't ever take more than 15 seconds to produce, and is usually very much faster. You can revise it with different settings, alter the appearance. You may have to click 'Update' to see the latest changes.


How many weeks must have passed before a pupil can have a lesson at the same time.

Fill mode

Normal: One lesson later each week.
Skip: Two lessons later each week (should completely avoid the previous week's lesson).
Random: As it says.
Random skip: Random but tries to avoid adjacent lessons on consecutive weeks.
Notice that the first two will produce the same timetable for any given set of data and rules but the last two will produce a different one each time. If there are many rules some modes may give better results than others so do experiment.

Save current 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.


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.