GPX Converter
☰

100% private — files never leave your browser

GPX to TCX Converter

Give a bare GPX track the structure of an activity: a lap, a summary, and the training elements Strava and coaching software expect. The conversion runs entirely in your browser — and if your GPX has no timestamps, the tool will tell you, because that case has an honest limitation you should know about before you convert.

or click to browse — the output will be TCX; format is detected automatically

How to convert to TCX

  1. 1

    Drop your file

    Drag a FIT, GPX or TCX file onto the box above, or click it to browse. The source format is detected automatically from the file contents.

  2. 2

    Wait a beat

    The conversion runs in a background worker on your device. Typical activities finish in well under a second; even 50 MB files process without freezing the page.

  3. 3

    Check the preview

    Distance, duration, ascent and average heart rate are shown alongside a map of the converted track, so you can confirm nothing was lost before downloading.

  4. 4

    Download

    Click the download button and the .tcx file is saved straight from memory. Nothing was uploaded, so there is nothing to clean up.

What is a GPX file?

GPX (GPS Exchange Format) is the universal, open XML format for GPS data, standardized by TopoGrafix and supported by essentially every mapping application on earth — Strava, Google Earth, Komoot, RideWithGPS, Garmin BaseCamp, QGIS and hundreds of others. A GPX file stores waypoints, routes and tracks as latitude/longitude pairs, optionally with elevation and timestamps, and Garmin's TrackPointExtension carries heart rate, cadence and power alongside each point.

Because GPX is plain text XML, it is readable, diffable, scriptable and trivially editable — which makes it the lingua franca when a track needs to move between ecosystems. The cost is size: the same activity as GPX is typically 5-10× larger than FIT, and consumer-oriented apps sometimes ignore the extension channels. For archiving, editing and cross-platform sharing, though, GPX remains the safest long-term bet.

What is a TCX file?

TCX (Training Center XML) is Garmin's older training format, introduced with Garmin Training Center in the mid-2000s and later extended by Strava and others. Like GPX it is XML, but TCX is structured around workouts rather than raw tracks: activities contain laps, laps contain tracks, and the schema natively understands training concepts — total time, distance, calories, heart rate zones and cadence — that plain GPX leaves to extensions.

Today TCX sits between two worlds: modern Garmin devices write FIT, while Strava's uploader still accepts TCX as a first-class citizen and many legacy coaching tools (TrainingPeaks imports, older Polar flows, Golden Cheetah archives) expect it. Converting into or out of TCX is usually about keeping lap structure and summary data intact while crossing between those generations of software.

Why convert GPX to TCX?

A GPX track is geometry: a line across the earth, optionally with elevation and time. An activity — the thing Strava, TrainingPeaks and every coaching platform actually want — has a shape: total time, distance, laps, averages. TCX is structured around that shape; GPX is not. Converting wraps the track in the skeleton TCX expects: one activity, one lap, summary totals computed from the points that actually exist.

The usual trigger is software that wants TCX specifically. Legacy coaching tools and some club workflows still expect it, and while Strava happily accepts a GPX that carries timestamps, a TCX with native heart rate, cadence and lap elements imports more predictably into the training-generation software that was built around those elements from the start.

The timestamp problem — read this before converting

Here is the real pain point on this route. Strava rejects activity files whose track points carry no timestamps — it computes pace, speed and segments from time, and with no time there is nothing to compute from. A hand-drawn or planned route exported as GPX (from Komoot, RideWithGPS, Strava's route builder and their kin) usually has no timestamps at all: nobody rode it yet, so nothing ever recorded a clock.

Converting to TCX does not fix that, and this tool will not pretend otherwise. The TCX skeleton supplies a lap and summary totals, but fabricating per-point timestamps would mean inventing an activity that never happened — so a timestamp-less GPX becomes a timestamp-less TCX, and Strava will decline it just the same. If your GPX came from a device — a watch, a phone app, a bike computer — it has timestamps and everything works. If it came from a route planner, no honest converter can make it uploadable as a ride.

Your files never leave this browser

This tool — like every tool on this site — runs entirely as client-side JavaScript. The file you drop is parsed in a Web Worker on your own device, converted in memory and handed straight back to you as a download. There is no upload endpoint, no server-side conversion service and no temporary storage: you can watch the network tab in your browser's developer tools and confirm that no file bytes are transmitted anywhere.

That matters more with fitness data than with most files. A GPS track is a precise log of where you were, at what time, and how hard your heart was working — home address, training habits, favorite routes and race schedule all in one file. Keeping conversion on-device means third-party converters never get a copy of that log, and the tool keeps working identically on a plane, in a basement, or anywhere else without signal.

Frequently asked questions

Not if the route was drawn rather than recorded. Strava requires timestamps on track points, and a planned GPX from Komoot, RideWithGPS or a similar planner has none — converting to TCX adds structure but not time, so Strava still declines it. A device-recorded GPX converts and uploads fine. For planned routes, Strava's own route features are the honest path.

Related tools