How to merge Zwift and Garmin FIT files into one ride
If you ride Zwift while also recording on a Garmin watch or Edge, you end up with two FIT files of the same session — one with power and the virtual route, one with your best heart-rate and physiology data. Here is how to combine them into a single complete activity, for free, without installing anything.
Why you have two files in the first place
Zwift records power, cadence, speed, distance, elevation, and the in-game GPS route. Your Garmin records heart rate, temperature, and device-computed metrics like Training Effect, Body Battery, and Stamina — data that only counts when the activity comes from the watch itself. Recording on both gives you everything, but split across two files that upload as duplicate activities.
Step 1 — Export both FIT files
Grab the original .fit file from each platform: in Garmin Connect, open
the activity and choose Export Original; Zwift saves rides as
.fit files locally and on zwift.com. Full walkthrough:
how to export FIT files from
Garmin Connect and Zwift.
Step 2 — Merge them in your browser
- Open bikesync.ninja. There is no account and no upload — the merge runs locally in your browser.
- Drop the Garmin file into slot A. File A is the master: it keeps heart rate, temperature, Body Battery, Stamina, laps, calories, and the device identity.
- Drop the Zwift file into slot B. File B fills the gaps: power, cadence, speed, distance, elevation, and the virtual route.
- Leave Auto-align on. BikeSync finds the exact time offset between the recordings by cross-correlating signals both devices saw — cadence, heart rate, or power.
- Keep Randomize file ID enabled so the merged file uploads beside the original instead of being rejected as a duplicate.
- Hit merge and download the combined
.fitfile.
Step 3 — Upload the merged ride
The output is a standard FIT activity that uploads to Garmin Connect, Strava, and TrainingPeaks. Upload it wherever you train, then archive or delete the two partial activities so your feed and training load stay clean.
If the signals don't line up
Auto-align works when both devices recorded at least one shared signal. If your setup records, say, heart rate only on the Garmin and power only on Zwift with no overlap, BikeSync falls back to each file's clock time — and you can switch to Manual timing, nudge the offset in seconds, and merge again until the traces match.
Merge your ride now
Two FIT files in, one clean ride out. Free, no account, and your files never leave your browser.
Open BikeSync →