Built on SolverForge · personal planning

Your tasks, your meetings, your hours. One week you approve.

Planner123 is a keyboard-driven terminal calendar with a SolverForge planner built in. It reads your real calendar, places unscheduled tasks inside the hours you declared, and writes nothing until you approve the proposal.

Planner123 · 1:47 A week planned to a soundtrack: the inbox fills, the planner proposes a slot for every task, and one key writes the plan into the calendar.
14 Constraints
10 / 2 / 2 Hard / medium / soft
1 Planning variable
5 s Solve budget
4 Calendar views
JSON CLI for agents

A calendar remembers what is already scheduled. The Planner Inbox holds the other kind of work: tasks with a duration, a priority, a cognitive load, and a deadline, but no time yet. Press o and the solver proposes a start for every task it can place; press A and only then do the tasks become events.

The model is one scalar planning variable per task, its start slot, and it may stay unassigned when the week is full. Existing events are busy time, availability always wins, deadlines outrank deep-work preferences, and the proposal changes nothing until it is applied. Events live in a local SQLite file, and every action is also a JSON command, so an agent can drive the same workflow.

Busy time No task overlaps an existing event or another task.
Availability Work lands only inside the hours you declared, in your timezone.
Time bounds Never in the past, never before the earliest start, never after a hard deadline.
Dependencies Predecessors are placed and finish first, including tasks already applied.
Priority and lateness Medium level: unplaced tasks cost by priority, soft-deadline lateness by the minute.
Deep work Soft level: high-load tasks prefer focus windows and get recovery breaks.

The real app

Month The month overview: dots mark busy days, the selected day lists its events.
Week The week grid the planner treats as busy time.
Planner Inbox Tasks with a duration, priority, and cognitive load, waiting for a time.
Proposal The proposal preview: dashed blocks are proposed, not saved, until A applies them.