design note

The Expanding Day — Why Kairos Feels Different

The first time someone used Kairos on a real iPhone, they sent back a note that changed how I think about the app.

"When I'm completing a task the next task is pulled towards the current time. The expansion of the day is an interesting and real concept."

That is not a feature I planned. It is an emergent behaviour of how the spiral works — and it might be the most important thing about the app.

Most planners are inventories

Open any todo app. You see a list of things you decided to do, usually in the order you added them. When you check something off, it gets crossed out or disappears. The rest of the list stays exactly where it was.

The day does not move. You do not get any signal about whether what is left still fits. A planner that cannot reflow is a ledger, not a tool for decisions.

Kairos was built around a different question: not what do I have to do, but what can I actually fit into the energy and daylight I have.

The answer changes during the day. The app should reflect that.

The spiral sees time as space

The spiral arranges a day's hours radially: morning at the centre, evening at the rim. Every task is a wedge drawn along its arc — positioned by when it starts, sized by how long it takes.

When the spiral is empty in the centre and tasks gather toward the outer rings, you feel the day filling up. When a task completes and the remaining tasks reflow inward, you feel the day open again.

That physical sense of the day expanding is what the user called "interesting and real." It is not a visual gimmick. It is the app telling you, in spatial terms, what your time is doing.

The expanding day is the core loop

Here is how it works in practice:

  1. You add a few tasks for today. Some have fixed times (meeting at 14:00), most are auto-placed into open slots.
  2. The spiral shows the whole shape — gaps, clusters, overflow if you overcommitted.
  3. You complete a task. The scheduler removes its time from the day and reflows the remaining auto-placed tasks into the freed space.
  4. The next task pulls toward the current time. The spiral compresses. The day feels wider than it did a moment ago.

Each completion is not just a checkmark. It is a reorganisation of the remaining day. The app does not wait for you to figure out what to do next — it surfaces what now fits.

Why this matters more than a list

A linear list does not know about time. It cannot tell you whether task 4 and task 5 can both happen before dinner. It cannot reflow when plans change, because it has no model of the day's shape.

Kairos models the day as a continuous space with bounds (sunrise to sunset, or your configured day start/end). Every task occupies real time in that space. Completion is not deletion — it is a release of capacity back into the day.

This changes the feeling of getting things done. A checkmark on a list feels like counting down. A completed task on the spiral feels like making room. One is about reducing a burden. The other is about opening possibility.

The rule that made it work

The design decision that unlocked this behaviour was deceptively simple: completed auto-placed tasks release their time slot back into the pool. Fixed-time tasks keep their slot even when done (they happened at a specific time and nothing else can use it), but auto-placed tasks treat completion as freeing that interval for whatever comes next.

That asymmetry is not a bug. It is the core mechanic:

  • Fixed tasks are commitments. They occupied a real moment. Marking them done does not change that.
  • Auto tasks are intentions. They fill open time. When an intention is fulfilled, the time becomes available again.

The scheduler then reflows remaining auto tasks into the newly open intervals, starting from the current moment. The result is a day that breathes — contracting as the morning fills, expanding as tasks clear.

What it taught me about planning tools

Most planning tools assume the day is static. You build a schedule and execute it. If something changes, you rebuild manually.

A day is not static. Interruptions happen. Some tasks take longer than expected. Some get done faster. Energy shifts. The tool should negotiate with the day, not dictate to it.

The expanding day is Kairos negotiating on your behalf. It watches what you complete, recalculates what fits, and surfaces the next best thing. You stay in the loop — you can override, reschedule, or ignore the suggestion — but the app never stops asking the useful question: what can you still do with the time you have left?

Kairos: field note · Source: github.com/inde3d100/kairos · Related: QuestOps · agent-house