100% private — files never leave your browser
Merge FIT Files
Turn two or more .fit activities into one valid FIT file — the fix for rides a Garmin split mid-recording. Sessions are ordered by start time, records stitched in timestamp order, and the result is a single session whose laps and summary numbers are rebuilt from the actual data. Everything runs in your browser.
add as many as you like — they will be sorted by start time and stitched together
How to merge FIT files
- 1
Drop your files
Drag two or more .fit files onto the box, or click to browse. Each file is checked and decoded locally the moment it lands.
- 2
Check the order
Files are sorted by session start time, so the earliest recording leads and the merged activity reads as one chronological day.
- 3
Merge
The merge runs in a background worker: one session, all laps preserved in order, and summary numbers recomputed from the merged records.
- 4
Download
Click download to save the single .fit file, ready for Garmin Connect, Strava or any platform that accepts device files. Originals stay untouched.
Why merge FIT files?
Garmin devices split activities more often than their owners realize. You pause for coffee and the computer auto-saves; the battery dies mid-climb and it reboots into a fresh file; a crash or sync hiccup leaves a ride in two pieces. Each fragment then uploads as half a day — split maps, wrong totals, missed milestones. Merging the FIT files first restores one ride, in the format platforms ingest natively.
Merging FIT to FIT — rather than converting along the way — keeps the format's native structure in play: laps, sessions and the compact binary encoding. That is what you want when the destination is Garmin Connect, Strava or a coaching platform that reads FIT directly.
How FIT merging works
A FIT activity is not a flat list of points. Each file carries a file_id header, one session message describing the whole activity, lap messages marking structure, and a stream of record messages — the actual GPS, heart rate and power samples. The merger reads every file, orders them by session start time, and concatenates their records in timestamp order.
The output is rebuilt as a single valid FIT activity: one file_id, one session, and the laps from every source file as consecutive laps of that session — so an interval structure survives intact. Session summary values such as total distance, elapsed time and ascent are recomputed from the merged records rather than copied from any file's stale numbers.
Two honest caveats. Developer-defined data fields and exotic message types may not survive the re-encoding. And recordings that overlap in time — two devices on the same ride — are interleaved, not fused: both point streams are kept, and computed distance runs longer than either single recording.
When a desktop tool is the better answer
If two devices recorded the same ride simultaneously, merging both files is rarely what you want — interleaved duplicate points inflate distance and double the heart-rate stream. Pick the better recording and keep the other as a backup. Merging shines on sequential files, where the second recording starts after the first ends.
Files from different sports, or activities days apart, do not become a sensible single session either — the session summary would span everything in between. And if you need byte-level fidelity, including developer fields exactly as encoded, GoldenCheetah or vendor tooling is the rigorous route. For the common case — one ride, two files, right order — this page is the quick fix.
Your files never leave this browser
This tool — like every tool on this site — runs entirely as client-side JavaScript. The file you drop is parsed in a Web Worker on your own device, converted in memory and handed straight back to you as a download. There is no upload endpoint, no server-side conversion service and no temporary storage: you can watch the network tab in your browser's developer tools and confirm that no file bytes are transmitted anywhere.
That matters more with fitness data than with most files. A GPS track is a precise log of where you were, at what time, and how hard your heart was working — home address, training habits, favorite routes and race schedule all in one file. Keeping conversion on-device means third-party converters never get a copy of that log, and the tool keeps working identically on a plane, in a basement, or anywhere else without signal.
Frequently asked questions
Yes. The files are ordered by session start time and combined into a single session, so platforms show one continuous activity. Laps from both files survive as consecutive laps, and the session summary is recomputed to match the combined record stream.