---
name: time_blocking
description: Build a time-blocked day or week that survives reality: energy-matched blocks, deliberate buffers, and a weekly reset ritual. Use when someone asks for help scheduling their time, planning a focused day, fixing an overloaded calendar, or setting up a weekly review.
---

# Time Blocking

## Purpose

Turn a to-do list into a day where every working hour has a job, with the demanding
work matched to the person's actual energy peaks, slack built in for the things
that always go wrong, and a weekly ritual that keeps the whole system from rotting.
The output is a concrete plan (a Markdown schedule or a calendar draft), not advice.

## Workflow

1. **Energy audit.** If you don't know the person's real peaks, don't guess. Ask
   them to run the 7-day log in `references/energy-audit.md`, or use their
   best-known windows provisionally and mark them as unmeasured. Peaks go in
   `peak_windows`, the afternoon dip in `trough_windows`.
2. **Collect and size the work.** Gather every task with a duration. Apply the
   outside view: use logged past durations where they exist, otherwise multiply
   the gut estimate by 1.5. (See `references/buffer-design.md`.)
3. **Label by cognitive demand.** Each task is `deep` (writing, design, hard
   debugging, strategy), `medium` (reviews, routine coding, planning), or `light`
   (email, admin, errands). Deep tasks never go in troughs.
4. **Anchor the fixed points.** Meetings and hard commitments go on the calendar
   first. Defend peak windows before they get booked.
5. **Place the blocks.** Deep work inside peaks, in blocks of 90 minutes to 2 hours.
   Batch shallow work into one or two admin batches in troughs. Keep blocks at
   least 30 minutes; anything smaller gets batched.
6. **Add the buffers.** Post-meeting buffers (15-30 min), transitions between deep
   and shallow (10-15 min), one overflow block mid-afternoon. Plan at most 80% of
   the day; leave the rest empty on purpose.
7. **Run the weekly reset** (`references/weekly-reset.md`) at a fixed weekly slot:
   look back first (what ran long, which estimates missed), then forward. A
   project without a next action is a wish, not a commitment.

For a mechanical first draft, use the planner:

```
python3 ~/workspace/skills/time-blocking/bin/block_planner.py day.json
```

It anchors meetings, adds post-meeting buffers, puts deep work in peak windows,
and lists what doesn't fit instead of squeezing it in.

## Output Contract

A finished plan includes:

- A dated schedule: start/end times, one label per block, block kind (deep, medium,
  light, fixed, buffer). No gaps without a label; unplanned time is labeled
  "open" on purpose, not accidentally.
- Deep blocks inside peak windows, light work inside troughs.
- Buffers visible as blocks, totaling roughly 20% of the day.
- Anything that didn't fit, listed openly with a reschedule decision, never
  silently compressed.
- A next action for every active project, and the date/time of the next weekly reset.

## Operating Rules

- Replan, don't quit. When the day shifts, redraw the remainder of the day; an
  abandoned schedule is worse than no schedule because it teaches you the plan is
  optional. Cal Newport's whole method (Deep Work, 2016) rests on this discipline.
- The plan serves the work, not the reverse. If a deep block is flowing at the
  bell, finish the thought, then replan.
- Time blocking ("I'll write from 9-11, whatever it takes") is different from time
  boxing ("I stop at 11 no matter what"). Use blocking for creative work, boxing
  for bounded chores. Don't mix them up.
- Never plan over 100%. A full calendar with no buffer is a promise you already
  know you'll break.
- Every factual claim you make about productivity research must be verifiable.
  The evidence this skill stands on (Newport 2016; Leroy 2009 on attention
  residue; Kahneman & Tversky 1979 on the planning fallacy; Di Stefano et al.
  2014 on reflection; the Wharton chronotype-synchrony work) is cited in the
  references. Don't invent studies, numbers, or quotes beyond them.
