What is time blocking?
Time blocking is a scheduling method where you assign every hour of your workday to a specific task or category of work before the day begins. Instead of working from an open-ended to-do list and reacting to whatever feels most urgent, you decide in advance what you will work on and when. Each block on your calendar represents a commitment to focused work on a single thing.
The method works because it transforms intentions into commitments. Saying "I'll work on the API refactor today" is an intention. Blocking 9:00 AM to 11:30 AM for the API refactor on your calendar is a commitment. Intentions get displaced by incoming requests. Commitments get defended.
Time blocking is not a new idea. Cal Newport popularized it through his writing on deep work, but the practice has roots in manufacturing scheduling and personal effectiveness systems going back decades. What makes it relevant to software teams today is the explosion of interruptions - Slack messages, email notifications, pull request reviews, impromptu meetings - that fragment the workday into pieces too small to do meaningful work.
Why time blocking works: the cost of context switching
Every time you switch between tasks, your brain needs time to reload context - the state of the code, the design decisions, the edge cases you were considering. Research consistently shows that this reload takes 15 to 25 minutes for complex cognitive work like programming. If you switch tasks four times in a morning, you lose an hour just to context switching overhead.
Time blocking reduces context switching by design. When you are in a two-hour deep work block, you do not check Slack, respond to emails, or review pull requests. Those activities have their own blocks later in the day. The result is longer stretches of uninterrupted focus, which is where the high-value work - architecture decisions, complex bug fixes, nuanced feature implementations - actually happens.
The shallow work trap
Without time blocking, most people default to shallow work - tasks that are easy, quick, and responsive. Answering a Slack message feels productive. Reviewing a two-line pull request feels productive. Clearing the email inbox feels productive. These tasks need to happen, but they should not consume your best cognitive hours. Time blocking lets you assign shallow work to low-energy periods (mid-afternoon is common) and protect high-energy periods for deep work.
Parkinson's Law
Work expands to fill the time available. A task that could take 90 minutes will take all day if you do not constrain it. Time blocks create artificial deadlines that counteract Parkinson's Law. When you know the API refactor block ends at 11:30 AM, you work with more intensity and make decisions faster than you would with an open-ended "work on it today" approach.
Combining time blocking with kanban task management
Time blocking and kanban boards solve different problems. The kanban board answers what needs to be done and where it is in the workflow. Time blocking answers when each task gets attention. Used together, they create a complete system: the board is the source of truth for task status, and the calendar is the execution plan for daily focus.
The daily planning ritual
At the start of each day (or the evening before), look at your kanban board's To Do and In Progress columns. Choose the tasks you will work on today and assign each one to a time block on your calendar. Be realistic about how many blocks you have - after accounting for meetings, lunch, and administrative time, most people have four to six hours of blockable time per day.
- Morning (high energy): One or two deep work blocks for complex tasks - the feature implementation, the architecture design, the difficult bug fix. These are cards from To Do or In Progress that require sustained focus.
- Midday: A collaboration block for code review, pair programming, or working sessions. Pull cards from the Review column and give them your full attention.
- Afternoon (lower energy): Shallow work blocks for email triage, Slack catch-up, card grooming, and administrative tasks. This is also a good time for the daily board scan - check what moved, what is blocked, and what needs attention tomorrow.
WIP limit of one
Time blocking's core principle - one task per block - maps directly to a kanban WIP limit. Set your In Progress column's WIP limit to one during focused blocks. When a block starts, move one card from To Do to In Progress. When the block ends, either move it to Review/Done or leave it in In Progress for the next block. This enforces single-tasking at the board level, making it visible to your team that you are focused on one thing.
This is different from a team-wide WIP limit. The team's In Progress column might allow four cards (one per team member). Your personal WIP limit during a time block is one. The team sees four cards in progress; you see only yours.
Handling interruptions
Interruptions are inevitable. The question is how you handle them without losing the time block. Three strategies:
- Capture and defer. When an interruption arrives (Slack message, email, someone at your desk), capture it as a card in the Inbox column and return to your block. Process the Inbox during a shallow work block later. This takes five seconds and preserves your focus.
- Buffer blocks. Schedule 30-minute buffer blocks between deep work blocks. These absorb overflow from the previous block and handle quick interruptions that accumulated during it. If nothing needs attention, use the buffer as a break.
- Communication norms. Tell your team when you are in a deep work block. Set your Slack status. Close your email tab. Teams that respect time blocks produce better work than teams that expect instant responses to every message.
Using due dates and labels for time awareness
Kanban boards are inherently spatial (columns = workflow stages) but not inherently temporal. Time blocking adds the temporal dimension through your calendar, but the board itself can support time awareness through two mechanisms: due dates and time-based labels.
Due dates as deadlines
Set due dates on cards that have real deadlines - client commitments, release dates, dependency windows. During your daily planning ritual, scan cards with upcoming due dates first and assign time blocks to them before anything else. Flux highlights overdue cards visually on the board, so cards that have slipped past their deadline are immediately visible.
Time-based labels
Create labels that indicate estimated time: 30min, 1hr, 2hr, Half-day, Full-day. Apply them to cards during grooming. During your daily planning session, match cards to available blocks - a 2hr label card goes into a 2-hour morning block, a 30min label card fits into a buffer block. This prevents the common mistake of assigning a half-day task to a one-hour block and then feeling frustrated when it is not done.
The activity log as a time journal
One of time blocking's weaknesses is that it requires discipline to track what you actually did versus what you planned to do. If you planned a 2-hour coding block but spent 45 minutes of it on an unexpected bug, the calendar still shows the original plan. The reality diverged, and you have no record of it.
Flux's activity log fills this gap automatically. Every card move, status change, comment, and completion is timestamped. At the end of the day (or during your weekly review), scan the activity log to see what actually happened. When did you move cards to In Progress? How long did they stay there before moving to Done? When did interruptions arrive (new cards created mid-block)?
Over time, the activity log becomes a time journal that reveals your actual work patterns. You might discover that your most productive deep work blocks happen between 9 AM and 11 AM, that you consistently underestimate tasks labeled 1hr, or that Tuesdays are fragmented by recurring meetings. These insights let you refine your time blocking strategy based on data rather than assumptions.
Async standups: stop fragmenting time blocks with meetings
The daily standup meeting is the most common destroyer of morning deep work blocks. A 15-minute standup at 9:30 AM means no one can start a deep work block before 9:45 AM, which effectively kills the entire first hour of the day because a 45-minute block before the standup is too short for meaningful deep work.
The async standup pattern eliminates this problem. Instead of a synchronous meeting, each team member posts a brief status update by a daily deadline (say, 10:00 AM). The update is simple: what I did yesterday, what I am doing today, and whether anything is blocked. The kanban board itself is the primary source for this information - card moves and comments from the activity log tell the story - so the written update is just a summary with any additional context.
For remote teams across time zones, async standups are not just an optimization - they are a necessity. A synchronous standup that works for London does not work for San Francisco. Async standups let each team member post their update during their morning, and anyone can read all updates when it is convenient.
The board replaces the meeting
When the board is current (which real-time sync ensures), a manager or lead can scan it in 60 seconds and know what everyone is working on. Cards in In Progress show active work. Cards in Review show work waiting for feedback. Cards with overdue labels show potential problems. The board is the standup - it just does not require everyone to be in the same room at the same time.
What time blocking does not solve
Time blocking is a powerful practice, but it is not a complete productivity system. It does not help you decide which tasks to work on - that is where GTD's clarify step or prioritization frameworks come in. It does not handle recurring processes - that is what templates and automation address. And it requires a calendar, which Flux does not provide.
Flux is a kanban tool, not a calendar tool. The kanban board tracks what needs to be done and where it is in the workflow. Time blocking happens in your calendar (Google Calendar, Outlook, whatever your team uses). The two systems are complementary: the board feeds the calendar by surfacing what needs attention, and the calendar structures the board by determining when each card gets worked on.
The practical workflow is: plan your time blocks from the board, execute during the blocks, and let the activity log capture what actually happened. The board is always the source of truth for task status. The calendar is the execution layer. Neither replaces the other.
For the full picture of how time blocking fits alongside other methods, see the task management pillar guide.