New: Garmin Integration -- Available To EVERYONE

Important Notes:

  • Logging in with Garmin is coming soon

In your Settings page (top right menu), everyone will see a new activity tracker listed.
Click the Connect button to connect your Garmin account to CityStrides.

After connection, Garmin will alert CityStrides of all your activities going forward.
CityStrides only brings in these activities:


PLEASE if you have a Strava-connected account that can be replaced by a direct Garmin connection, please do this:

  • Connect your Garmin account
  • Pause your Strava account (See New: Pause syncing :smiley:)
  • DO NOT DE-AUTHORIZE STRAVA unless you want all of your Strava activities/progress deleted

Huge thanks to @davemorin and @jpbari for helping me build out this integration!

For history syncing:

The underlying process is that it requests 7 days of activities, then schedules itself to ask for another 7 days in 30 minutes, and repeats until it gets back to 2004 (Garmin’s suggested “earliest data available” year).

There’s now a ‘Run History Sync’ button available on your Settings page. You can only do this once, because it queues up the full history sync mentioned here. So go ahead and click that button if you want your full Garmin history in CityStrides.

Please note, there seems to be an issue within Garmin for activities older than 2016 which causes them to be incapable of syncing into CityStrides. I am working with Garmin support on this issue now.


That was painless. But the real test comes tomorrow when I get out of bed

1 Like

Fantastic news James! I will test this out tomorrow.

So you’ll only fetch new activities, that is perfect.

Curious about the historic syncing and your plans for that when you get to it. I personally would like the option of just pulling in certain date ranges. For example I wouldn’t want to overlap any of my Strava data from the last five years (its my clean and good data). I do have data in Garmin Connect that precedes Strava that I would love to try to get into CityStrides but I also have data in Strava that isn’t in Garmin Connect. Just some thoughts on some use cases, not sure how prevalent they are.


That’s great James! I know the Garmin integration isn’t cheap and you were trying to raise money a while back. Did we all help you get over that cost? I think many of us would be happy to chip in more to help out.

1 Like

How great, this is what we’ve all been waiting for! I stopped the runkeeper sync right there. I’m curious to see how it works in practice. I increased my monthly subscription too!

1 Like

Great work James! i have mapmyfitness connected since 2 weeks now, so pausing Strava was a bliss. The question is now, should i also go to Garmin, since i am considering buying a garmin device soon and autosyncing would be done.
But historic syncing would mean ALL my history would be duplicated since my strava history and my garmin history are also in sync.
Is the idea to use a ‘switchdate’ or something that could prevent historic sync?

On top of that, i am still pondering the idea to get rid of strava history completely in CS, and sync only the runs i want to use for CS to mapmyfitness. In that way a could also leave out the walks if i wanted that. MMF would be my CS sync tool and strava/garmin my complete sport/social inerface to the internet.

What would be needed to do this? I noticed when i tried the following: i have one run synced via MMF immediately after my run, and 2 days later the same run came in via Strava. When i then delete the MMF one, i see it as deleted, but the streets that were checked as run by the MMF one, is not transferred to the strava one.

So i guess that would mean i would have to ask for a complete resync after i revoked the strava link to CS, or i should better make a new account and connect MMF only?

so many scenario’s and what would it mean…

That is excellent, Thankyou James,

I have set up Garmin integration and paused Stravav and Runkeeper for the time being,

I do second what Dallas says in terms of historic syncing and while it doesn’t matter that a load of my routes will be duplicated. It would be cleaner and less processing if we could only import stuff going forward ideally, As I would rather not wait for a total sync and then delete Strava integration as I have stuff in Strava that is not in Garmin,

Thanks again I know its been hard work, hopefully it will lease the flow of Strava activities for you a bit.

Also are you encouraging new users to sign up through Garmin and not Strava?

Adding to my last comment,

What are the timescales involved in activities being imported, I’m not in a hurry but interested to know how long it will take for an activity to come in, I have generated a couple of test activities this morning to see what they arrive in CS, I am also curious if the sync now button in the right hand menu has any effect on that time?

Would it be possible to display any information you do have (if you have any) on pending activities on the status page?

Many Thanks

Hi James, I have two Garmin Connect accounts. Is there a way to choose which gets linked to CS?
When I linked to GC, it didn’t request for any email address/username so I think it may have just used the email linked to my Strava account. The problem is the email address of my GC account that is linked to Strava is not the same as the email address for logging in to Strava.

super excited for this news!

Unfortunately i tried connecting the garmin account and received the following error:

The change you wanted was rejected.

Maybe you tried to change something you didn’t have access to.

I have not yet done any other modifications, such as pausing strava.

Interestingly enough, before i even read about the update and attempted to sync Garmin, i noticed that my run from this morning wasn’t even showing up on the status page as an activity to be imported through strava (the activity is in strava, i checked). Not sure if this is related in any way. or a separate issue.

I havent yet tried to enter the missing strava activity yet on the settings page so as to allow de-bugging if necessary.

This is not always accurate and I would not take its absence from the status page as indication of a problem. The Status page items come and go quite frequently as the “hack” James put together tries desperately to do its thing

Were you perhaps already logged into the “wrong” Garmin account when you picked the authorization link? When I paired mine, a page came up with fields to put in my Garmin account email/username and my Garmin password.

I think first you will have to revoke access to CityStrides through the already paired account, then @JamesChevalier will have to sever the link on the back-end within CS, then you can re-associate with the preferred account.

You may need to share your CityStrides ID with James (use a link to your profile page) for him to look into it.

I’d just make sure that when you do end up re-trying Garmin pairing that you aren’t already logged into Garmin to make sure it asks you for the username and password

That’s true for us all :laughing:

Garmin dropped their signup fee.

My initial intention was to treat Garmin like every other service - full history syncing for walking/running activities. This makes it loads easier on myself, because I don’t have to go build some whole other thing.
Historic syncing through Garmin works a little differently, though. I request 90-day blocks, and then they “replay” those notifications to CityStrides. So I have no capability of spot-syncing, like some kind of “here’s a list of your past activities, choose what you’d like to sync”.
That said…

I have found that the start time for an activity created in Garmin then synced to Strava will remain the same (so, Strava isn’t messing with the data). So I can skip activities that have the exact same start time - this should do a decent job of skipping duplicates.
I don’t know what happens if you edit one of these activities in Strava. I’d assume that it would retain the same start time, so would then be seen as a duplicate from CityStrides point of view.

Personally, I don’t see the point in all the effort. Just connect Garmin and be done with it. :man_shrugging: I take a much more simplistic approach to CityStrides than some.

Pause any of the other services that are connected. Keep only the MapMyFitness connection active.

I don’t understand why you chose to delete the MMF activity if your plan/idea is to treat MMF as the single CityStrides connection. Either way, deleting activities kicks off a whole process of figuring out what street progress/completion was just deleted. It takes a while, though.

I really can’t absolutely scream this over the internet enough. So many people revoke access and then email me asking where their activities/map/progress/cities went.
I have to delete this data if access is revoked because of all the data protection/privacy requirements.
That said - I suggest connecting MMF to your existing account in your Settings (top right menu), and pausing any services you don’t want further syncing for.

Yeah, idunno, I may need to offer an option of historic syncing when connecting a service via the Settings page. :thinking: I just suspect I’ll get more support requests asking where the old activities are. :man_shrugging: Maybe I’ll set up a poll here.
You do not need to delete the Strava integration, you can just pause it in Settings.

I’m thinking I’ll have history syncing possible in a week or two.

“Sync Now” does nothing for Garmin. I also expect that it never will, given the nature of Garmin’s API. :man_shrugging: We’ll see.

Maybe? Really, only if there ends up being a Garmin backlog. Overall, though, that status page is a complete hack that is painful for me to manage. Once I have a moment I want to rethink that - perhaps removing much of the information in there; it’s just too painful to field the constant support requests about it. It has almost done more harm than good. :grimacing:

During the connection process, Garmin is going to use the account that you’re already logged in with. So first, get your Garmin login situation set up so that you’re logged in with the account you want synced into CityStrides … then make the connection in CityStrides Settings.
Please message me directly if you need help sorting this out.

This does not look like an error message that’s possible in my system. What’s the domain name for the URL (just the domain name; there may be info in the URL we don’t want sharing) when you see this error?


@JamesChevalier i went back in and tried to sync garmin again to find out the domain and it worked this time. so problem solved, but not the mystery of the error, no idea what domain it came from since i cant recreate it.

1 Like

So freakin’ cool! Well done @JamesChevalier!
200424 Garmin on-line
Getting ready to run some new streets now!


omfg I’m so :poop: at design
forgive me

Made my first run today - also available in garmin. How long does it take until it arrives in CS? Actually webhooks are used, aren’t they?

Yeah, it should be immediately … however … of course :roll_eyes: … I have some job backup issue that I haven’t seen before. It’s delaying all sorts of things right now because this one type of job is taking way longer to run than usual (like up to 30mins when it usually takes seconds).
I’m looking into it…

1 Like