I think if you have an Android phone, you could do this with Tasker and AutoLocation. I haven't tried it myself and I'm not 100% sure how AutoLocation geofences work; but I plan to do it when I go back to school in September.
You would make a Tasker profile that requires two parameters to trigger:
1. Time between 4:00PM and 5:00PM (if you wanted to be at the coffee shop by 5PM)
2. Location at coffee shop (via AutoLocation).
Maybe have another profile for arriving between 5:00PM-7:00PM that gives you 0.5 points. Wouldn't want to say "what's the point!" just because you're late right?
And of course, the task would be to submit data to Beeminder. You could even do other things like make your phone go silent.
Edit: thinking about it, if you wanted to avoid nerd tools like Tasker, you could still do this with IFTTT. Using Foursquare as a trigger (or location if it's working as expected), have it fire an email to your Gmail, and in that email you would write the time sent. Then, with Gmail filters, filter those emails and add a label ("coffee shop") to the emails that arrived at the correct time. Then using another IFTTT recipe, for every new email in your Gmail with the label "coffee shop" as a trigger, add a datapoint to Beeminder.
Convoluted, but doesn't have a learning curve like Tasker I'd say!