tp2intervals: TrainingPeaks to intervals.icu
tp2intervals is a free open-source app that copies your planned workouts from TrainingPeaks to intervals.icu and back. Here is how to set it up, what a free TrainingPeaks account can sync, and how the plan then reaches your Blocks calendar.
Setup
1Install tp2intervals
Download it from the project's Releases page on GitHub: a desktop app for macOS, Windows and Linux. It also runs as a Docker image or a Java jar and opens its interface in the browser at localhost:8080.
2Connect intervals.icu
In intervals.icu open Settings → Developer Settings, copy your API key and athlete id, and paste them into tp2intervals.
3Connect TrainingPeaks
tp2intervals signs in with your own TrainingPeaks browser session: its README shows which cookie to copy from a logged-in TrainingPeaks tab. Your password stays with you.
4Choose what to sync
Planned calendar workouts between TrainingPeaks and intervals.icu, or a whole TrainingPeaks training plan copied to intervals.icu. While the app runs it checks the calendar every 20 minutes.
5Connect intervals.icu in Blocks
In Blocks open Connections and connect intervals.icu. Planned sessions and races from it land on the Blocks calendar, your rides come in, and Send plan pushes Blocks sessions back to intervals.icu.
The exact screens and the current cookie name are in the tp2intervals README: it changes with TrainingPeaks, so check it there.
Questions
What is tp2intervals?
A free, open-source (GPL-3.0) app by an independent developer that copies planned workouts between TrainingPeaks, TrainerRoad and intervals.icu. It is not made by TrainingPeaks, intervals.icu or Blocks.
Does it work with a free TrainingPeaks account?
Partly. Its README says a free account syncs only today's and tomorrow's workouts, because TrainingPeaks lets a free account plan just the next day. Copying a whole plan works from a plan you own; copying a workout library needs a coach account.
Is it safe?
It runs on your own computer with your own TrainingPeaks session, and the code is public. Blocks never sees your TrainingPeaks login: Blocks talks only to intervals.icu. The macOS build is unsigned, so macOS may warn about it; the README explains the workaround.
Why go through intervals.icu at all?
TrainingPeaks has no open API for apps like ours (we applied). intervals.icu does, and it already carries rides from Garmin, Wahoo, COROS, Zwift and more, so one connection brings both your plan and your rides into Blocks.
Can I keep my coach in TrainingPeaks?
Yes. Your coach keeps writing the plan in TrainingPeaks; it reaches intervals.icu through tp2intervals and the Blocks calendar from there. The Blocks assistant can then read the plan next to your rides, sleep and readiness, and explain it to you. It does not replace your coach.
Does it sync TrainerRoad too?
tp2intervals can copy TrainerRoad's planned workouts and library to intervals.icu, with one limit its README names: ramp steps are not supported.
Leaving TrainingPeaks rather than bridging it? See TrainingPeaks alternatives. Everything else Blocks connects to: how Blocks compares.