Free tool

Stitch multiple rides into a single seamless activity.

Merge two or more FIT, GPX, or TCX files into one continuous activity. Paused-then-restarted at the cafe, switched head units mid-ride, recorded a morning and evening commute as separate files - drop them all in, drag into the order you want, download a single merged activity. Free, in-browser, no upload required.

3 filesbecomes1 activity

How it works

  1. 1

    Drop two or more files

    FIT, GPX, or TCX - mix and match. Each file becomes one segment of the merged activity.

  2. 2

    Drag to reorder

    Grab the handle and shuffle the list until the rides are in the order you rode them.

  3. 3

    Pick a format and download

    Timestamps in later files are shifted so each picks up one second after the previous ended. Laps and totals follow.

What you get

  • Drag-and-drop ordering with live map preview
  • Per-file color coding so you can see where each segment joins
  • Timestamps re-base seamlessly with no gaps or overlaps
  • Mix FIT, GPX, and TCX inputs - pick any of the three for output
  • Total distance, time, and elevation gain recomputed across all segments
  • Works offline - files stay on your device, no signup required

When to use this

Reach for the combiner whenever a single logical ride or run ended up as multiple separate files. Common scenarios: you paused at a cafe, the head unit auto-saved the file when it timed out, and the post-cafe segment recorded as a fresh activity; you switched between two head units mid-ride (Wahoo for the climb, Garmin for the descent); you do a morning commute and an evening commute and want them logged as one day's riding rather than two separate activities; you took an out-and-back tour that the unit broke into multiple files because of low-battery shutdowns. Each case has the same fix - drop all the segments into the combiner, drag into the right order, download one merged activity.

How it works under the hood

The tool decodes each input file in your browser using the appropriate parser (Garmin SDK for FIT, native XML for GPX and TCX). It walks the files in your chosen order, computing a per-file time offset such that each file's first record lands one second after the previous file's last record. Every timestamp in every file is shifted by its computed offset so the merged stream is continuous and monotonic. Records, laps, sessions, and events are all merged into a single output structure. Lap boundaries are preserved per-segment. Session totals are recomputed across all segments. The output is re-encoded through the appropriate writer (FIT SDK, or native XML for GPX/TCX) with correct CRC and headers. Everything happens locally.

Common mistakes

Three to flag. First, dragging segments into the wrong order and ending up with a file that goes backwards in time relative to where you actually rode - check the live map preview, the per-segment colors show which file is which. Second, expecting the merged map to be visually continuous - it will not be unless the end coordinate of one segment equals the start coordinate of the next, which only happens for paused-restarted rides that did not move during the pause. Third, hitting Strava duplicate detection on upload because the original segments are still in your account - delete originals first or shift the merged file's start time before uploading.

Frequently asked questions

How do I merge two FIT files into one activity?
Drop both files into the combiner. They appear as draggable cards in the order you uploaded them. Drag to reorder if needed. Pick FIT (or GPX or TCX) as the output format and download. The merged file has the first activity's data followed by the second activity's data, with timestamps in the second file shifted to pick up one second after the first ended. Strava and Garmin Connect treat it as a single continuous activity.
Why bother merging instead of uploading separately?
Strava and Garmin both count each upload as its own activity, which wrecks daily streaks (a morning and evening commute look like two activities, but one was actually the whole day), distorts segment matching across a coffee-break gap, and produces messy training-log entries. Merging rolls multiple segments into one logical activity that displays and analyzes as a single ride or run. Weekly totals are correct either way; what changes is how the activity feels in your log.
What happens to the time gap between files?
Collapsed to one second by default. The merged activity behaves as if you stopped the timer for an instant between segments rather than took a multi-hour break. The map will show a straight-line jump between the end of one segment and the start of the next (unless they happen to be at the same coordinate), which is honest about the cut. If you want the gap reflected as actual elapsed time, you would need to add stationary records via our [FIT Start Extender](/tools/fit-start-extender) between segments.
Do the GPS positions and elevation stay the same?
Yes - lat, lon, and altitude pass through every trackpoint untouched. Only timestamps in later files are shifted, by exactly enough to keep the merged sequence continuous. Your route on the map looks like you rode the first segment, then jumped instantly to where the second segment started, then rode the second segment - because that is what the merged file describes.
Can I merge files from different devices?
Yes - the tool accepts any combination of FIT, GPX, and TCX inputs from any device or platform. A Garmin Edge FIT followed by a Wahoo ELEMNT FIT followed by an Apple Watch GPX merges cleanly. The output is one file in your chosen format; the device_info messages of the first file get retained, and per-segment device differences are not surfaced (the merged file looks like one device recording continuously).
Will Strava accept the merged file?
Yes - the merged FIT (or GPX/TCX) is fully valid and uploads cleanly. Strava treats it as a single activity. If the original separate files are already on your Strava account, the merged file may hit duplicate detection because it shares a start time with the first segment. Delete the original segments first or shift the merged file's start time using our [FIT Time Adjuster](/tools/fit-time-adjuster).
How is this different from FIT Field Merger?
The combiner stitches files end-to-end in time - segment one finishes, segment two starts, the merged file plays them back in sequence. The [FIT Field Merger](/tools/fit-field-merger) overlays files in parallel - two devices recorded the same activity simultaneously, and you graft HR from one onto power data from the other. Combiner is for sequential merging; field merger is for simultaneous merging.
Is the combiner free?
Yes - free, no signup, no upload. The merging runs entirely in your browser. Drop files, drag to order, download.

Save your training to a real log

Merge once, then keep every ride and run analyzed in one place. Domestique reads the data for you.

Create free account