Fifteen ways to stop scheduling by spreadsheet
A batteries-included demo suite for Timefold Solver, showing how constraint programming handles everything from school timetables to flight crews.

What it does This repo is a collection of runnable quickstarts for Timefold Solver, a Java/Kotlin constraint optimization engine. Each demo tackles a classic operations-research problem—vehicle routing, employee rostering, bed allocation, tournament scheduling—and wraps it in a minimal Quarkus web UI so you can see the solver chew on real constraints.
The interesting bit The value isn’t any single demo; it’s the pattern library. The README explicitly maps each use case to the solver concepts it illustrates—shadow variables, bendable scores, chaining through time, pinning. Want to learn how “variable listeners” work? There’s a maintenance-scheduling quickstart for that. It’s a Rosetta Stone for planning problems.
Key highlights
- 15 distinct use cases, from CVRPTW to conference scheduling to food packaging lines
- Mostly Quarkus + Maven; one Spring Boot integration, one Kotlin variant, one plain hello-world
- Each quickstart exposes its constraint rules and includes a rudimentary visual UI (the solver itself is headless)
- Forked from OptaPlanner in April 2023; everything is Apache-2.0
- Points to paid “off-the-shelf” models (field service routing, employee shift scheduling) for production-grade constraints
Caveats
- The UIs are explicitly described as “rudimentary”—these are teaching tools, not finished products
- No performance benchmarks or complexity guarantees are stated
- Gradle support is spotty; most quickstarts are Maven-only
Verdict Grab this if you’re evaluating Timefold Solver or need to explain constraint programming to a team with concrete examples. Skip it if you already know OptaPlanner/Timefold and want deep performance tuning or a production UI framework.