Guide
How to Export Google Maps Timeline to Excel or CSV
If you need your Google Maps Timeline (also called Location History) as a spreadsheet — for a mileage log, a client billing report, or just to analyze your own travel patterns — the raw file Google gives you isn't usable on its own. It's a deeply nested JSON file, not a table.
This guide covers both ways to get that file out of Google, then the part most guides skip: "Timeline export" means three different file formats, they don't contain the same information, and two of the differences will silently corrupt your spreadsheet if you don't know about them.
Step 1: Get your raw Timeline file from Google
Which method you use depends on whether you're getting a phone's recent history or an account's full history.
Method A — Direct Export (recommended, mobile only)
In 2024, Google moved Timeline storage from your Google Account to your device. This is now the only way to get your most recent trips.
- Android: Open Settings → Location → Location services → Timeline → Export Timeline data. This saves a file named
Timeline.json. - iOS: Open the Google Maps app → your profile picture → Settings → Location & Privacy → find the Timeline export option and Save to Files.
Method B — Google Takeout (legacy, full history)
Note: If your Timeline has already migrated to on-device storage, Takeout may no longer include your most recent months. Use Method A for recent trips and Takeout for your historical archive.
- Go to takeout.google.com and sign in.
- Deselect everything, then select only Location History (Timeline).
- Choose your export format and request the archive — Google will email you a download link, usually within a few minutes to a few hours.
- Download and unzip the archive; you'll find your Timeline data as JSON inside.
Step 2: Know which of the three files you actually got
"Timeline export" describes three different file formats, and most guides treat them as one. They carry different information, which decides what your spreadsheet can contain before you convert anything. The figures below come from parsing real exports of each kind.
| What you exported | Shape of the file | Street addresses | Place names |
|---|---|---|---|
| Google Takeout (ZIP) | JSON under timelineObjects, coordinates as integers (latitudeE7) | Yes — nearly every stop | Yes — nearly every stop |
| Android on-device | Timeline.json, segments under semanticSegments | None | None |
| iPhone on-device | A bare JSON array, coordinates as geo: URIs, numbers stored as text | None | About half of stops |
The practical consequence: only a Takeout archive contains street addresses. An on-device export identifies a stop by coordinates, and on Android usually by nothing more than a category — "restaurant", "workplace" — with no name attached. An iPhone export names roughly half its stops, and binds a place to the end of a trip only, so departure points come back blank.
If your log needs addresses, request a Takeout archive as well and drop both files in at once — a recent phone export for the last few months, Takeout for everything before it. Failing that, coordinates can be resolved into addresses afterwards.
Three traps if you convert the file yourself
If you're writing your own script rather than using a converter, these are the ones that quietly produce a wrong spreadsheet rather than an error message.
1. The breadcrumb trail will double your mileage
Alongside the trips, the file carries raw location traces (timelinePath) — the GPS breadcrumbs recorded along the way. They look like extra journeys, and they are not: measured against a real export, they retrace the same ground as the trips themselves, 8 202 km of 8 305. Add both and you report roughly twice the distance you drove. Count the trips; leave the traces out.
2. Coordinates are stored a different way in each format
Takeout stores latitude and longitude as integers scaled by ten million, and some archives wrap them past the 32-bit boundary, which turns a positive longitude negative and lands the stop on the wrong continent. Android writes them as a string like "50.62°, 3.79°", degree sign included. iPhone uses a geo: URI and stores numbers as text, so a naive parser gets a string where it expects a figure.
3. Matching a stop to a trip by distance gets it wrong
To name where a trip started and ended, you have to pair it with the visits around it. Pairing on coordinates alone matches any visit to the same café, whenever it happened — during testing that paired a November trip with a visit 316 days later. Read the timeline in order instead, and treat the next trip as a wall: past it, the traveller has moved on.
Step 3: Convert the JSON into a spreadsheet
Whichever method you used, you now have a JSON file (or a ZIP containing one) — not something you can open meaningfully in Excel. This is where Time-mile comes in: it reads all three formats, parses the file entirely in your browser, and turns every trip into a row with columns for date, activity type, distance, duration, and start/end location.
- Open the app and drag in your
Timeline.jsonfile or the Takeout archive,.zipor.tgz. - Filter by date range or activity type if you only need part of the history.
- Export to CSV (opens directly in Excel or Google Sheets), PDF, or JSON.
Nothing is uploaded anywhere — the whole conversion happens locally in your browser, which matters if the file contains months or years of your location history.
Opening the CSV in Excel without mangling it
A CSV is plain text, and Excel makes assumptions about it that depend on your regional settings. Two are worth knowing:
- Accented place names turn into
éandè. Excel has read the file as your local code page instead of UTF-8. Rather than double-clicking the file, open Excel first and use Data → From Text/CSV, which lets you set the encoding to UTF-8. Google Sheets gets this right on import and needs no special handling. - Distances lose their decimals, or land in one column. On a machine set to a language that uses the comma as a decimal separator, Excel reads
12.4as text and12,4as two fields. The same From Text/CSV dialog lets you set the delimiter and the decimal mark explicitly.
If you'd rather not deal with either, export to PDF for a log you only need to file and read, and keep the CSV for the numbers you intend to sum.
Try it with your own Timeline file
Free for up to 10 rows — no account required to preview your data.
Launch Time-mileFrequently asked questions
How do I export my Google Maps Timeline to Excel?
First get the raw Timeline file out of Google, either with the on-device Direct Export or via Google Takeout. That file is nested JSON, so open it in Time-mile, which parses it in your browser into rows and lets you export a CSV that opens directly in Excel or Google Sheets.
Can I open my Google Timeline JSON file directly in Excel?
Not meaningfully. The raw file Google gives you is a deeply nested JSON file, not a table, so it will not open as a usable spreadsheet. You first need to convert it into rows with columns for date, activity type, distance, duration and location.
What is the difference between Direct Export and Google Takeout?
Direct Export is the on-device method for your most recent trips, since in 2024 Google moved Timeline storage from your Google Account to your device. Google Takeout is the legacy method for your full historical archive, but it may no longer include your most recent months. Use Direct Export for recent trips and Takeout for history.
Where is the Export Timeline data option on Android?
On Android, open Settings, then Location, then Location services, then Timeline, then Export Timeline data. This saves a file named Timeline.json.
Is my location history uploaded anywhere when I convert it?
No. Time-mile parses the file entirely in your browser, so the whole conversion happens locally and nothing is uploaded anywhere, which matters if the file contains months or years of your location history.
Why does my Timeline export have no street addresses?
Because you exported from the phone rather than from Google Takeout. Only a Takeout archive carries a postal address for its stops. An on-device export identifies a stop by coordinates: on Android usually with no name at all, just a category such as "restaurant" or "workplace", and on iPhone with a name on roughly half of them. Request a Takeout archive as well if your log needs addresses, or resolve the coordinates afterwards.
Why is the total distance in my Timeline file about twice what I drove?
The file carries raw GPS breadcrumbs alongside the trips, stored as timelinePath. They retrace the same ground as the trips themselves, so counting both roughly doubles the total — measured on a real export, 8 202 km of 8 305 overlapped. Count the trip segments and leave the raw traces out.
Why do accented place names look wrong when I open the CSV in Excel?
Excel has read the file using your local code page instead of UTF-8. Instead of double-clicking the file, open Excel first and use Data → From Text/CSV, which lets you set the encoding to UTF-8 and choose the delimiter and decimal separator. Google Sheets handles this correctly on import.