Time Tracking with GTimeLog
Posted Sun, Jul 27, 2008 in:So I’ve recently started doing some on-the-side contracting work for a relative, so I need to keep track of the time I spend on various tasks.
After some looking around, I decided to give GTimeLog a try, because it seemed to be exactly what I needed without anything extra. I especially like how it has a nice, simple, text-based file format, so I can write my own scripts to fiddle with it if I feel so inclined.
It also has support for launching your favorite mail program to send of daily, weekly, or monthly reports, or export reports as CSV to a spreadsheet program, both of which could come in handy depending on the situation.
I would surely recommend any programmer I know to give it a try for any contract work they might be doing. Well, I suppose anyone I know who’s doing computer-based contract work, really.
The interface looks like the following (click for a larger image):
You enter items by typing them into the text box at the bottom. You submit them once you are done with the task, rather than when you start it, which is nice if you walk away after finishing one task and end up not coming back for a while.
The items end up in ~/.gtimelog/timelog.txt, which looks like the following:
2008-07-27 11:00: arrived
2008-07-27 11:50: Breaks: web surfing **
2008-07-27 11:56: looking for good time tracking app
2008-07-27 12:09: *snip*
2008-07-27 12:32: Breaks: lunch **
2008-07-27 12:50: Breaks: web surfing **
2008-07-27 13:06: Personal: transcribing notes
2008-07-27 13:17: setting up GTimeLog
2008-07-27 13:41: Breaks: nap **
2008-07-27 14:18: Breaks: web surfing **
2008-07-27 16:53: Personal: blog post
2008-07-27 17:17: Breaks: web surfing **
2008-07-27 17:41: Breaks: other **
The list of quick-entry options on the right (double-click to have it auto-filled for you), comes from ~/.gtimelog/tasks.txt:
Breaks: lunch **
Breaks: web surfing **
Breaks: nap **
Breaks: other
*snip*
Personal: transcribing notes
Personal: blog post
As you can see, it gets nested based on the stuff before the colon. There’s also an option to have it pull the task list from a URL, but I haven’t looked into how exactly that works yet. Hopefully it can pull things from RSS feeds so you can get a task list from BaseCamp or Trac or other such things.