The other day I saw this tweet
#Emacs org-mode is perfect for time sheets: ":block month-1 :step day". All time spent on all tasks last month, broken down by day.
— Colin Woodbury (@fosskers) June 1, 2016
and thought it was pretty neat but I didn’t know exactly how Woodbury was doing it. Part of the problem was that I didn’t recognize the keywords :block
and :step
and couldn’t find them in the Org documentation. So I asked Duck Duck Go and was pointed to the documentation for clock tables.
The clock table is a dynamic block that you can add to an Org file that will extract clocking information from the file. Thus, if you keep a journal that includes your, say, work tasks and you clock the time spent on those tasks, at the end of the week or month or whatever your reporting period is, you can produce a detailed report of the tasks you worked on and how long you spent on them.
As you can see from the documentation, you can filter the data to include at a granular level (including by tags) and have flexibility in formatting the resulting table. If you’re already keeping a daily journal or log report, you can start clocking your time spent on tasks if you aren’t already and you get the time sheet for free. It’s painless and powerful.