Tim's Blog

Information, Technology, Security, and other stuff.

Automated Timesheet Filling

Published 2014-12-04

I'm terrible at remembering to fill in timesheets. It just seems like a pointless exercise, but that doesn't mean I can get out of it.

So I figured the only way I'm going to do it is via some automated process.

I originally was using an app called Moves which tracks all activity you do, including driving, so I was able to see what times I arrived and left work. I would go through at the end of the month and just fill in the data from the app.

But then Moves got bought by Facebook, so I lost trust in it and dropped it. And I also got tired of going through the app and matching each day with my timesheets. The accuracy was also a bit off, as it showed the time I arrived, not really the time I started and stopped work. Being an IT guy, I'm only doing work when my laptop is on.

So now I have a nearly automated process, but it's far more accurate now. It does require combining 3 online services, and unfortunately it's not free. That's always a bummer, but it's a small price to pay for a lot less heartache.

So here's how I did it:

1) Get Harvest

Harvest is an online service for creating timesheets. It's mostly useful for Freelancers working by the hour. The good thing is there is a free tier if you just want to track a single "customer".

For this exercise I created a Project called "General Work" which all of my time at work will get sent to.

Harvest Project Settings

2) Get RescueTime

RescueTime is an online service that tracks everything you do on your machine, so you can see how productive (and unproductive) you are during the day. The idea being that you'll see that you've spent 4 hours in the day reading Hacker News and you'll be inclined to fix that bad habit.

This is the only part that you have to pay for. I got lucky and found a coupon, saving 25%. Maybe run it on a monthly plan until you find a coupon or deal.

It is a little unnerving, in that the RescueTime service is watching everything that you do. Luckily anything important that I do (basically anything involving Intellectual Property) is done on remote machines, so RescueTime will just see an mstsc connection and nothing more.

Simply install the Agent on your machine and it'll work its magic behind the scenes.

3) Get Zapier

Here's the glue part. Zapier allows you to join two disconnected services to execute tasks based on parameters. For example, every time I get an email with "Foo" in the subject, send it to the "Bar" folder in Dropbox. IFTTT is basically the same thing, but it has less connected services on offer.

You can run Zapier on a free tier. You only get 5 "Zaps" (jobs) and 150 tasks (executions) per month, but that should be plenty for this process automation. This Zap alone should execute a maximum of 31 times a month.

4) Set up the Zap

Ok so now for the fun part. In Zapier, set the trigger to RescueTime and pick the New Daily Summary Report. Then set the action to Harvest and pick the New Timesheet Entry.

Note: these are going to look a little different when you set this up. My screenshots are taken after the Zap has been created.

Zapier Trigger and Action Settings

Then, set your RescueTime Account. You'll need to Authorise Zapier to connect to it.

RescueTime Connection

And the same for your Harvest Account.

Harvest Connection

Then don't worry about setting Filters.

Filter RescueTime Triggers

Now for the Data Linkage. Set the Notes to be whatever you want. I set it to be "Total Logged Time: Total Logged Time - Hours" but it's not important what it is. It is mandatory though.

Then set the Hours to be Total Logged Time - Hours.

Choose the General Work Project, or whatever Project in Harvest you want this to go to.

I also created a task called "Work" in Harvest, to file all of this time under. I also didn't set a "Spent At" field because I generally work from a variety of places.

Data Linkage Configuration

Next, test it to make sure it works. If you connect the services fine then I doubt you'll have any problems.

Testing the Zap

Then, give the Zap a name and set the schedule. I left it at the default of 15 minutes.

Name and Scheduling Configuration

And that's it! You should be getting delicious accurate data on your hours spent at work every day now. Now just pick a date every month where you'll go through your Harvest times and put them into whatever timesheet that they need to go into.