Beeminder Forum

Commitment to Be at Certain Places & Times

Is there a way that Beeminder could be used to penalize me if I am not at a certain place during certain times? I would need it enforced through GPS and time tracking.

Thanks for any help.

2 Likes

I’ve never done it, but I think you can use IFTTT to beemind being at certain locations, and you could play with Beeminder’s deadlines to make sure you get there by a certain time.

1 Like

Many years ago I did this with getting to work by a certain time. I used Tasker on my Android phone: it has a Beeminder integration and I set it up so it would send a point to a Beeminder goal if my phone detected that I was in a certain place within a certain time window. It worked OK although it occasionally didn’t register the location properly, and it was a bit finicky to get set up. I think these days there are nicer apps/ways of detecting that you are at a certain location.

4 Likes

@acer Do you happen to have an Android phone? If so, this is a little complicated to set up but it can be done with Tasker and IFTTT together. I’ll make you a video walkthrough of how to set it up if that would be helpful!

2 Likes

Yes, I am using an Android phone. A video would definitely be helpful.

Thanks so much!

1 Like

Thanks for the info. I want to do something like this but it seems beyond my technical skills. What do you think of me finding someone to do it for me? What would that involve?

“I think these days there are nicer apps/ways of detecting that you are at a certain location.”
Could you please tell me what these apps/ways are?

Thanks in advance for any assistance.

Sorry for the delay, I’ve had a lot going on. Just wanted to let you know that I haven’t forgotten! :slight_smile:

No worries! Thanks for helping me!

1 Like

This is turning out to be a bigger project than I expected! The basic setup isn’t all that complicated, so I’m going to write out how the process works and if there’s an area that you need more explanation for let me know! It’s totally okay if you need a walkthrough for the whole thing, it’s just taking longer than I expected to put that together.

I’m basing this setup on using Google Calendar for the times and GPS data for the location, but there are plenty of other ways to do this. Let me know if either of those doesn’t work for you! Also, throughout the process I refer to this whole thing as Right Place Right Time in one form or another, in case that’s confusing later on.

Basically, there are three main steps:

  1. Setup IFTTT applets for Google Calendar events and locations. Both the event and the location need to have something in common with the name. For example, if you want to track arriving at work on time, adding #work in the Google Calendar event title should work fine. (I can’t see why hashtags wouldn’t work here, but if for some reason they are an issue, just switch it to some other kind of code you’re not going to use accidentally, like rprtwork.)

    So for this one you’ll have two if this then that applets:

    • if (Google Calendar event from search for #work starts) then (webhooks message of #work to Tasker)
    • if (GPS location of work address) then (webhooks message of #work to Tasker)
  2. Setup four tasks and three profiles in Tasker:
    Tasks:

    1. Set variable %RIGHTPLACE to webhooks message
    2. Set variable %RIGHTTIME to webhooks message
    3. Send webhooks message to IFTTT
    4. Clear variables periodically

    Profiles:

    1. When webhooks message with location info received, trigger task 1.
    2. When webhooks message with event info received, trigger task 2.
    3. When %RIGHTPLACE = %RIGHTTIME send webhooks message to IFTTT
  3. In IFTTT, setup an applet that logs the incoming webhooks message from the third Profile step as a 1 to a Beeminder goal you’ve set up for this logging.

So, yeah. It’s not difficult exactly, though it definitely isn’t the straightforward thing, especially if you’re not familiar with Tasker or webhooks. Setup is definitely time consuming though, and the first step has to be repeated for each location you want to log (home, work, school, etc.).

Once it’s set up though, it should be pretty reliable about just logging all this automatically. So you can spend about an hour on setup and then not worry about it after that :slight_smile:

2 Likes

I solve the be-then-there problem this way: Whenever I find out I need to be somewhere, I plan the itinerary right away, figure out the stop-doing-everything-else-and-get-going time, and set an alarm in my cell phone calendar five minutes earlier. Essentially, I have transformed the problem from hurry-up-or-else into plan-ahead. Best of all, planning is easy to turn into a habit, so I don’t need Beeminder for that anymore.

I do realize that’s not quite what you are asking for. In case you want more ideas how to adapt this solution, maybe you could tell us an example story of your use case?

1 Like

Thanks, you’re awesome! I’m definitely going to try this and let you know how it goes.

1 Like

No worries! Some parts, especially the Tasker and Webhooks setup, can definitely be confusing. Once you get it set up though, it should be possible to adjust this any number of ways since it gives countless ways to extend IFTTT beyond one “this” event.

So, for example, it could be set up in such a way that “if I leave the gym before reaching my Fitbit step goal, charge me on Beeminder.” Or, for that matter, “if I leave the gym before reaching my Fitbit step goal, charge me on Beeminder AND post to Facebook telling everyone I slacked off today.”

You’re not limited to two variables either, and you can set up conditional things too. You could set up a goal to walk 10,000 steps a day as long as the weather was good and you got more than eight hours of sleep. Or you could even merge goals, like committing to studying on DuoLingo everyday except the day you go to a weekly language meetup, and on that day it would log your location.

By using Tasker and webhooks, the options are truly unlimited. The most important part is to clearly plan and write out what you want the setup to do before you get started, then work on setting up one part at a time. If you do that, pretty much anything is possible!

1 Like