horaria

School timetabling · OR-Tools CP-SAT

Every lesson has its place.

Horaria builds your school's weekly timetable automatically, taking teacher availability, rooms, the bell schedule and your own rules into account. Fine-tune the result by hand, keep versions and share it as Excel or PDF.

Weekly timetable view: class 9-A's lessons placed across days and periods, the solve monitor, and 192/192 periods placed.
Weekly timetable: pick a class or teacher; click an empty cell or drag a block to edit by hand. The sample school and names are fictional.

What it does

Every step of building a timetable, from school setup to the export you hand out, in one app.

Automatic solving

Google OR-Tools CP-SAT places every lesson within the mandatory rules, then reduces teacher gaps and meets preferences.

24 rule types

Daily and weekly limits, gap targets, time ranges, block times, “selected subjects not on the same day” and more — mandatory or preferred.

Bell schedule

Each day can have its own number of periods, times and lunch break; solving and exports follow it.

Manual editing and partial redistribution

Drag and drop lessons, pin them, and redistribute a single class or teacher without disturbing the rest of the timetable.

Copies and versions

Create alternative timetables, save restore points, and compare and restore versions after reviewing the changes.

Excel import and export

Load lesson assignments from an Excel template; export teacher, class and room timetables as Excel or printable PDF.

Multiple schools, school teams

Each school has its own data and team; administrator, editor and viewer roles are granted per school.

English and Turkish

The interface, server messages, solve log and exports follow the language each user chooses.

Screenshots

Taken from a fictional sample school: 6 classes, 12 subjects, 192 periods; the solve finished in under a second.

Overview: every teacher's weekly timetable in one table, with days and periods as columns and classes in the cells.
Overview: the whole week at a glance by teacher, class or room; a thick line marks the lunch break.
Timetable constraints table: selected subjects not on the same day (mandatory), gap target (preference) and subject time range (mandatory).
Constraints: build a rule like a sentence; mandatory rules are never broken, preferences count towards the quality score.

How it works

Detailed steps are in the in-app User guide.

Set up the school

Classes, subjects, rooms, teachers and the bell schedule — or load them all with the Excel template.

Set the rules

Mark availability, add lesson distributions (e.g. 2+2+2) and mandatory or preferred rules.

Solve and review

Follow the solve live; the quality summary shows teacher gaps and preferences.

Deliver

Make final touches by hand, save a version, and export to Excel or PDF.

Technology

SolverGoogle OR-Tools CP-SAT · two-phase search (full placement first, then quality) · solve pool in separate processes
ServerFastAPI · SQLAlchemy · PostgreSQL / SQLite
InterfaceNext.js 16 · React 19 · TypeScript · Tailwind CSS 4 · TanStack Query
DesktopTauri 2 shell for Windows, macOS and Linux; no server needed for local use

Download

The desktop app needs no server; your data stays on your computer and is backed up automatically every day. Latest version: current.

Windows

Windows 10 and 11, 64-bit

macOS · Apple Silicon

Macs with M1 or later

macOS · Intel

Macs with Intel processors

Linux

Ubuntu, Debian, Fedora and similar, 64-bit

The app is not notarized by Apple yet. If macOS warns on first launch, open System Settings → Privacy & Security and click Open Anyway; on Windows SmartScreen, click More info → Run anyway. After installing, new versions arrive inside the app. All releases