BikeSync — merge Garmin and Zwift FIT files into one clean ride

BikeSync combines Garmin heart rate and physiology with Zwift power, cadence, GPS route, distance, and elevation into one upload-ready FIT file for Garmin Connect, Strava, and TrainingPeaks — entirely in your browser. No uploads, no account, free.

How it works

  1. Drop in both FIT files — the Garmin recording as file A (master), the Zwift ride as file B to fill the gaps.
  2. Merge: BikeSync decodes both files in your browser, finds the time offset by cross-correlating shared signals, and blends the data field by field.
  3. Download the merged .fit and upload it to Garmin Connect, Strava, or TrainingPeaks as one complete ride.

What gets combined?

The default Garmin + Zwift preset uses Garmin as the master timeline for heart rate, temperature, Body Battery, Stamina, laps, and calories, while Zwift fills power, cadence, route, GPS, distance, speed, altitude, and elevation. BikeSync recomputes ride summaries and preserves useful FIT messages where possible.

Frequently asked questions

How do I merge a Zwift ride with a Garmin recording of the same session?

Record the session on both devices as usual, then export both FIT files — Zwift saves activities as .fit, and Garmin Connect offers “Export Original” on the activity page. Drop the Garmin file into slot A and the Zwift file into slot B, merge, and download one combined ride.

Why does my ride show up twice on Strava, and how does merging fix it?

Recording one indoor session on both a Garmin and Zwift produces two overlapping activities — one with your best heart-rate and physiology data, one with power and the virtual route. Merging combines them into a single complete file, so you upload one activity instead of choosing which half of your data to keep.

Can I keep Garmin Training Effect and Body Battery but use Zwift power?

Yes — that is the default preset. The merged file keeps Garmin heart rate, temperature, Body Battery, Stamina, laps, calories, and device identity, and takes power, cadence, speed, distance, elevation, and the virtual route from Zwift.

How are the two FIT files aligned in time?

Auto-align cross-correlates signals recorded by both devices — cadence, heart rate, or power — to find the exact offset. If the files share no signal, BikeSync falls back to each file’s clock time, and you can always set the offset manually and merge again.

Does BikeSync only work with Garmin and Zwift?

The preset is tuned for Garmin + Zwift, but BikeSync accepts any two FIT activity files of the same ride — for example a bike computer plus another indoor training app. File A always wins for heart rate and physiology; file B fills power, cadence, and route.

Are my ride files uploaded to a server?

No. FIT decoding, alignment, merging, recomputing, and encoding run locally in your browser. Your Garmin and Zwift files are never sent anywhere.

Is BikeSync free?

Yes. No account, no subscription, and no file uploads — the entire merge runs in your browser. Donations are welcome but never required.

Guides