How to manage Calendar+Buffer

This post is mostly thinking out loud about mental models for task management. I post here since this forum is safe place to nerd out, and I would love any insight or feedback offered by others.

I have 4 places that represent “Work I need to do”:

  • My TODO’s in Roam Reseach, split in a dashboard between personal and work things
  • Beeminder
  • My calendar
  • My head, taking up mental space :sweat_smile:

My TODO’s tend to pile up, as do my beemergencies, until I have to take a big chunk of time and deal with them all. I’d like to have more continuous, predictable throughput.

I’m inspired by this post by the CEO of Levels on how he has replaced his TODO list with a calendar. Switching from a TODO list with infinite capacity (visually, at least) to a calendar seems seems like switching to model that better reflects reality. It seems like the same kind of change my family made when switching from living off credits cards to Qube Money, where we are forced to think about how we allocate every dollar in our budget before we swipe at checkout (I should write about this eslewhere, as I think other bees would be into it!), and are presented with the visual tools to do so on the fly.

At the risk of becoming this meme, I’ll digress into analogizing my task management with computer memory management.
A TODO list with unspecified capacity can be likened to a Turing machine which has unlimited memory. Sure, with infinite time and infinite memory, you can do a lot, but that doesn’t help me plan my day very effectively.

The calendar method can be likened to a limited manual memory management model. I literally alloc some specific time for every individual task, being careful not to over allocate (and the dealloc happens automatically as the clock goes by, so that’s nice - a nice affordance granted by the compiler I guess). I have a fixed size heap - 24 hours in a day, multiplied by the furthest out I would ever schedule something in advance. For reasons of locality and latency, 99% of the work seems to get scheduled within the first 2 weeks of space though, and I struggle greatly to pack everything in! Estimation of the size of each task is hard, but that’s a problem we can address separately.

So I guess what I want is a kind of automatic ~memory~time management whenever possible. How can I get it?

My first thought is that I’d like two different systems: I’d like the bulk of work to be scheduled on the calendar, but I’d like to have a fixed-capacity TODO list (which I beemind to ensure it stays within bounds).

But here I might make a mistake by overscheduling such that there is not enough room in the calendar to handle the TODO list. So I’ll have to attach estimates to TODO items and beemind not the number of TODO’s but the sum of all of the estimates.

As I write this, I realize I’m sort re-discovering the GTD algorithm, where if a task is estimated to take more than 2 min you must either schedule in your calendar or append it to your stack of “next actions”. Maybe that’s what I missed in my first reading of GTD - the “next actions stack” has a weight limit, after which you must allocate on the calendar.

So, to conclude this stream of consciousness, I guess my action items are as follow:

  • Make a personal “stack weight limit” goal that I beemind. Let’s say it’s 8 hours/week.
  • Schedule 8 hrs week into my calendar just to focus on whittling down that stack.
  • Make a rule that TODO’s can’t go into Roam without some kind of task estimation.

Should I track how accurate the task estimation is? Not sure - I guess I’ll need to read what’s going on in How to measure time calibration skill?


We never really got to a conclusion in How To Measure, so if you come with something operationally useful (like, e.g., a spreadsheet template!) DEFINITELY post there and let us know! I should take another crack at it too…

I really like the thoughts here. In particular,

[T]he “next actions stack” has a weight limit, after which you must allocate on the calendar.

is a really interesting idea! I don’t think that’s a core part of the system (although I certainly could have missed it!), but I think it’s a very reasonable extension. Definitely interested to hear if you come up with a workable system around this!


Love these thoughts! And amen to @rperce’s point that we still need a practical answer to the time estimation question from How to measure time calibration skill?

Ooh, anyone know how this compares to YNAB?

1 Like

In short, YNAB is a tool for analysis of your spending. Qube is a system (FDIC-insured bank + unlimited virtual accounts + budgeting app) for controlling your spending via the combination of 1) a virtual spending card with a “default zero” balance 2) unlimited single-purpose debit cards/checking accounts.

To further abuse memory management as a metaphor, YNAB is a tool for going over your program trace and saying “Now, why did I segfault with OOM here?”, and Qube is Rust’s borrow checker saying “No can do, Ace. If you want to buy that thing with money from bucket X, you’ll need to move some money into it form bucket Y first”.


I use a mixture of Qube, YNAB and multiple traditional banking accounts. Qube is for my subscriptions, YNAB is for budget planning and My traditional accounts are for large categories like groceries/supplies, gas and etc for everyday tracking so I don’t have nearly as many transactions to put in YNAB.


I tried implementing a Beeminder goal for my buffer of personal TODO’s as “Whittle Down” goal but I’m not sure I understand how that one works. personal-todos – d4hines – beeminder

I want something that steers me toward or below say the number 8. Right now I’m at 24. When I get to 8, I want it to keep me there. Every N days, I want Beeminder to check if I’m at 8 or below and charge me if I’m not. What’s the right goal type and parameters to implement this?

1 Like

Daniel - looks like you’re close on this goal, but you don’t currently have a slope on it. Seems like you want a “do less” goal, starting at today’s value of 24, then going down to some future date with a value of 8, and after that an ongoing slope of 0.

So to do this to the goal you’ve set up, I think you probably just want to add a row to the goal matrix with the target value of 8, and your target date it in? Something like this:

After that date, your existing ongoing slope of 0 will resume, so the goal line will go horizontal with a value of 8. If at some point after that you derail, it’ll jump up again to the derail value, and you’ll need to add another target date after that with a value of 8, which will give the goal line a slope back down to 8 again.

Makes sense? Ask if not!

1 Like