Bell Schedule Generator
Build a school bell schedule from period lengths, passing time, homeroom and lunch waves, then generate delayed-start, early-release and assembly variants.
Period names and lengths
Alternate schedules
Alternate days keep homeroom, passing time and lunch at full length, then share whatever is left between the periods in proportion to their regular lengths — so a 60-minute period always stays longer than a 45-minute one.
Lunch waves
- Wave A 12:12 pm – 12:37 pm
- Wave B 12:37 pm – 1:02 pm
All schedules side by side
Regular day
| Homeroom | 8:15 am | 8:27 am | 12 |
| Passing | 8:27 am | 8:32 am | 5 |
| Period 1 | 8:32 am | 9:22 am | 50 |
| Passing | 9:22 am | 9:27 am | 5 |
| Period 2 | 9:27 am | 10:17 am | 50 |
| Passing | 10:17 am | 10:22 am | 5 |
| Period 3 | 10:22 am | 11:12 am | 50 |
| Passing | 11:12 am | 11:17 am | 5 |
| Period 4 | 11:17 am | 12:07 pm | 50 |
| Passing | 12:07 pm | 12:12 pm | 5 |
| Lunch (2 waves) | 12:12 pm | 1:02 pm | 50 |
| Passing | 1:02 pm | 1:07 pm | 5 |
| Period 5 | 1:07 pm | 1:57 pm | 50 |
| Passing | 1:57 pm | 2:02 pm | 5 |
| Period 6 | 2:02 pm | 2:52 pm | 50 |
Instructional: 300 min — 30 min short of 330
2 h delayed start
| Homeroom | 10:15 am | 10:27 am | 12 |
| Passing | 10:27 am | 10:32 am | 5 |
| Period 1 | 10:32 am | 11:02 am | 30 |
| Passing | 11:02 am | 11:07 am | 5 |
| Period 2 | 11:07 am | 11:37 am | 30 |
| Passing | 11:37 am | 11:42 am | 5 |
| Period 3 | 11:42 am | 12:12 pm | 30 |
| Passing | 12:12 pm | 12:17 pm | 5 |
| Period 4 | 12:17 pm | 12:47 pm | 30 |
| Passing | 12:47 pm | 12:52 pm | 5 |
| Lunch (2 waves) | 12:52 pm | 1:42 pm | 50 |
| Passing | 1:42 pm | 1:47 pm | 5 |
| Period 5 | 1:47 pm | 2:17 pm | 30 |
| Passing | 2:17 pm | 2:22 pm | 5 |
| Period 6 | 2:22 pm | 2:52 pm | 30 |
Instructional: 180 min — 150 min short of 330
Early release
| Homeroom | 8:15 am | 8:27 am | 12 |
| Passing | 8:27 am | 8:32 am | 5 |
| Period 1 | 8:32 am | 8:59 am | 27 |
| Passing | 8:59 am | 9:04 am | 5 |
| Period 2 | 9:04 am | 9:31 am | 27 |
| Passing | 9:31 am | 9:36 am | 5 |
| Period 3 | 9:36 am | 10:02 am | 26 |
| Passing | 10:02 am | 10:07 am | 5 |
| Period 4 | 10:07 am | 10:33 am | 26 |
| Passing | 10:33 am | 10:38 am | 5 |
| Lunch (2 waves) | 10:38 am | 11:28 am | 50 |
| Passing | 11:28 am | 11:33 am | 5 |
| Period 5 | 11:33 am | 11:59 am | 26 |
| Passing | 11:59 am | 12:04 pm | 5 |
| Period 6 | 12:04 pm | 12:30 pm | 26 |
Instructional: 158 min — 172 min short of 330
Minimum instructional-minute rules differ by state, district and country, so the target is a field you set rather than a number baked into the tool. Everything is calculated in your browser — no schedule leaves the device.
What is the Bell Schedule Generator?
A bell schedule generator calculates the start and end time of every period in a school day from the first bell, period lengths, passing time, homeroom and lunch. This one also builds alternate days — delayed start, early release and assembly — by sharing the shortened day between the periods in proportion to their normal lengths.
- Per-period names and lengths, so a lab or block period can differ from the rest
- Homeroom, passing time and multi-wave lunch handled as separate blocks
- Delayed-start, early-release and assembly variants generated automatically
- Shortened days share the remaining time proportionally, never evenly by accident
- Instructional-minute total for every variant against an editable daily minimum
- All variants shown side by side, with a CSV export of every bell
How to use the Bell Schedule Generator
- 1
Set the first bell, the number of periods, the passing time and the homeroom length.
- 2
Give each period a name and a length — they do not have to be equal.
- 3
Say which period lunch follows, how many waves it has and how long each wave is.
- 4
Tick the alternate schedules you publish and set the delay, the early-release bell and the assembly length.
- 5
Read the side-by-side tables, check the instructional minutes against your minimum, and export the CSV.
About the Bell Schedule Generator
A bell schedule is simple arithmetic that becomes error-prone the moment you have a homeroom, two lunch waves and a snow-delay version to publish alongside it. This tool does the arithmetic and shows every variant next to the regular day so you can check them together.
Give it the first bell, the period lengths, the passing time and where lunch sits, and it prints the whole day with a start and end time for every block. Turn on the alternate schedules and it recalculates each one: fixed blocks stay fixed, and whatever time is left is shared between the periods in proportion to their regular lengths — so a 60-minute period is always longer than a 45-minute one, even on a two-hour delay.
Instructional minutes are totalled for each variant and compared against a daily minimum you set yourself, because that requirement differs by state, district and country. Everything is calculated in your browser and nothing is uploaded.
Frequently asked questions
How do I make a two-hour delay bell schedule?
Tick “delayed start” and set the delay in minutes. The tool keeps the same finishing bell, keeps homeroom, passing time and lunch at full length, and shares what is left between the periods in proportion to their normal lengths, so the shape of the day is preserved.
What counts as instructional minutes?
Class period time always counts; passing time and lunch normally do not. Homeroom is the grey area, so there is a checkbox for it. The daily minimum you compare against is a field, because the requirement varies by state, district and country.
How do lunch waves work here?
The lunch block sits after the period you choose and lasts the number of waves multiplied by the length of each wave. The individual wave times are listed separately, so you can post which wave each year group attends.
Why does the tool say the periods do not fit?
Because the fixed blocks — homeroom, passing time, lunch and any assembly — use more of the shortened day than is available. Shorten a fixed block, cut a period, or move the final bell later, and the variant recalculates immediately.
Can I print or share the schedule?
Copy the plain-text version for a notice, or download the CSV to open in a spreadsheet and format for the school website. Everything is generated locally, so nothing about your school's timetable is uploaded.
Related tools
Class Timetable Generator
Build a weekly class timetable with real period times, breaks and lunch, colour-coded subjects and a 5, 6 or 7 day week, exported as PDF, PNG or CSV.
Parent-Teacher Conference Scheduler
Turn a class list into timed conference slots across one or more evenings, keep siblings together, flag anyone left over and export CSV or a calendar file.
Syllabus Generator
Build a course syllabus with weighted assessment, an auto-generated weekly schedule and policy sections, then export it as a PDF or Markdown file.
Attendance Sheet Generator
Print a class attendance register for any month or date range, skip weekends and holidays, and mark present, absent or late with live totals and a CSV export.
Seating Chart Generator
Shuffle your class into rows, pairs, groups of four or a horseshoe, keeping named students apart and others at the front, then print the plan.