I don't need to work from any specific location, but I find that working at coffee shops and in libraries makes me more productive and keeps me from trailing off into either tidying as a way of procrastinating, or getting into conversations instead of reading and writing.
Still, sometimes I need a little extra kick to get me where I need to be. I'm almost never late for appointments, although this method would work for that too, but as good as I am at being punctual when someone else is counting on me, I'm terrible (just utterly abysmal) at being somewhere on time if I'm the only one counting on me to be there. If I don't have to meet someone. I'll delay and delay until I've chipped away at a lot of work time. What to do?
One way is to have a Beeminder graph that requires that you get to a certain place by a certain time, and that automatically logs your datapoint (through an IFTTT recipe like this one: https://ifttt.com/recipes/416925-if-you-enter-an-area-add-1-to-your-beeminder-goal ) once you get there. I don't need to use this regularly enough, though.
My solution: When I want to commit to being somewhere at a given time, I let a few of my accountability partners know the day before. I tell them where I have to be, and by when. Then, they can text me whenever they want, and I have to send them my location.
To do that, I use IFTTT's "DO button" app. (Use this recipe to create your own: https://ifttt.com/recipes/226624-send-someone-your-location-via-email ) If they text me asking for my location, I have 5 minutes to tap the DO button and send them my location, or they collect the bounty. (I use a different amount each time; one that depends on how important it is that I be somewhere on time and how much incentive I want them to have to check in.) And I reciprocate for them. I've bought many a coffee thanks to my morning partner being late.
There are lots of variations on this. Sometimes I add that if they catch me leaving before a certain time, they get the bounty (first come, first served). At other times, I want to make sure I don't spend any extended time in a given place, and so they get a bounty if they catch me there at all. This is great for places that you want to be able to go for a very short time, but you know you have a tendency to linger once you get there. (Like maybe getting home and lingering too long before going out for a run.) It's unlikely they're going to catch you there if you're quick, but you don't want to take your chances and stick around too long!
You can sometimes get away with being a couple of minute late occasionally, which tends to be inconsequential, depending on what you're trying to be on time for, and other times you will have a high enough bounty that they'll be poised to grab the bounty as early as they possibly can and you know you'd better be there early!
Give it a try. But remember to make sure your friends never let you off the hook, and don't you let them off the hook either, or it'll break the spell!