TR API for calendar access

Hi there

I was wondering if you are considering making a public API for accessing TR data. What I am specifically after in this case is the calendar feed and adding new items to it.

I am starting on a meal planning app, and think it would be really great to be able to added these to the calendar if you are a TR subscriber.

At later point adding workouts to it as well.

Let me know what you guys think of this?
Others than me being interested in this aspect?

1 Like

Hi there,

While your idea sounds super interesting, we aren’t considering making a public API at the moment. We’re focusing on adding some big features to improve your training experience, but may revisit this at some point in the future. Sorry I don’t have a better answer for you!

1 Like

There’s totally already an api, it’s just completely undocumented!

https://www.trainerroad.com/api/tss/lbanders
https://www.trainerroad.com/api/calendar/activities/lbanders?startDate=02-16-2018&endDate=11-16-2019
and more…

You can dig all this up just watching the network requests via the chrome devtool.

2 Likes

Hi @larry

Ok no worries. I Think it would be really Awesome to have that integration as well in order to provide for 3rd party apps connecting same like when Garmin and Strava. Not sure if they deliver to you or you simply get notified.

I will reach out again when I’m further with the project.

That’s true @gcarver but I want one where I can actually post data to the calendar.

I’m sure you can. I didn’t trace any of the calls from the add-activity popup, but it almost certainly does the same kind of thing, Plus, it would be bad form if I, say, posted a url that deleted a workout! If this isn’t enough to get you started, you probably shouldn’t be doing it anyway.

You can do POST, i’m looking into at the moment. (specifically in annotation)
1st you need to auth, and get a token

Where i’m stuck is, it seems to generate a unique id for the calendar entry, this maybe server side.

https://www.trainerroad.com/api/calendar/annotation/[username]
“Id”:“****”,
“Date”:“2019-08-20T00:00:00.000Z”,
“TimeOfDay”:null,
“Duration”:86400,
“Title”:“testing”,
“Text”:“test”,
“StyleIndex”:1}

Figured it out, you don;'t need and ID… duhhh
Only need it for updates. Works well though