One way to Build a Task Timer

Hey all! Just got finished my weekly build - a Time & Workload Manager - focused on straightforward task management and weekly workload monitoring. I built this for myself, more specifically for my future self, to stop overloading Future Andy with my unfinished tasks.

One of the core elements is a Task Timer, which is a pattern that can be built in many different ways. I break down how I did it in detail in this substack post..

This method records each timer session in a separate table, which is a great way to get more detailed analytics about how you manage tasks. For example, if I do a lot of task-switching (moving between tasks instead of finishing one before moving on to another) then I can create notifications to nudge myself when I exceed a certain threshold of switches.

To summarize the timer implementation:

  • create a second table called Time Tracking
  • create a button in the Tasks table to add or modify a row in the Time Tracking table, depending on whether the user is starting or stopping the timer.
  • if starting the timer - add a row and set its start datetime to now() and an Active checkbox to true()
  • if stopping the timer - modify the active row with an end datetime and set Active() to False()
  • to get an Total Task Duration, add a relation column to the Tasks table, find any related Time Tracking rows and sum their duration.

Here’s a look at the button formula:

Again - this is just one of many ways to do this, but it’s one of my favourites. Would be cool to see how others achieve a similar outcome.