Timetable Maker

A class grid is the one piece of paper that answers "where am I supposed to be" without unlocking anything, which is why they still go on the inside of locker doors. Type the entries one per line and the placement, the coloring and the blank version for handwriting all come out of the same grid.

Period mode only. 1 to 14.
Clock mode only
Day first, then the period number or the start time, then whatever goes in the cell
Timetable Maker — Print a Class, Study or Shift Grid on Letter PaperBuildFigure

Writing the entries

One entry per line, in the order day, slot, label. In period mode that reads Mon 1 Algebra II, and the ordinal suffix is optional so Mon 1st Algebra II works too. In clock mode it reads Mon 9:00 AM Algebra II, and a bare Mon 9:00 is read as 9 in the morning on a 24-hour clock. Only the first three letters of the day are used, so Mon, Mond and Monday all land in the same column.

Two entries in the same cell are joined with a slash rather than one overwriting the other. That is how a lab that only meets half the term, or a room shared between two sections, ends up visible instead of silently dropped. Anything the parser cannot split into day, slot and label is listed underneath the grid with the format it expected, so a typo shows itself rather than quietly leaving a hole.

Periods against clock times

Numbered periods are the right choice when the building runs on bells and the actual minutes shift between an assembly day and a normal one. The grid then says "third period" and stays correct on both. Clock rows are the right choice for anything that is genuinely anchored to time: tutoring, a study plan, a part-time shift, a practice schedule.

In clock mode an entry lands in the row that contains its start time, not the row it matches exactly. With half-hour rows, a 9:10 start sits in the 9:00 row. That is deliberate — an entry starting ten minutes past the hour is still an entry in that hour, and the alternative is silently discarding it. If several entries land in the same cell because the rows are too coarse, drop to a smaller row size.

Colors, and what happens on a monochrome printer

Every distinct label gets a fill color, assigned in the order the labels first appear, cycling through twelve hues. Identical text gets identical color, which is the whole point: the eye finds all five Algebra blocks without reading a word. Change the wording of one of them and it becomes a different subject with a different color.

Browsers do not print background colors by default. If the printed sheet comes out white where the screen is colored, the setting is called "background graphics" in Chrome and "print backgrounds" in Firefox, and it lives behind the More Settings toggle. On a monochrome printer the fills come out as grey shades that are still distinguishable but much closer together, so on black and white the text is doing the work.

The blank grid

Turning on the blank option ignores the entry box entirely and prints the empty framework, with slightly taller rows for handwriting. The days, period count and clock range still apply, so you get a grid sized to your actual week rather than a generic one. This is the version worth printing several copies of at the start of a term, before anyone knows what the schedule is.

Nothing typed into this page leaves your browser, and nothing is saved. Close the tab and the entries are gone, which is a reason to print rather than to plan on coming back to it.

Questions people ask

Can I mark lunch or a break across every day?

Yes, by entering it once per day. Five lines reading "Mon 4 Lunch" through "Fri 4 Lunch" fill the whole row with the same label, and because identical text gets identical color, the row comes out as a single continuous band across the grid. There is no dedicated break feature because a break in one column and not another is a real thing that a dedicated feature would make harder to express.

Why did my entry not appear?

Three things account for almost all of it. The day abbreviation does not match a column you asked for — entering a Saturday class while the grid is set to weekdays gives it nowhere to go. The period number is higher than the period count. Or, in clock mode, the time falls outside the start-to-end range. Every rejected line is printed under the grid with the expected format next to it, so compare your line against that.

Does it handle classes that run longer than one period?

Not as merged cells. A double period shows as the same label in two consecutive rows, which you get by entering it twice. Merged cells across a variable grid create more problems than they solve — they break the moment you change the row size — and two identical colored cells stacked on top of each other read as one block anyway.

Can I save the grid and come back to it?

No. Everything runs in the browser and nothing is stored, so a refresh clears it. Keep the entry text in a note or a document and paste it back in when you need to reprint; the format is plain enough to edit anywhere. Printing is the intended way to keep a copy.

Related