Built when I was a [redacted] at [redacted]
For when planning the task takes longer than the task itself.
Built using Google OR‑Tools CP-SAT.
Simple: Tackles scheduling constraints Excel, Google Calendar, or your brain won’t touch, with zero effort on your part.
Flexible: Any task type, any period, hard or soft deadlines, weighted tasks.
Ready-to-Use: JSON config. Excel output. Zero code fiddling.
- Hard vs Soft deadlines per event
- Weighted tasks influencing penalties
- Configurable tie-break preference ("early" vs "late")
- Soft-deadline penalties to gently enforce timelines
- Excel output with Deadline Status column: "On time" or "Late (soft)"
- Handles reserved, public holiday, and unavailable periods
- Constrains consecutive and short-spacing repeats
- Manufacturing & production lines
- Employee shift planning
- Classrooms & exams
- Resource allocation & project timelines
- [redacted] scheduling that I initially wrote this for
- Load JSON: Tasks, periods, constraints.
- Pack Schedule: CP‑SAT handles hard rules.
- Refine: Simulated annealing + tabu search smooth repetition.
- Soft-Deadline Handling: Assigns weighted penalties for late soft deadlines.
- Tie-Break Preference: Slight bias to schedule early or late periods.
- Export: Clean Excel schedule, ready to act, with "Deadline Status" column.
python scheduling.pyedit data.json for your specific context