Skip to content

Class Schedule Maker

Add up to 40 classes to build a printable Monday–Sunday timetable. Overlapping classes are marked so you can fix them before printing.

Class entries

Processed in your browser.

Classes

RemoveClass nameDayStartEndLocation

Weekly timetable

Add classes and choose Build schedule.

How to make a weekly class schedule

  1. Add one row for each class meeting.
  2. Choose the weekday, then enter a start time earlier than the end time and an optional location.
  3. Build the schedule and resolve every red conflict warning.
  4. One A4 landscape page. Each grid row is one hour; blocks follow actual start and end times. Class details below include every class. Dense schedules use smaller text.

Reading the timetable

Each row is one hour. The grid starts and ends at the nearest full hours around your classes. Blocks show actual duration; the class details below includes all class details.

Example

Biology on Monday from 09:00–10:15 and Chemistry from 10:15–11:00 do not conflict. If Chemistry starts at 10:00, both blocks are marked because their times overlap.

Limits and checks

  • Up to 40 classes. Names and locations are limited to 100 characters each. End time must be later than start time.
  • Overlaps are shown side by side and marked in the key. Touching endpoints do not conflict.
  • Preview, PDF and PNG use the same single A4 landscape page. Dense schedules use smaller text; all details remain in the class details below.
  • No course lookup, optimization, calendar sync or accounts.

Class schedule FAQ

How is time shown?

Each row is one hour. The grid starts and ends at the nearest full hours around your classes. Blocks show actual duration; the class details below includes all class details.

Will all classes fit?

One A4 landscape page. Each grid row is one hour; blocks follow actual start and end times. Class details below include every class. Dense schedules use smaller text.

Can I save an image?

Save PDF / Save PNG

Can I edit it later?

Save and load the editable JSON from the input area.