Get Back in Time

Fork me on GitHub

Get Back in Time is an app for the Pebble smart watch. You can use it to find your way back from your hiking trip, locate your parked car or just see how far you have traveled from a certain point. Just long-press SELECT on your Pebble and your target is stored.

The app allows you to store any amount of locations, which are pushed into your personal Pebble Timeline. You can browse your Timeline to find a location you wish to return to. A menu of 20 most recent locations are also available in your watch.

Your Pebble will show you the heading and distance to your target. It uses the compass to show you which way to go and colors to indicate whether you're approaching your target or moving away from it. The target is stored so that you can use other Pebble apps in the mean time and when you return to Get Back in Time you will see up-to-date heading and distance to your target.

The app works even if your Pebble doesn't yet have the Timeline functionality.


Click or tap the items below if they correspond to your situation.

If you encounter other issues or the advice above doesn't help, send mail to

Advanced usage

You can set targets also using the form below or via an API. Just POST a JSON object with position element in the root level, and a new pin will be pushed to your Timeline. The object will be pushed to the Pebble Timeline. If you insert a pin element (see Timeline Pin Structure) to your JSON object, it will be passed on as is. Otherwise a new pin with some basic properties is created automatically. Open Watch App action is added to all pins.

Your personal tokens

You need an account token in order to send locations to the server. In order to push pins to Pebble's timeline, you also need a timeline token. You can get your personal tokens from the watch app's configuration page. Open the Pebble app in your phone, select SETTINGS (or the gear icon) for Get Back in Time app and scroll to the end of the configuration screen.

Example JSON

{ // insert your personal timeline token here "timelineToken": "", "time": "2015-04-29T16:07:22Z", "position": { "coords": { "latitude": 60.9, "longitude": 24.1 } }, "pin": { // you can specify an id but it will be overridden // "id": "1", "time": "2015-04-29T16:07:22Z", "layout": { "type": "genericPin", "tinyIcon": "system://images/NOTIFICATION_FLAG", "title": "Your car is here", "subtitle": "Get Back in Time", "body": "Thank's for using Amazing Parking App." }, "createNotification": { "layout": { "type": "genericNotification", "tinyIcon": "system://images/NOTIFICATION_FLAG", "title": "Car location stored!", "body": "This pin was sent from Amazing Parking App." } }, "reminders": [ { "time": "2015-04-29T18:07:22Z", "layout": { "type": "genericReminder", "tinyIcon": "system://images/TIMELINE_CALENDAR", "title": "It's time to get back!" } } ] } }

Minimal JSON

{ "position": { "coords": { "latitude": 60.9, "longitude": 24.1 } }, }

Command line example

export USERTOKEN=123456789 export TIMELINETOKEN=123456789ABCDEF cat > test.json <<EOF { "timelineToken": "$TIMELINETOKEN", "time": "2015-04-29T16:07:22Z", "position": { "coords": { "latitude": 12.345, "longitude": 123.456 } }, "pin": { "layout": { "type": "genericPin", "tinyIcon": "system://images/NOTIFICATION_FLAG", "title": "CLI test", "subtitle": "Get Back in Time", "body": "Testing the API from command line." } } } EOF curl -X POST$USERTOKEN/place/new \ --header "Content-Type: application/json" \ -d @test.json

Example API call with JavaScript

// place your own account token here! var userToken = ''; // add your timeline token here var timelineToken = ''; var url = '' + userToken + '/place/new'; var req = new XMLHttpRequest(); req.onload = function() { console.log(this.responseText); };"POST", url, true); req.setRequestHeader('Content-Type', 'application/json'); function success(position) { var obj = { "position": { "coords": { "latitude": position.coords.latitude, "longitude": position.coords.longitude } }, "timelineToken": timelineToken }; req.send(JSON.stringify(obj)); } window.navigator.geolocation.getCurrentPosition(success);

API usage restrictions

The API currently runs on a low cost Heroku instance and has "best effort" service level. Please test your implementations on your own environment in order to minimize the load to the API server. If you want a better service level or if you plan to automatically push more than a dozen locations per day to your timeline, consider implementing your own API server. You can start by cloning the code on Github.

Show your support

The Get Back in Time app is provided free of charge. I get no compensation for the development of the app. In addition, I'm paying Heroku $84 per year to keep the server running 24/7.

If you like the functionality of the app and would like to show your support and contribute to the server costs, you have three choices:

Subsrcibe for $1 per year

Contribute one dollar. This is a yearly subscription. You can cancel any time you like - and still continue to use the service for free! The payment is strictly voluntary.

If 84 users pay $1 each year, the current server costs are covered. All additional funds are used for additional capacity to the server platform - e.g. faster response times and more data storage.

Donate any amount

Don't want to pay a recurring fee? $1 is too much or not enough? Pick any amount you like. All funds are used for additional capacity to the server platform - e.g. faster response times and more data storage.

Sponsor the developer

If you like the app (or any of my other Pebble apps) and would like to encourage me to maintain them and create new apps, you can send a small contribution to my personal Paypal account (choose the option I'm sending money to family or friends).

I will use the money for personal recreation, take my family out for a dinner, support cool projects on Kickstarter or something similar. But most importantly, your kindness will fill my heart with joy and increase my enthusiasm to create useful and fun apps for the great Pebble user community.


Icon made by Daniel Bruce from is licensed under CC BY 3.0

When you set a target using your Pebble (long press any button on the right), the coordinates are converted to place names using Gisgraphy.