Garmin Connect & Strava duplicate handling

The last thing (I hope) standing in the way of having full Garmin Connect support (seamless like Strava and no Strava account needed) is what to do about duplicate activities for people with history in both services.

My own setup is very simple: All my activities are on Garmin connect and go from there to Strava, so “keep Garmin Connect” activity and delete the Strava one will work. For old activities I should be able to move power and interval edits, chat and so on from the Strava activity to the Garmin one.

GC activities don’t have segments but I can live without those. Would rather not have all my data on at the mercy of Strava.

Is there any use-case for keeping the Strava activity instead of the Garmin one?

  • Strava usually has altered workout titles and notes that are not present in GC. (at least in my case)
  • Even the activity type on Strava may be different from GC (e.g. runs or hikes recorded with a cycling computer).
  • Climbing/Elevation gain corrections through Strava, e.g. when the barometric sensor malfunctioned.
  • Activities on Strava may be cropped while the original on GC is uncropped.
  • Privacy zones should be respected if ever plans to display map data and/or stores lat/lon coordinates.
  • Privacy settings of the activity.

Personally I use GC only as a bridge for uploading to Strava through Bluetooth/WiFi. I do not upload all my activities to GC. So, GC has a lot less activities, sometimes only partial recordings that have been joined for Strava.


Tx. Strava support will still be there for people who want all those things and segments.

1 Like

The only things I can think of are more of a preference than any direct “need.” For example, if I’m going to have a workout linked to from this site, I would always prefer it to go to Strava. It’s the “hub” for all my activities; any other site that contains my history is either FED by Strava, or exists to get data TO Strava (or possibly as a “backup”).

If I were still using a Garmin computer, I doubt that it would really matter much to me. But now that I’m using a Wahoo computer, GC is an afterthought at best. Zwift rides get uploaded there because the functionality exists, not for any real use reason.

Is it possible to de-dupe based on Activity->Id from the TCX file? In other words, just reject duplicate activities when connecting a new service?

A trickier thing might be to check for overlapping activity times by say 50% or more, and reject duplicates that way.

For people that want to test syncing of both GC and Strava, you could allow them to set a priority list so that whenever you look for new activities you check first the one, then the other.

1 Like

I agree with @DavidU and the points he listed. Maybe worth to share my workflow:

  • I record near 100% of activities with a Garmin device and therefore all data since a decade are on GC as central hub
  • Only if the Garmin battery runs low or if the device is not available, I record with the Strava app, but don’t sync back to GC
  • GC syncs automatically to Strava
  • I download the original GC fit files to import them to Golden Cheetah, (The Strava export lacks inter alia the left/right power and the Smo2 values)
  • But what I nearly never do is to update the activity types on GC or save there any additional information like perceived exertion.

So if Strava would be switched of completely, including the history, that will be an issue to me, also if I can manage this going forward. An alternative going forward can be to take the data from Golden Cheetah, but that would make the syncing cumbersome and manual.

The Garmin Connect -> Strava workflow you describe is what I have been doing myself for the last 5 years or so and it will continue to work fine so long as Strava continues with their API and apps and doesn’t revoke access.

However I am concerned that Strava don’t see a future for apps and the API. They are no longer granting rate limit increases which will strangle all apps eventually. So I am moving to GC -> instead. I will have to implement some more things (cropping activities) at some point. For now I will just keep the Strava version of those activities.

1 Like

I can also add support for pushing activities to Strava in future. So GC (and other services) -> -> Strava (with fixed power or no power or whatever). That will ensure the continued availability of your data.

A huge advantage in having data in that doesn’t come from Strava is that I can provide full API access to it + provide the original files etc etc.


Hello @David,
something I tried right now is two upload the identical file twice to Golden Cheetah. First as always the one from GC, then I downloaded the Strava Activity and tried to upload it again. Golden Cheetah did not import the second file and said it is already there, so there is certainly a way to check for duplicates and import files only once. As Golden Cheetah is open source, you might be able to find the relevant code?

In the latest release activities are considered duplicates if they start within 1 minute of each other and have distance and elapsed time within 1% of each other.


The distance match might be a problem if the source files in Garmin & Strava are different. One might be from TrainerRoad, and other Zwift for example. The distance recorded for a given ride varies dramatically app to app

1 Like

Hmm. I made it quite strict to avoid false dups. But I suppose the start time and elapsed time might be sufficient.

It was just a thought that I thought might affect a number of people, but it might not.

I have that scenario, but because GC and Strava are both tidy, I will just delete all the Strava data

@david just a question on this - my garmin connect activities have synced but the activity title just seems to be ‘morning ride’ or ‘evening ride’ etc. rather than the activity name eg. ‘Zwift - Watopia’.

Is this a bug or perhaps some other setting I need to update? Could it be related to any Garmin privacy settings which are all private at the moment?

1 Like

hey @david. Even though I have “Download activities” for Strava disabled, I just got a dup pulled in

me too!

I have the same problem, many name of the garmin connect activity are morning ride ecc, The workout maked on zwift don’t recording the TSS when uploaded on GC, so need to recording the same workout also with garmin edge, but the km or velocity will be different in the two file, so I make manual adjustment in the workout page on GC but the same workout syncronized on Intervals don’t report my adjustments.

Hi @david - apologies for being a pain, but +1 for duplicate activities here; I switched on Garmin Connect sync yesterday and switched off Strava (without revoking access) and I’ve since had three activities duplicate (a run, a gym workout and a bike workout from TrainerRoad, so a mixture of different activities).

No problem at all deleting these manually if that’s what’s needed, but thought I should flag it in this thread.

Thanks for everything you do - I shared your site with my triathlon club and it’s been a massive hit with coach and athletes!

Thanks. I am looking at the “still getting dups from Strava” issue now.

This “multiple sources of activities” thing is going to take a little time to sort out.


Thanks for the reply! I’ll leave the dups in for the time being and will just bask in the glow of my fitness (temporarily) soaring!

If there’s anything I can do to help, please let me know.

Thanks again, Andy.