Convert Google Maps Timeline to GPX track files

What does this program do?

The program takes your exported Google Maps timeline data, exported from your phone in JSON format, as a .json file, and converts it to GPX tracks, which can be readily imported into navigation software.

Why is it needed?

It used to be the case that you could export your Google Maps timeline journeys from Google Maps on any browser as a KML file and then convert this using available tools to GPX track files.

For privacy reasons and to offload data storage, Google no longer stores location history on their servers. This means Google Maps timeline is now tied solely to individual devices rather than Google accounts. This reduces the risk of unauthorised access, since the data is no longer centralised on Google’s servers.

By moving data to local device storage (with optional encrypted backups to Google servers), Google avoids the ongoing costs and responsibilities of maintaining indefinite cloud storage for users’ full travel histories.

Download the program

Click the approporiate adjacent link to download the compressed file and extract. Then, simply double click to run the program. No installation is necessary.

Security warnings

These are normal for independently published apps when the author hasn't paid for certification. With enough flawless executions over multiple clients, these should go away. In any case, you should only be troubled the first time you run the software.

Windows

You may see a SmartScreen warning the first time you run the program.

When Windows shows the blue Windows protected your PC screen, click More info / Run anyway.

Apple Mac

MacOS will show a warning because the app is not signed with an Apple Developer ID (this is expected and safe). Simply right-click (or Ctrl-click) the app, choose Open, then click Open in the dialog that appears. After this one-time step the app will open normally forever.

The program is completely safe. Feel free to run any virus scan if you have any concerns.

Sorry, but I'm not prepared to pay an annual fee to register the app with Microsoft or Apple.

Export your Google Maps Timeline data

Start by downloading your Google Maps Timeline data in JSON format in one of the following ways:

  • From Android phones
    • Go to your phone’s settings.
    • Find Location Services → Timeline.
    • Select Export Timeline data.
    • Save the file (usually Timeline.json) to your phone and then send it to your PC by whichever means you prefer.
  • From iPhones
    • Open Google Maps.
    • Tap your profile icon.
    • Select Your timeline.
    • Tap the menu icon (the three dots).
    • Select Location and privacy settings.
    • Select Export Timeline data.
    • Save the file (usually Timeline.json) to your phone and then send it to your PC by whichever means you prefer.

Open the program and go to the Convert tab…

  • Select your Timeline.json file (or whichever filename you used in the previous step) for the Input file.
  • Choose the Output folder where GPX files should be exported.
  • Enter date range in YYYY-MM-DD format, or use the shortcuts below for common ranges. Both dates are inclusive — the end date includes all activity up to 23:59:59 on that day. Use All dates for your complete timeline history.
  • Click Convert to GPX files.

That's it! The tracks will be exported to your selected folder, split by date and named in the format yyyy-mm-dd.gpx

Notes

Information correct at time of publishing.

This program was developed from an original Python script (see the About tab for details) into a script which produced valid GPX files for import into Garmin BaseCamp. Basecamp is very particular about GPX attributes, and since the GPX files produced by the original script didn't include these attributes, the resulting GPX files did not import successfully into BaseCamp. I also took the opportunity to add a name tag to the GPX tracks, so this would be used when imported. I've deliberately avoided naming the tracks yyyy-mm-dd (ISO date format), because these might already exist in someone's collection and some systems (including Garmin BaseCamp) require unique track names in the context of a whole collection, so tracks are named yyyy-mm-dd - Google Maps Timeline to avoid this issue.

Remember that your timeline for a given day will include any recorded movement you make and not just an individual journey. It will include journeys on any form of transport, but also walking activities. If you are looking at capturing a GPX track to convert to a route in navigation software (such as Garmin BaseCamp, MyRoute-app, etc.), consider this when you view the imported track. You may want to make a copy of the track and removing any parts which don't relate to the particular journey you are interested in before converting it to a route.

Quite reasonably, The Google Maps timeline doesn't record location as frequently as a dedicated GPS unit does - in order not to drain the phone's battery. This means that while the points on a track will normally be near accurate (but look out for the odd rogue point nowhere near your route!), the lines between the points will be straight and won't contour to natural features such as the natural bends in roads. Google Maps used to allow you to review timeline tracks and snap them to roads, but that feature has been removed. However, if you are intent on replicating this functionality, route planning software can come to the rescue. See below for how to do this using Garmin BaseCamp.

Does Google Maps timeline provide a detailed enough track log?

Google Maps timeline (powered by your device's Location History) records and plots location points on an adaptive basis, rather than at a fixed interval. This means the frequency varies depending on your activity, device settings, and environmental factors to balance accuracy with battery life and performance. Here's a breakdown:

Key Factors Influencing Frequency

Activity Level

During high-movement scenarios like navigation in Google Maps, it can record multiple times per minute (e.g., every 15 seconds if actively using driving mode).

For general daily use (e.g., walking or stationary), it typically samples every 1–5 minutes when moving, or less frequently (up to every 10–15 minutes) when idle.

Device and Connectivity

Relies on GPS, Wi-Fi, Bluetooth, and cell towers. GPS-enabled recording is more frequent and precise (e.g., every 30–60 seconds during motion), while Wi-Fi/cell-based falls back to coarser updates (e.g., every few minutes or when near known networks).

Background recording continues even when apps are closed, but it batches and uploads data periodically (not real-time for every point).

Battery and Motion Detection

Sampling increases when the device detects movement (e.g., via accelerometer) but throttles to conserve power if stationary or low on battery.

How Points Are Plotted

Raw data is individual latitude/longitude "pings" timestamped to the second. Timeline interpolates these into smooth routes: Straight lines connect sparse points, while dense clusters (e.g., during a drive) form detailed paths. You can export raw data via Google Takeout (as JSON) to see exact timestamps—users often report 100–500 points per hour of movement, but this isn't guaranteed.

Tips for More Frequent/Detailed Recording

  • Enable high-accuracy location mode in your device settings (Settings > Location > Google/Improve Location Accuracy), which uses Wi-Fi, mobile networks, and sensors in addition to GPS for the best results.
  • Ensure Wi-Fi and Bluetooth scanning are on in Location Services for further assistance.
  • Use Google Maps navigation or a GPS-logging app (e.g., GPS Logger) in the background to boost sampling rates.
  • Ensure Location History is on: Open Google Maps > Profile > Your Timeline > Settings > Location & Privacy > Timeline is on.

This adaptive approach ensures comprehensive tracking without constant drain, but it may lead to gaps in low-signal areas (e.g., indoors or rural spots). For precise needs like mileage logging, pair it with dedicated apps, as Timeline isn't optimized for that.

Extra hints for Garmin BaseCamp users

Importing GPX tracks into Garmin BaseCamp

  • Select an existing list or create a new one.
  • Either drag and drop the GPX files into your list or use the File | Import into… menu.
  • Each day appears as its own track with the correct date and the name yyyy-mm-dd - Google Maps Timeline.

Creating a route from an imported track

An imported GPX track can be converted to a route. See my video at https://www.youtube.com/watch?v=E5unLl9JlcM for full details on how to do this. Essentially, when you create a route and use an activity profile other than direct, BaseCamp will join the points on the track along a road, but instead of creating a straight line between them (which is how the imported GPX track will appear), the software will snap to the road or roads between the two points according to your activity profile's rules. This means you can use any historic journey imported from Google Maps timeline as the basis for a future route, but take careful note of the positioning of points on the route. The video explains the importance of this.

Making sure your track locks to the road

This can be achieved by first following the above instructions to create a route from a track and then converting the created route back to a track. While this may sound counterintuitive, what this means is that the conversion to a route snaps the track to roads to create the route and once it exists as a route and you convert that route to a track, BaseCamp will use however many points are necessary to accurately recreate the path of that route. The only downside to this is the created track will not retain any date and time stamps from your original track. Your original imported track does contain the dates and times of each point on the track, so the timing should be accurate when you review the track details, though the distance will not be accurate, given the off-road straight lines between points on the track. If you must know the distance, the conversion to a route and back to a track will give you a more accurate distance.

About

Based on original script by Makeshit: https://github.com/Makeshit/Timeline-GPX-Exporter

Made functional for Garmin BaseCamp and with additional tweaks by John Chivers.

Beautiful native Windows GUI, tabs, help system, progress bar, and packaging by Grok (xAI).

Google Maps Timeline to GPX screen shot
Google Maps Timeline to GPX screen shot

Download


Last updated: 30 November 2025
22,515 KB zipped / 22,906 KB unzipped

To verify the downloaded zip file is 100% intact:

1. Open PowerShell
2. Run this command (you can copy-paste):
certutil -hashfile "Google Timeline to GPX.zip" SHA256
3. The 64-character hash must match the one below:
30F2DD5FD1B6D779BE1C756D152BE960BBCEF4A9BBE13D82DCA5C3FBFB77D109



Last updated: 1 December 2025
20,646 KB zipped / 21,326 KB unzipped

To verify the downloaded zip file is 100% intact:

1. Open Terminal
2. Run this command (you can copy-paste):
shasum -a 256 "Google Timeline to GPX (for Mac).zip"
3. The 64-character hash must match the one below:
CC7482A18129FE47D85DC8D193A87D34CDB8BA9B1CC37AF013A065682B04250F


This tool is completely free and will always remain so.

If it saves you time or helps you relive great journeys, and you’d like to say thanks,
I’d gratefully accept a coffee via PayPal.

John Chivers