Stack OverflowHow do you track your time?
[+49] [53] Andre Bossard
[2008-10-02 10:00:52]
[ project-management productivity gtd ]

I had about 7 employes until today and everyone had another kind of timesheet/timereporting.

How do you track your time at your current workplace, or if your a freelancer, how do you keep track of your time?

Thanks for the help with the tags, Prakash - Andre Bossard
[+34] [2008-10-02 11:53:16] akuhn [ACCEPTED]

I have a ruby script that appends a line with timestamp and all commandline arguments to a text file. Then I have an alias from "I" to this script, such that I can just type on the command line...

% I start working
0d 14:06'11"
% I have read mail
0d 00:27'45"
% I answered a question on stackoverflow
0d 00:11'32"

...and all that is recorded in a text file with timestamps.

Other scripts later use that text file to generate work reports, or just tag clouds of what I have done during the last weeks or months.

require 'date''time.txt', 'a') do |f|
  f.puts "#{"%Y/%m/%d\t%H:%M:%S\t")}#{$*.join(' ')}"
end unless $*.empty?
back =
now ='time.txt') do |f|
  f.each do |line|
    unless line.strip.empty? then
      back = now
      now = DateTime.strptime(line,"%Y/%m/%d\t%H:%M:%S\t") 
if $*.empty? then
  back = now
  now = + # fix timezone!
diff = (now - back)
puts "#{diff.to_i}d #{( + (diff - diff.to_i)).strftime("%H:%M'%S\"")}"

This is awesome; I'm definitely going to steal this. I will probably change the backend to write to a SQL database, though.. If I do, I will re-post here :) - Matt Rogish
Full script, including time-cloud, see - akuhn
Very cool, but are you serious? - Jess
@LuckyLindy, yes. I also track my todo items and spent money using similar ruby scripts. - akuhn
[+24] [2008-10-02 16:45:30] Nathan Baulch

Since I am an independent contractor, accurately measuring my time is very important.

I wrote a utility that sits in the taskbar and records the process name and window caption of the active window every second of the day. If the keyboard or mouse was touched during that second then the time is considered active versus idle. Every 15 minutes this information is summarized and written to an SQLite database. At the end of the day I can view that data in a timeline and use a Bayesian filter to classify each unique process/window into one of three buckets: work, play, other. From there I estimate my hours based on some predefined thresholds that I've worked out over time.

I have tried professional software but the combination of automated recording and classification of active windows is by far the easiest approach to accurate time tracking!

One of these days I'll have to open source it...

(3), please do....I was thinking of doing something like this myself, but you took it to a whole new level :) - Adrian Mester
hi, this is very interesting, is it available now? - flow
Publish! I was going to write this, but you beat me to it. - FreshCode
(1) I have since discovered which is similar but much more polished. Unfortunately it doesn't have Bayesian classification so I haven't switched over myself... - Nathan Baulch
Bloody Awesome!!! I always wanted to write such thing, but never ever thought to this level. Classifier to analyze collected data. I am Impressed... ;) Just out of curiosity, how accurate do u find the analysis? AND PLZ PLZ OPEN SOURCE IT AND INFORM ME ;) - Microkernel
I've been using it for over 4 years and have achieved 98.9% classification accuracy across my 3 buckets. In theory I could just let it run but I like to train it periodically to keep it accurate. - Nathan Baulch
@Nathan-Baulch: Have you considered publishing the code as-is, or contributing to an open source project that already exists? - Kimball Robinson
Any update on your thought of open-sourcing it? ;) - Kolky
[+14] [2008-10-02 10:10:55] Prakash

What’s the best way to track and submit a timesheet? [1]


[+13] [2008-10-02 11:14:05] Grimtron

I like to use TimeSnapper [1] in order to track my time. It also provides a way of reconstructing everything I have done, as it is based on periodically taken screenshots.

The actual timesheet is then constructed by using the data from TimeSnapper and categorizing the worked-on items as appropriate in an excel spreadsheet.


+1 for TimeSnapper. It really saves the day when you have no idea what you did yesterday, since it records everything you did on multiple monitors and you can play it back in high speed. - mike nelson
[+9] [2008-10-02 10:08:08] unexist

We use Redmine [1] - you can just add the spent time directly to a ticket. Actually a web-based tracker is the best solution if you work on different computers.

Maybe one of the tools here [2] can help too.


[+6] [2008-10-02 10:16:57] timday

FogCreek's FogBugz [1] has really nicely integrated time tracking [2]; you just need to remember to use the "working on..." pulldown.

It'll use the timesheets to give you some fascinating feedback on the accuracy of your original estimates, and feeds them into statistical projections of project completion dates too.


I wrote an "always on top" tray icon app that stays semi-transparently no the top of my screen and shows me what I'm working on (and of course lets me switch between cases assigned to me). -
Nice. If we'd stuck with FogBugz longer I imagine we'd have cooked up stuff like that ourselves (unfortunately my employer decided everyone had to use VersionOne instead). - timday
[+5] [2008-10-02 10:04:29] JeeBee

I come in, I work the hours (+ a few more if I'm on a roll), I go home. My boss trusts me to get the work done.

(I am fortunate enough to work in an environment where that is okay behaviour, I realise that this isn't an option for many people)

In the past when I have done billable work, I had some nifty time-reporting software on a Palm Pilot that you could reach across and touch to start/stop/select task - i.e., far less intrusive than having to fill out a spreadsheet as you went.

It's not about the trust: its about the bills you can give your customer, when you're working as a freelancer/for another company - MADMap
That would be a different situation. In the past I had some nifty time-reporting software on a Palm Pilot that you could reach across and touch to start/stop - i.e., far less intrusive than having to fill out a spreadsheet as you went. - JeeBee
Keeping accurate timesheets also helps to the estimating of future projects. Specially if there are estimate vs. actual data to consider deviations from the original estimate. - vmarquez
[+3] [2008-10-02 11:42:02] Valters Vingolds

Try, if you only need something small, something for yourself only.

[+3] [2008-12-19 00:08:24] Darren

SlimTimer [1] is a low friction time tracker and is my current tool of choice.


I've used this for years but it seems to not have had any new development for quite a while - Rob
[+2] [2008-10-02 10:04:03] Omar Kooheji

I track my time by remembering what I have done each day, my out look callender seems to tell me what I was supposed to be doing, so I use that as a basis for it.

(1) That's exactly what I do! Although I've got the feeling I would get a more precise picture, if I did it in a more "dedicated" fashion. - Martin Bøgelund
[+2] [2008-10-02 10:09:04] Arne Evertsson

I use a Google Spredsheet which lets me add start and end time. It then sums up per project. I need to know how much I work on each project, so it is as simple as possible.

[+2] [2008-10-02 11:43:22] ayaz

I remember in my previous office they had a crappy web-based time management system in place. I had an account on it, and someone, probably one who managed that application, added all my currently assigned projects to it, so when I accessed the application to add my time at the end of a day, I would have sections for each project I was working on. Of course, I had to manually add, say, five hours for this project, and two for this, and so on and so forth. I really did not see what actual purpose that served, and even though the technically-sound managers failed to see any actual benefit of the system, they still requested people under them to fill up the time sheet.

In my current job, there is no time management. One reason may be that unlike my previous workplace, this one is considerably small. But, most of all, we trust each other to do the stuff. We maintain centralised and per-client TODO lists and message boards, where we discuss stuff and post timelines, and tasks, and mark them off. All in all, that gives a good overview of what is happening and what is not.

I never minded the time management systems so long as I could add my own tasks, without getting permission for the extra things I may be doing to make my work more efficient - tloach
The reason they wanted this, I hope, was so that they knew which projects were being worked, and (if they were billable) which customers needed to be billed. - warren
[+2] [2008-10-05 13:55:28] louism

I've used 'harvest' before ( - it's not too bad since it works from a widget. With a bit of effort, in a week or two you can get into the habit of clicking what project you are on (it tracks the hours for you).

I have seen some spurious time-tracking systems at companies, if people's hearts aren't in it (i.e. writing proper time-sheets), the data in them is pretty much fictional. I don't know if operational managers realise this, if you force someone to do time sheets without doing two things; 1) explaining why, and 2) leading by example - you will get rubbish data. People will just back-track and make up whatever to fill in their time.

As a project manager, what I would like to do is this - fill out my programmer's time-sheets for them on a weekly basis. And I think this would be possible using a program like timesnapper. If I get the chance, I will be trying this out at the next company I work at.

[+2] [2009-03-16 04:54:41] Jess

If your people are just working on 1 project, have them use Excel. We use that and it works great.

[+2] [2010-08-05 16:12:11] user79878

I use Rachota [1] as a task timer, then copy the results to a spreadsheet.


  • Free
  • Easy to track time by tasks (with start/pause button)
  • Desktop client that runs on all OS's (I run mine on Windows)


  • I can't correct the times in Rachota (e.g. if I go to the bathroom and forget to stop the timer), but when I copy values to the spreadsheet I'll tweak them a bit.

I looked through the solutions so far (52 of them) and I personally didn't see anything I'd prefer to use. I don't want an online tool, anything that costs money, and tools that automatically track application time don't seem that useful to me. I'm not saying that my way is best... do what works for you!


[+1] [2008-10-02 10:06:08] Ólafur Waage

We have an in office built solution that all projects are created on and all employees write down their time and describe what was done.

I've found that home-grown solutions tend to be best since they tend to allow the greatest flexibility to the employees. - tloach
[+1] [2008-10-02 10:58:46] Ola Eldøy

I use Eclipse a lot, and when I activate and deactivate tasks in Mylyn (an Eclipse plugin), the start and stop time along with the Task ID is recorded in an xml file. So for me that is one good source of timekeeping data, which can be imported to our time tracking system.

[+1] [2008-10-02 11:31:25] Mnementh

I described how I track (and schedule) my time in another question:

[+1] [2008-10-02 12:09:58] The.Anti.9

We use a site called which was actually built by a previous intern at the company. It has a pretty simple interface to assign projects to people and the user can select from the dropdown list of tasks assigned to them and then just manually put in how much time they worked on it. It's quite simple. I guess its not the most accurate method though...

[+1] [2008-10-02 12:13:45] Wes P

This isn't so important in my current job, but my previous job I was building websites and needed to track time, there's a really good time tracker for Google Desktop, called Time Tracker I think... (imagine that). Me and the rest of my co-workers absolutely loved it. Then at the end of the day, we'd jump into netsuite, or whatever our time entry program of choice was at the time, and enter our time.

[+1] [2008-12-08 01:29:51] wesleycoelho

If you use Eclipse, Mylyn will automatically track the time you spend working on tasks from your team's bug/issue tracker. With the free Tasktop Starter, a dashboard shows you exactly what you've been working on so you can enter it into your team's time tracking system. Tasktop Pro adds functionality for reporting over arbitrary time periods and task categories.



[+1] [2008-12-19 02:24:10] JB King

Replicon [1] has a web timesheet that where I work uses. It is OK for giving a matrix-like entry of hours while there is also a weekly e-mail of tasks to provide that kind of perspective on how us developers are doing.


[+1] [2008-12-19 03:06:50] Nick Kavadias

Slife [1] is a fantastic tool that tracks your usage on your pc based on the application that your using. It can also log how much time you err 'waste' of sites such as SO. There are OS X and Win versions available.


[+1] [2009-03-16 05:05:15] Steve B

I've been using [ManicTime][1] to do part of the work. It tracks what window you're in, the window title etc. So at the end of the day (or a week later), you have enough information to be able to reconstruct a reasonable picture of what you were doing.

I hate tracking time at the time and always end up fudging the figures one way or another. And this seems to make the process a bit less painful, even though it doesn't seem intended for this purpose at all.

[1]: ManicTime

[+1] [2009-06-25 09:50:03] solomongaby

i use rescue-time [1] i love it mainly because its desktop client :)


[+1] [2010-05-11 17:38:51] John

i use Paymo time tracking [1] & invoicing. It's been great thus far.


[0] [2008-10-02 10:06:04] MADMap

I've created an application, which allows me to define some projects and I can enter the tasks in there. The application creates an XML-File out of this stuff and I can use it to create the bills or import this into another system.

Read more about this tool [1]


[0] [2008-10-02 10:13:20] jop

I allocate a page in my notebook (the paper kind) for a single day and list down all the things that I need to do for that day. I mark off items as they are done and list down the number of hours I spent working on it. I tally them at the end of the day.

I have another page that summarized what happened that week including the daily figures.

I then type in the figures on my employer's intranet based timesheet app.

[0] [2008-10-02 10:18:07] IanW

At work we used to use a truly horrific Excel spreadsheet for this. In the end I got so tired of it I developed a quick web app for this written in PHP with a MySQL backend. It doesn't look wonderful but is easy to use. Best of all I control the data and can extract it in any way I wish. Every year the data is exported into a CSV file and sent to my main Manager who can import it into his Excel spreadsheet. Not exactly the most efficient solution but it does the job.

[0] [2008-10-02 10:20:17] Liam Westley

I use an Excel workbook with one worksheet per day. I generally updating it every few hours or if I'm very busy, the next day.

It's infinitely flexible if hard to data mine. It includes unique project numbers, location and work description etc. and a Y/N chargable column. I use formulas to total client time based on project numbers and the chargable column.

It's a real boon at the end of a month, I can look at four weekly workbooks and total up the hours for a client, and summarise the work that was undertaken.

I've been meaning to create a small application to do this for some time, but Excel is so simple and flexible that, other than automated reporting, I'm not sure it'll be an improvement.

[0] [2008-10-02 11:16:08] Nuno G

I have been using Timelog [1] for a couple of years, and I am quite satisfied with it. It is a web-based, hosted application. Every day, I fill out a spreadsheet-like page, typing in the hours I have worked in different projects. The project manager keeps track on who's working on what, and bills customers using monthly reports.


[0] [2008-10-02 11:23:04] Joeri Sebrechts

At the risk of being labeled a company stooge, I think it's still worthwhile to outline how I book my own time.

We make and sell our own software product to do this: MCS Project Management.

Requests for work are booked into the system as calls, work orders are assigned to respond to these calls and end up in everyone's "todo list". When work is executed, people can drag the work order onto the calendar to book a task for it (like dragging around tasks in MS Project), and eventually these tasks get billed semi-automatically to the customer based on the contract and type of work that was requested.

Ofcourse, this system only pays off for larger companies. If you're a 10-person team, it's over-engineered for your needs. But I still think it's a really nice way of working, and I'm not just saying that because I help to build it :)

[0] [2008-10-02 11:59:47] antik

My company provides a time accounting system for billable purposes.

[0] [2008-10-02 14:44:55] warren

I keep daily notes in a text file and/or internal wiki with notes as to waht I'm doing.

At the end of billable weeks, I cull through that and fill out a time sheet.

When I'm not on billable time, I show, do my job, and go home :)

[0] [2008-10-02 16:56:31] PintSizedCat

I have great time tracking time and although this isn't really a proper answer it is an amusing little story. (I will also post an application for tracking time a little later, I do not have the application here)

About 2 years ago when I started work at a company I found that I was spending a large amount of time on the internet doing things that were not work related (irc, email, places like stackoverflow). I have always done c/c++ in my spare time and so thought that it would be a marvelous idea to create an application to track the time I spent in different applications. I think I must have spent about 100 man hours tinkering and looking for ways to hook Windows to get the information I needed. All of this, during work.

I feel it's rather ironic that I spent such a great amount of time working on an application to track my time and make me more productive whilst at work, being, well, not very productive.


[0] [2008-10-02 17:02:16] Jesse Dearing

I use Hour Guard from NCH Software [1]. It's free.


[0] [2008-10-02 17:06:24] Andy Lester

The time tracking is always defined by the reporting that the project manager / boss wants.

If boss wants it down to the bug or task level, then you track using a tool that allows for that, ideally your bug tracking system. If it's only a matter of "I spent 27% of my time on bugs, 15% on meetings and 58% on new development", then tracking by number of hours per day in a text file and cobbling up a little Perl program to do the math is fine.

[0] [2008-10-22 14:42:53] Mapad

I used task coach [1] in the past. A really nice cross platform time tracker written in python.

Now I just use VIM because it's more flexible, don't require a mouse and you don't have a background process running. I just list all the name of the tasks I am working on at the top of a text file. I stole the idea from this blog [2]

When I start working on a task I put the cursor on the corresponding line in the file and press F11, then a python script writes at the bottom of the file the current time and the name of the task.

If I stop working on the task I press F12, the python script adds the current time at the bottom of the file and computes how much time I've worked.


[0] [2008-10-30 03:32:59] Darryl Hein

I currently use TimePortal [1]. It's simple and does the job. It also allows me to quickly view the "active" projects.


[0] [2008-12-10 15:07:54] Ola Eldøy

I found Toggl [1] to be a useful tool to time whatever I'm working on. If you leave the computer for some time, you can decide to delete the idle time upon returning.


[0] [2008-12-19 02:27:41] mrTomahawk

If you want a really good Project Management and time management app look at the free open source ClockingIT [1]


[0] [2008-12-19 02:38:19] Michael T. Smith

At my office we use Replicon [1] for timesheets; everyone does it from top to bottom. Its very nice for the account people as we bill hourly for clients. The interface is cumbersome and doesn't work well in all browsers so it tends to be problematic to use throughout the day. Its Best for just filling in at the end of the day/week.

For day to day use, I've been using the Emergent Task Timer [2] from Dave Seah. Its blocked in 15 minute intervals, so its very nice for just filling in bubbles as the day moves on.


[0] [2008-12-25 00:43:41] Jared

I use to track my time. It works well but I had to go editthe code so I could have it not prompt me every hour if I was working on the same thing, for example when I had to go to meetings I wanted to be able to let my computer keep track of that time even though I wasn't at the computer. The program also keeps track of how much time you spend in what applications which is helpful.

[0] [2009-01-02 23:59:41] Jean Barmash

We have a small consulting team of 3 people working on multiple clients / projects. We used to use a spreadsheet on Google Docs, but it was a pain to update and report on it.

We recently switched to Harvest (, it's a hosted solution that is also integrated with their other application Coop ( which is a twitter / yammer-like application. We like it a lot, especially since it now allows us to easily generate invoices to customers and track hour hours against hours purchased.

Other light-weight time tracking apps incude, and somebody I know evaluated and is moving to light-weight project management software called Intervals.

[0] [2009-01-03 00:15:29] Steve Wranovsky

I'm a freelancer, so its important for me to keep track of where I spend my time. I use the invoice mechanism of Quicken Home & Business [1] to keep track of my monthly invoices. I create an invoice for each customer at the beginning of the month, and I enter a new line in the invoice for each day I work on a project. This allows me also to add a summary of what I did that day in the comments field along with the hours worked.



[0] [2009-03-01 20:20:45] Johan

I use and its works great for me to timetrack multiple projects!

[0] [2009-03-16 04:48:03] Klausnrooster

I lug a slate tablet everywhere with an HTA I made for tracking time spent per task. The HTA is 36 buttons big enough I can peck them with my finger and so can save the time of grabbing the digitizer pen. The tasks names are predefined, but for one that is free-form. The free-form tasknames are put to csv and 'Select *' using MS LogParser so I can use the same spelling for the same tasks. All buttons (divs, really) change color and log the start date and time of an activity, into a CSV file. No limit to multiple tasks running. A red div means that task is active. Poke it, and it sends the end time and the vbscript finds the entry wherein that task's beginning was logged, and computes the # of seconds from start to end (puts that in the CSV), changes back to it's former color. I have several canned SQL strings for giving me quick stats, but I keep planning to open the csv with XL to do some good analysis. I've been using the tablet (rugged) for several months, just collecting data. I do use 'TaskHelper', but it is slow on the tablet, so I will likely add the task mgt to my HTA. I'm just learning javascript, looking fwd to experiencing some of it's coolness.

[0] [2009-06-25 09:22:26] Derek Organ

I use 1time [1]. Really great way for teams to keep track of time.


[0] [2009-06-25 09:24:40] Jon

I have a terrible memory, and need to keep a record of just about everything. I keep detailed notes in MS Outlook Journal. It's a good tool, and well worth spending a few hours to get to know. Do one of the many tutorials online.

[0] [2009-06-25 10:03:03] Caledin

When working on Linux I have been using his one

[0] [2009-07-22 11:56:01] cssbit

I use Kronos, an adobe air application, very useful and beautiful

[0] [2010-05-11 17:47:37] Dean J

A KISS [1] system of post-it notes [2]. It never fails, never goes offline, never forgets anything, and costs pennies a month.


[0] [2010-08-13 12:22:29] Adrian Grigore

This one is easy to answer for us since our main product is a time web based tracking system :-).

I realize Time tracking is a pain for most developers, because it tends to get in the way of actually doing your work. Which is why we paid special attention to make the process of tracking your time as easy and fast as possible.

Right now, it's only in German, but depending on your country your origin, you might have a look here: LogMyTime Zeiterfassung [1].