bikesync.ninja OPEN THE MERGER →
Guide

How to merge FIT files into one activity

A FIT file is the activity format used by Garmin, Wahoo, Zwift, and most other cycling devices and apps. When one ride ends up in two FIT files, you usually want a single activity to upload. This guide explains the two different things people mean by "merging FIT files" and how to do either one in your browser for free.

Two kinds of merge

1. Two recordings of the same ride

You recorded one session on two devices at the same time — a watch and a head unit, a bike computer and an indoor app, a Garmin and Zwift. Each file has data the other lacks: heart rate and physiology on one side, power, cadence, and the route on the other. Merging means overlaying them on one timeline and taking the best of each field. This is BikeSync's default mode.

2. Rides recorded one after the other

Your device stopped mid-ride and you started a new recording, or you want a warm-up file and the main ride logged as one activity. Merging here means joining the files end to end into one longer timeline. BikeSync does this too — switch the mode to "One after the other", or let it pick that mode automatically when the two files don't overlap in time. See joining files end to end below.

Merge two FIT files of the same ride

  1. Open bikesync.ninja. There is no account and nothing to install; the merge runs locally in your browser.
  2. Drop the file that covers the whole ride into slot A. File A is the master: its timeline, laps, calories, and device identity define the output.
  3. Drop the other file into slot B. File B fills in whatever A is missing.
  4. Keep the mode on Same ride, two devices. BikeSync then picks a profile by itself: Garmin + Zwift when one file is a virtual ride, dual-recorder when both are real devices on the same road.
  5. Leave Auto-align on. BikeSync finds the exact time offset between the two recordings by cross-correlating a signal both devices saw — cadence, heart rate, or power — so a few seconds of clock drift between devices doesn't matter.
  6. Keep Randomize file ID enabled so Garmin Connect and Strava accept the merged file next to the originals instead of rejecting it as a duplicate.
  7. Merge, then download the combined .fit.

What happens to each field

With the dual-recorder preset every field stays with file A, and file B is used only where A recorded nothing — for example if A's power meter dropped out for two minutes, B's power fills the gap. With the Garmin + Zwift preset, heart rate and temperature come from A, while power, cadence, speed, distance, elevation, and the route come from B. Either way you can override the source of any field by hand before merging.

After merging, BikeSync recomputes the ride summaries — averages, maximums, totals, normalized power — so the numbers on Garmin Connect, Strava, and TrainingPeaks match the merged data rather than one of the originals.

Join two FIT files end to end

For a warm-up plus the main ride, or a recording that restarted after a crash, drop both files in — order doesn't matter — and choose One after the other (BikeSync selects it by itself when the files don't overlap). The legs are sorted by start time and placed on one timeline. Distance carries on across the join instead of restarting at zero, the break between the legs is recorded as a timer pause so it counts toward elapsed time but not moving time, and the ride summary is rebuilt so distance, moving time, and averages cover the whole activity. You can keep each file's own laps or turn each file into a single lap.

Device-computed load metrics such as Training Effect and time in zones describe one leg only and cannot be added up, so they are left out of the joined file rather than shown for the wrong part of the ride. If the two files overlap by more than a few seconds, BikeSync refuses to join them and points you to the same-ride merge instead.

Upload the result

The output is a standard FIT activity file. Upload it to whichever platform you use, then archive or delete the two partial activities so your training load isn't counted twice. If your rides already sync automatically, read how to fix duplicate activities on Strava.

Frequently asked questions

Can I merge FIT files from two different devices?

Yes. BikeSync accepts any two FIT activity files of the same ride — a watch and a bike computer, a head unit and an indoor training app, or a Garmin and Zwift. It aligns them in time and combines the data field by field.

Can I join two FIT files back to back, like a warm-up and the main ride?

Yes. Choose the "One after the other" mode — BikeSync picks it automatically when the files don't overlap in time. The legs are sorted by start time and stitched onto one timeline: distance carries on across the join, the break between them is recorded as a timer pause, and the summary is rebuilt to cover the whole ride.

Which file should go in slot A?

File A is the master: its timeline, laps, and device identity define the output. Put the file that covers the whole ride in slot A. If one recording stopped early, use the complete one as A and the partial one as B.

Are my FIT files uploaded anywhere?

No. Decoding, alignment, merging, and encoding all run locally in your browser. Nothing is sent to a server, and there is no account.

Merge your FIT files now

Two FIT files in, one clean ride out. Free, no account, and your files never leave your browser.

Open BikeSync →