School and hagwon scheduling

Build a week of classes without fighting the spreadsheet.

DayHaru is automatic scheduling software for schools and hagwons. You enter the semester plan, who can teach what, and which groups exist. It builds a week that keeps teachers from being double-booked, leaves planning time, and respects shared rooms like the gym.

Who it’s for

  • School schedulers who own the master schedule and are tired of moving one teacher only to break three other classes.
  • Hagwon directors juggling many teachers, grade groups, and rooms in a tight weekly grid.
  • Anyone still scheduling in Sheets who wants auto scheduling that still lets you see teacher, homeroom, and location views.

The problem it solves

A school week looks simple until the constraints stack up: this teacher cannot work Wednesday, PE needs the gym, every teacher needs a planning period, and two homerooms cannot share a specialist at the same time. Doing that by hand is slow. DayHaru searches for a week that fits.

  • No two classes for the same teacher, homeroom, or shared room in one period.
  • Planning periods stay in the day. Part-time days and max hours are respected when a fit exists.
  • When someone is out, the sub schedule uses planning periods instead of a blank grid.

How to use it

  1. Semester plan. Say what each grade needs each week — 5 ELA, 3 PE, and so on — and which rooms specials require.
  2. Teachers. Add who can teach which subjects and grades, days they work, and hour caps.
  3. Homerooms. List the class groups. Then generate. Building a week can take a few minutes.
  4. Share and cover. Open teacher, homeroom, and location schedules. Send teachers a view-only link. Build a sub plan when someone is absent.

What you get

  • A generated week you can export as PDF or CSV
  • Separate grids for teachers, homerooms, and locations
  • A teacher share link with last names hidden
  • Sub coverage from planning periods
DayHaru

Try it with your own school

Sign up, enter this semester’s plan, and generate. If the first pass is not quite right, change the inputs and generate again.