anh.do

I build apps

Copyright © 2006—2026 Anh Do 🇻🇳

Time Tracking with Toggl, Part I

August 14th, 2020 · 3 min read

In the past I made several attempts to do time tracking but they all ended miserably. I was no stranger to automated tools like RescueTime or Qbserve but none of them clicked for me. They ran quietly in the background and once a week I would receive an email detailing where my time had gone the previous week. Rinse and repeat. There were nice charts to look at but for someone who wasn’t using time tracking to bill clients, they were noises to me.

Half a year ago I read more about how others used it and finally realized what I had done wrong: I had relied on the tools to automatically keep track of my tasks and categorize them into different buckets, while instead I should deliberately define which tasks I want to track and start/stop the timers myself. The benefit that comes from time tracking is that intentionality when I carry out the tasks during the day, not only when I open the summary email. A classic case of ‘the journey is the reward’.

Armed with that newfound knowledge, I again restarted my time tracking effort with Toggl and its mobile companion, a third-party app called Timery. This time it worked: The act of manually manipulating the timers made everything intentional. Stop working to look at Reddit for a few, erm, minutes – pause the current timer. Start watching Netflix or launching a game on Steam – I’d better start another timer. Focus on the categories I want to track and ignore the rest.

There was no need to track every single minute in the day; I only had to define a few categories that I cared about the most, like Productive Work (insert a side project name here), Entertainment (Netflix and Reddit and everything in between), Fitness (Jogging and Ring Fit Adventure, duh), etc. With 6 months’ worth of data, I can already form a picture of how well I spent my time during the current pandemic. Spoiler alert: A lot of Netflix, gaming, and procrastination.

At that point, I decided to extend the tracking history by importing the data I already had from last year (thanks to Qbserve) into Toggl. Toggl supports CSV import and had good documentation, so there shouldn’t be any problems, right?

Apparently not. I was baffled at how bad Toggl’s bulk management tools were when it came to CSV import. This was but an example:

Recently I gave time tracking a try. I imported my logs into Toggl as instructed (Toggl CSV import instructions) and ended up with 3000 hours of overlapping time entries. Turned out Toggl didn’t automatically combine such entries. Oops. (1/7)

Originally tweeted on February 2, 2020

I deleted the imported project and realized that it didn’t remove any associated entries. They were just turned into uncategorized ones. (2/7)

Originally tweeted on February 2, 2020

Both the web interface and native apps didn’t help - there was no way to bulk delete thousands and thousands of time entries. No Reset button anywhere either. (3/7)

Originally tweeted on February 2, 2020

I turned to the published API doc (Toggl API documentation), hoping to find a solution. No luck. Only one entry can be deleted at a time. (4/7)

Originally tweeted on February 2, 2020

Had to use Firefox Dev Tools to find the correct API calls from the web app - they allowed batch delete of up to 50 entries at a time. curl to the rescue. (5/7)

Originally tweeted on February 2, 2020

I set a quick ‘n’ dirty script to run every few seconds to go thru the whole list and remove them the ‘correct’ way. It look something like this: curl GET_TIME_ENTRY_IDS | jq '.data[].id' | paste -sd "," - | xargs curl DELETE_TIME_ENTRIES (6/7)

Originally tweeted on February 2, 2020

Moral of the story: Command line tools rock. (7/7)

Originally tweeted on February 2, 2020

In Part II, I’ll write about how I managed to import my workout history into Toggl.