Time tracking integration? Free? Weasel-resistant?

I’m Beeminding time spent each day on a project. Have been using a simple stop-watch style app and manually entering the time into Beeminder at the end of each day. Looking for a better means to do this that meets two criteria:

  1. Uses a timer with automatic data integration into Beeminder. This is to weasel-proof me from entering time into Beeminder that I haven’t actually completed yet (yes, I know, BAD!). Specifically, with data integration the ‘weasel-proof me’ BM preference will prevent me from entering fake data directly into Beeminder.

  2. Is free or nearly so.

What I’ve already considered and rejected:

a) The built-in timer in the Beeminder Android App. It’s too easy still to weasel and use manual entry to enter fake time.

b) Zapier integration with a time-tracking app such as Toggl. Zapier’s limit on the number of free data transfers per month means I would have to get their $20/month plan. Too expensive.(Someone else here has encountered this, too). (Their free limit is 100 transfers [“tasks”] per month; I average 120+ per month as I usually cycle my timer on/off at least three times per day; and each cycle triggers a transfer from Toggl to Zapier).

c) IFTTT integration: The only time tracking app I’ve seen that works with IFTTT is Harvest, which requires a subscription.

d) Methods to Beemind Pomodoros or tocks (no link b/c forum limits me to two). I want to Beemind raw time (hours/minutes), not chunks of time of arbitrary size.

e) Other official or third party integrations with BM. None seem to offer timer functionality. Have I missed something?

Hypothetical solution:

If there exists a time-tracking app that integrates with Zapier, but which can send its data in batches (ideally daily), that would be ideal. This would keep me under the 100 transfers/day limit for a free Zapier account. There does not appear to be a way to do this in Toggl (without a paid account allowing automatic daily email reports that could be integrated with Gmail–>Zapier–>Beeminder). But perhaps it’s possible in other apps?

What would be REALLY nice:
A time tracking system that meets the above criteria but also prevents any manual entry of arbitrary time quantities within the timer app. This would insulate me from weaseling not merely on the Beeminder end, but also on the time tracking end, too. Right now most of the time-tracking apps I’ve seen allow for manual/direct entry of time in addition to recording the runtime of timers/stopwatches (the usual use-case for the feature being so if you forget to turn the timer on you can retroactively enter the time you spent). This is a great feature for other users, but it’s a bug for me. I want an iron-clad timer mechanism that ONLY records when I’ve actually had it running (so that if my BM deadline is in five minutes, there’s no way to fake an hour’s worth of data by just typing it in). A boy can dream…

Thanks for any suggestions


Tagtime? http://tagti.me/
Android app https://play.google.com/store/apps/details?id=bsoule.tagtime&hl=en has good Beeminder integration.

It takes a while to get used to measuring time differently from the ‘start/stop’ watch method, but once you’ve convinced yourself it is actually measuring your time correctly it’s pretty hard to game.

(You might need to alter the ping interval depending on the resolution you need.)

1 Like

Offtopic meta-ness: I’ve raised the limit to five links, for new forum users. I’d already raised most of the other limits on new-user posting, usually after legitimate posters encountered them. We seem to a) not get many spam posts and b) flag them quickly as a community.

1 Like

I use TagTime to track where my time goes. It’s stochastic, so not good at fine granularity (short tasks). But it is excellent for answering questions about where my time went this week / month / life. (I use my own hacked version.)

I also use the tocks script, which updates Beeminder.

I (mostly) only beemind the tocks, because that’s something I can actively do on an emergency day. Conversely, I find TagTime psychologically expensive on emergency days.

(Which you would think should be a spur to focusing on tasks earlier in the day, but apparently I’m an akratic and the usual logic doesn’t hold…)

I have trouble with timer apps because I so often forget to hit ‘stop’. That’s presumably why they all have a manual/edit feature. The tocks script caps excess time as half-a-tock, which limits the QS damage.

Base problem: there are always ways to circumvent your good intention. Friends don’t let friends weasel. Don’t let yourself use the edit feature illegitimately. Tick the weaselproofing checkbox if that might help resist the temptation.

1 Like

If you wanted finer grained tagtime tracking, set the interval to 10min and only use it when you’re planning on working on the task.
Just remember to turn it off when you’re done or you’ll go insane answering pings every 10 min all day. (They won’t come exactly 10 minutes apart.)

1 Like

While it is not weasel-proof in the sense you mention (but might be of use for others that stumble upon your question), let me insert a shameless plug about my Emacs beeminder client: https://github.com/mbork/beeminder.el . Due to its Org-mode integration, you can clock in/clock out (i.e., start/stop the timer) and it will update your goal. (BTW, you can set the unit - e.g. hours or minutes - for each goal separately.)

As to your question: I’m not sure whether an app/service you describe exists. LeechBlock for Firefox is in a way similar in its philosophy, but it is restricted to constrain your time on certain websites.


@insti @philip:
Thanks for your suggestions re: tagtime. I should have listed it, though, as one of the solution-candidates that I’ve already considered. It’s pretty awesome and innovative, but just doesn’t seem right for my use-case. For one, it’s designed for general tracking of time use throughout the day/week/month. I’m looking for a tool to only track time on a specific project. As insti suggests, I could ramp up the ping rate when working on the project, but this seems like a lot of work (answering the constant pings, ramping it up+ down, plus answering the other—less frequent—pings throughout the rest of the day). A creative suggestion, but at the end of the day, a less-than-ideal workaround.

@philip: Thanks for fixing the link-limit for new posters!

@philip re: tocks: if there can be half-tocks, is there a way to hack the tocks script to get more temporal granularity? I.e., can it be made to act more like a time tracker and less like an incrementer?

@philip re: weaseling: Even just having the edit feature ‘out of sight/out of mind’ hidden within the interface of some timer app like Toggl (where I’ve tried to avoid seeing/reading the documentation on how to use the edit feature :smile:) is helpful to me. Whereas directly entering time manually in BM puts the weasel-opportunity front and center every day.
Is your suggestion:

meant to suggest that this creates a “real”/concrete limitation on my ability to weasel, or that it’s just an additional psychological barrier (because ticking the box represented a promise to myself not to weasel?).

@mbork: Thanks for your suggestions. I’ll look into the Emacs client. Is it set up to track time spent in Emacs, or could I (a non-Emacs user), implement it in such a way that it would serve me simply as a stripped down timer?
re: Leechblock: That plugin is awesome, and I use it all the time. The need to enter in a random string of characters to ‘unlock’ it to gain access to forbidden websites turns out to be a really effective deterrent to weaseling, while also allowing flexibility to access sites if I truly need to for a legitimate reason.

1 Like

You don’t have to answer every ping, just the ones when you should be working.
You can turn it off during other times.
And if you’re doing that way then you only need to answer the pings when you’re NOT working when you should be working.

1 Like

Hmmm. Thanks for that insight. That brings tagtime a bit closer to what I’m looking for.

1 Like

In thinking through this use-case some more, it seems that an ideal, and very elegant solution would be a setting within Beeminder itself that would permit the timer within the Android app to be treated like an automatic data source for the purposes of the “weasel-proof” me preference checkbox. Thus, there would be no other way to enter time other than the timer, just the way it works when you check “weasel-proof” me while using a fitbit, etc. And I suppose adding the timer as an input option for the web interface would help to round-out the feature set. I’m going to suggest this to the devs.


If you don’t use Emacs, it’s probably not worth it. In principle, you could script it and use just as a timer (it’s Emacs, after all, you can do (almost) anything with it), but it would be a bit of work for almost no practical gain.

When it makes sense, is when you actually use Emacs Org-mode. It’s a swiss-army knife, built around three core “philosophical” principles: (1) you do (almost) everything on your computer within Emacs, (2) you keep as much as your stuff as possible in plain text files, and (3) if a user does not need a feature, it should not get in the way. So some people use Org as an outliner, some people use it for authoring books and/or papers, some people use it as a time management tool (and here my humble client kicks in), some people use it as a spreadsheet, some people use it as a literate programming tool, etc.

Now, if I have a lot of projects which I time-track in Org-mode, I get Beeminder integration for free. If I used some other tool, it would be much more time-consuming.

Coming back: now that I think of it, it would be (in principle) possible to built in something a’la Leechblock into my client. Of course, you could still circumvent it - after all, it’s all open source - but it would be kind of a barrier to weaseling.

What I would really suggest instead, although I might be very mistaken, is as follows: from what you write I gather that your problem might really be located somewhere between the keyboard and the chair. What I mean, solving a psychological problem with technological means is very rarely effective (if possible at all). You might argue that Beeminder itself is a counterexample, but it’s not: what is crucial here is not the technology itself, but the contract between you on the one side, and Daniel, Bethany and others at Beeminder on the other one. That’s why it’s so important that they spam us with personal emails, write a blog, and post a youtube video of a human being explaining Beeminder on the website: you get to know them (in a sense) “personally”, and it’s kind of hard to cheat a person when you can look them in the eyes (even on YT). I’m quite sure that Beeminder wouldn’t be as effective if it were a huge corporate undertaking with no “human face” behind. Many people have little to no problems cheating a big corporation, but would not cheat a friend, a neighbor or even a stranger met in person. The technology exists here to remove some hurdles (yay for auto-updated goals!), but it is not the most important ingredient. As I see it, the two most important ingredients are: (1) the idea of the akrasia horizon, and (2) the fact that you have actual human beings on the other side. (The third one is that you pay with actual money, but it is not as important as the previous two.)

So what I would humbly propose would be to look for a psychological solution, not a technical one. Some suggestions that do cross my mind (in no particular order) are: (1) sending a personal email to one of the founders, promising that you won’t weasel (and making it clear that you don’t expect an answer, unless you want to land in a spam folder!), (2) doing the same on the forum or IRC channel etc., (3) writing such a promise for yourself and keeping it on your fridge or somewhere visible, (4) promising an actual, living, RL friend that you won’t weasel, etc. You get the pattern here.



I wrote a program that does exactly this by integrating with Toggl (for FREE) and have been using it for months: Beeminder + Toggl: beeminding minutes! :)


@mbork, Thanks for providing insight into your Emacs script. That saved me a lot of time going down the rabbit-hole to figure out that this wouldn’t be an appropriate option for my needs.

Thanks for your further thoughts, too. I think the whole point of using Beeminder or any similar technique is because the problem is “located somewhere between the keyboard and the chair” to begin with. The idea is to find techniques to manage such probelms. Certainly, pledges made to others or publicly is one form of commitment device. Not one to which I’m inclined, based on past experience, hence my use of Beeminder’s approach.


@adrienle: Thanks very much! I’ll check this out post-haste. I’m sorry that my previous search of the forums didn’t surface your post. Otherwise could have spared us this conversation :smile:

@adrienle: Indeed, your script works perfectly for my needs. Gracias!


The app which I use to track my piano practice is (unintentionally) very good for weasel-proof time-tracking when combined with Rescuetime (but possibly only on Android).
On JustPractice you enter ‘pieces’ into a database (which could easily be projects instead) and then choose how many minutes, and in which days, you want to work on the ‘pieces’ (or projects). You start the timer for one of the ‘pieces’ in the ‘practice’ section. The trick is, the Android app is a little buggy in that app has to stay on screen while the timer is running otherwise it crashes, so to use another app you have to save the session and switch out. With Beeminder you can then select the particular activity to Beemind from Rescuetime.
You can manually add time to JustPractice’s log, but it will only show up in Rescuetime (and therefore, Beeminder) if you leave the app open.
I find it a great system because it lets me see what practice I need to do, and stores all the data for future reviews.


Thanks for the suggestion! Funny how bugs can sometimes be features, isn’t
it? Reminds me of this XKCD comic https://xkcd.com/1172/.