August 14th, 2020 · 4 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 (https://t.co/4nSloVucnY) and ended up with 3000 hours of overlapping time entries. Turned out Toggl didn't automatically combine such entries. Oops. (1/7)
— Anh (@quanganhdo) 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)
— Anh (@quanganhdo) 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)
— Anh (@quanganhdo) February 2, 2020
I turned to the published API doc (https://t.co/yYrOlPD5Oo), hoping to find a solution. No luck. Only one entry can be deleted at a time. (4/7)
— Anh (@quanganhdo) 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)
— Anh (@quanganhdo) 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)
— Anh (@quanganhdo) February 2, 2020
Moral of the story: Command line tools rock. (7/7)
— Anh (@quanganhdo) February 2, 2020
In Part II, I’ll write about how I managed to import my workout history into Toggl.