The Pulsar Cafe    ·

Weekday-Only Routines in Org Agenda

I recently started using org agenda as a way to organize and plan todos and meetings. I use it for work projects, personal projects, and even parts of my life that don’t involve programming. My current use of the agenda mode is probably only in its beginning stages, however; I haven’t used it long enough to fully customize, nor have I had the time to explore the documentation and feature list as extensively as I would like to. But I think it’s already helping me be more efficient.

I took a lot of org mode customization from the excellent guide published by Bernt Hansen. Reading that document closely gave me some sense of what is possible with org, and a familiarity with many of the major concepts. But there is so much there that I wasn’t able to pick it all up and incorporate it into my workflow at once. I picked out a couple concepts that seemed like the low-hanging fruit of improvements to my workflow, and began to use those. Those were: 1) using keywords like NEXT, TODO, HOLD, CANCELLED to mark items, and 2) tracking and reporting time via org clock tables.

Six months later those concepts were core parts of my workflow, and so I was able to notice another gap where I wasn’t being as efficient as I would have liked. That gap was the relationships my tasks have to specific times, and my awareness of those relationships. Some tasks have deadlines, some meetings happen at the same time every day, and sometimes I’d like to be able to say, ad hoc, “I’ll start this thing next Tuesday.”

This is all easily accomplished by placing timestamps under the heading of a task. But one thing that wasn’t obvious to me at first was how to tell org agenda that a meeting happens, say, only Monday through Friday at 10am.

This is the particular case of the daily standup, which we practice at my work. My first attempt to represent daily standup in my org agenda was to put a daily repeating timestamp under the Standup task header for a project.

**** Standup
     <2018-01-01 Mon 10:00 .+1d>


But this results in an agenda view where the standup is scheduled for the weekend days.

Saturday   24 March 2018
  work:       10:00...... Standup
Sunday     25 March 2018
  work:       10:00...... Standup
Monday     26 March 2018 W13
  work:       10:00...... Standup
Tuesday    27 March 2018
  work:       10:00...... Standup
Wednesday  28 March 2018
  work:       10:00...... Standup
Thursday   29 March 2018
  work:       10:00...... Standup
Friday     30 March 2018
  work:       10:00...... Standup


Once I actually set out to fix this, it wasn’t hard to find an answer. Now my standup timestamps look like this

**** Standup
     <2018-03-14 Wed 10:00 .+1w>
     <2018-03-15 Thu 10:00 .+1w>
     <2018-03-16 Fri 10:00 .+1w>
     <2018-03-19 Mon 10:00 .+1w>
     <2018-03-20 Tue 10:00 .+1w>


And my agenda view correctly shows the standup meeting only on the weekdays.

Saturday   24 March 2018
Sunday     25 March 2018
Monday     26 March 2018 W13
  work:       10:00...... Standup
Tuesday    27 March 2018
  work:       10:00...... Standup
Wednesday  28 March 2018
  work:       10:00...... Standup
Thursday   29 March 2018
  work:       10:00...... Standup
Friday     30 March 2018
  work:       10:00...... Standup
comments powered by Disqus