Your data never leaves your browser

Export Apple Health Workouts to Strava & Garmin

Turn Apple Watch workouts into TCX files with heart rate for Strava, Garmin Connect, and TrainingPeaks. Free, private, and runs entirely in your browser, nothing is uploaded.

Drop your export.xml here, or click to choose

Everything is processed locally. Nothing is uploaded.

100% client-side. Your export.xml is read with the browser File API, parsed in 8 MB chunks, and TCX files are built on your device. No server, no account, no tracking of your health data.

Have outdoor runs or rides with a GPS map?

GPS routes are not stored in export.xml. In your export ZIP, look in the workout-routes/ folder, each outdoor workout has its own .gpx file (like route_2024-01-01_8.00am.gpx). Those files already contain latitude/longitude, so you can upload them straight to Strava or Garmin with no conversion.

This tool handles everything else, the workouts that have no route file: indoor cycling, treadmill runs, pool swims, strength & gym sessions, yoga, HIIT. It builds a TCX carrying their time, heart rate, calories, and distance.

How to use it

  1. 1

    On your iPhone, open the Health app, then your profile photo, then Export All Health Data. Save the ZIP and transfer it to your computer.

  2. 2

    Unzip it. You'll get an apple_health_export folder containing export.xml (and, for outdoor activities, a workout-routes/ folder of .gpx files).

  3. 3

    Drop export.xml into the box above. The tool streams the file and lists every workout it finds.

  4. 4

    Tick the workouts you want and click Download selected (or use the per-row button). Each becomes a .tcx file.

  5. 5

    In Strava use Upload, then File; in Garmin Connect use Import Data; in TrainingPeaks use Upload. Select the TCX and you're done.

Moving Apple Watch workouts into Strava, Garmin, and TrainingPeaks

The Apple Watch is a superb activity tracker, but Apple Health keeps your workouts in its own walled garden. If you're switching to a Garmin, coaching in TrainingPeaks, or you simply want your full training history on Strava, you need a way to get those sessions out. Apple's Export All Health Data gives you a ZIP with an export.xml file, but that file is raw HealthKit XML, not something Strava or Garmin can read. This tool bridges that gap entirely in your browser.

What the tool actually does

It reads export.xml in 8 MB chunks (these files are routinely 100 MB to over 1 GB, so loading the whole thing at once would crash the tab). As it streams, it collects two things: every <Workout> block, its activity type, start and end time, duration, distance, and active energy, plus every HKQuantityTypeIdentifierHeartRate sample. For each workout you export, it pulls the heart-rate samples that fall inside that workout's time window and writes them into the file. If a workout's own attributes are missing a distance total, it sums the matching DistanceWalkingRunning or DistanceCycling records inside the same window instead.

Why TCX, not GPX

GPX is a GPS-track format: its whole job is to store latitude/longitude points. TCX (Garmin's Training Center XML) is built for workouts, it carries laps, total time, distance, calories, and, crucially, heart-rate samples, even when there's no GPS trace. Apple's export.xml stores workout summaries and heart-rate readings but not coordinates, so TCX is the format that preserves the most of your data. Strava, Garmin Connect, and TrainingPeaks all import TCX natively, which is why this tool produces TCX rather than an empty GPX.

A note on GPS routes

If you did an outdoor run or ride, its GPS route isn't in export.xml at all, Apple stores it separately in the workout-routes/ folder of your export ZIP as a ready-to-use .gpx file. You can upload those directly to Strava or Garmin without any conversion. This tool deliberately focuses on the large category of workouts that have no route: indoor bike sessions, treadmill runs, pool and open-water swims logged without GPS, strength training, yoga, HIIT, and gym classes. For those, a TCX with time, heart rate, calories, and distance is exactly what you want.

How the generated TCX is built

Each file is a valid TrainingCenterDatabase document. The workout's HKWorkoutActivityType is mapped to a TCX Sport (Running, Biking, or Other), and the session becomes one Activity with a single Lap holding TotalTimeSeconds, DistanceMeters, and Calories. Inside the lap, a Track lists each in-window heart-rate reading as a Trackpoint with a Time and a HeartRateBpm value. When Strava or Garmin ingest the file, that's what produces your heart-rate graph and your average and max HR.

Reading the results table

Every workout in your export is listed with its activity, date, duration, distance, energy burned, and how many heart-rate points were matched to it. A workout showing 0 HR points simply means Apple didn't log heart rate for that session (common for very short or manually-added workouts), the TCX is still valid and will import with its time, distance, and calories. Everything you see is computed from your real data; nothing is estimated or faked.

Frequently asked questions

How do I export Apple Health workouts to Strava?

Export your data from the iPhone Health app (Profile, then Export All Health Data), unzip it, and load export.xml into this tool. It lists every workout; select the ones you want and download each as a TCX file. In Strava, use Upload Activity, then File and choose the TCX. Strava reads TCX time, distance, calories, and heart-rate data.

Why TCX instead of GPX?

GPX is built for GPS tracks (latitude/longitude points). TCX is designed for workouts and carries heart rate, calories, distance, and lap data even when there is no GPS route. Apple's export.xml stores workout summaries and heart-rate samples but not coordinates, so TCX preserves more of your data. Strava, Garmin Connect, and TrainingPeaks all accept TCX.

Where are my GPS routes for outdoor runs and rides?

GPS routes are not in export.xml. They live in the export ZIP under workout-routes/ as individual .gpx files. You can upload those .gpx files to Strava or Garmin directly, no conversion needed. This tool is for the many workouts that have no route file: indoor rides, treadmill runs, pool swims, strength, and gym sessions.

Is my health data uploaded anywhere?

No. The entire tool runs in your browser using JavaScript. Your export.xml is read locally with the File API, parsed in chunks, and the TCX files are generated on your device. Nothing is sent to any server.

Will my heart rate show up in Strava or Garmin?

Yes. The tool matches every heart-rate sample that falls inside each workout's start and end time and writes them as Trackpoints with HeartRateBpm in the TCX. Strava and Garmin display the heart-rate graph and average/max HR from that data.

My export.xml is huge, will this crash my browser?

No. Apple Health exports are often 100 MB to over 1 GB. Instead of loading the whole file at once, this tool streams it in 8 MB chunks and extracts only workouts and heart-rate records, so memory stays low and a progress bar shows how far along it is.

More free tools

Want deeper analysis?

Get trends, charts, and AI insights across every metric in your Apple Health export: steps, sleep, HRV, workouts, and more.