intervals.icu Beginner's Guide: Garmin, Wahoo and Zwift
Someone on Reddit mentioned intervals.icu in a thread about training platforms, and now you’re here trying to figure out what it actually is before you sign up for another account. Fair question. The site looks like a spreadsheet had a baby with Strava, and it doesn’t do a great job of explaining itself to a first-time visitor.
Here’s the short version: intervals.icu is a free training analysis and planning tool built for cyclists, runners, triathletes and swimmers who coach themselves. It pulls in your workout data from wherever you already record it, turns that into charts you can actually use, and lets you plan future sessions that get pushed back out to your watch, bike computer or Zwift. This guide covers what it is, what it costs, how the device connections work, and where people usually get stuck.
What is intervals.icu?
intervals.icu is a web-based training platform built by David Tinker, a software developer and cyclist based in Cape Town. He started it in mid-2018 as a side project, originally an analysis add-on for Strava, and it grew into a full training platform in its own right. Tinker went full-time on it in September 2024, and it’s funded by voluntary supporter subscriptions rather than ads or venture money.
That solo-developer origin explains a lot about how the site feels. It’s dense, it’s a little unpolished in places, and new features tend to show up as forum announcements rather than marketing emails. It also explains why it’s free: one person building a tool they wanted for their own training, then opening it up.
At its core, intervals.icu does three things. It imports your completed activities from Strava, Garmin, Wahoo and other sources so you have one place with all your training history. It calculates fitness, fatigue and form trends from that history. And it lets you build and schedule future workouts that sync out to the devices you actually train with.
Is intervals.icu free?
Yes. The core platform, including activity analysis, the fitness/fatigue/form chart, the training calendar and the workout builder, is free with no trial period and no credit card required.
There’s an optional Supporter subscription for $4 a month, billed quarterly, that adds things like advanced weather analysis, an annual training plan builder, importing your full Strava history, route matching, fully custom training zones, and CSV data exports. It also gets you early access to beta features and priority on feature requests. None of it is required to plan and sync workouts. The Supporter tier is closer to a tip jar with bonus features than a paywall on core functionality, which is unusual in a category where most competitors charge monthly for basics.
How intervals.icu connects to Garmin, Wahoo, Zwift and the rest
This is where most beginners actually get lost, because “connects to” means different things depending on the device. Some services only send your finished rides and runs into intervals.icu. Others also let intervals.icu push a planned workout back out to the device before you start it.
Here’s how the major connections break down, based on intervals.icu’s own settings pages and forum documentation:
| Service | Activities in | Planned workouts out |
|---|---|---|
| Strava | Yes | No |
| Garmin Connect | Yes | Yes |
| Wahoo | Yes | Yes |
| Zwift | Yes | Yes |
| Polar | Yes | No (platform limitation) |
| Suunto | Yes | Yes |
| COROS | Yes | Yes |
| Dropbox | Yes (FIT/TCX/GPX files) | No |
| Apple Health (via mobile app) | Yes | No |
| TrainingPeaks | No official connection | No official connection |
A few of these are worth calling out directly.
Garmin is the most complete connection. Once you authorize it in Settings, intervals.icu pulls in your completed activities automatically, and if you tick “Upload planned workouts” it pushes structured sessions (warm-up, intervals, cooldown, with power, pace or heart rate targets) to your watch or Edge computer. Support covers recent devices like the Forerunner 255/265/955/965, Fenix 6/7/8, Epix 2, Venu 3 and Edge 530/540/830/840/1040. Older models like the Forerunner 235 or Vivoactive 3 can’t accept structured workouts at all, which trips people up when they assume any Garmin will work.
Wahoo works similarly, with separate checkboxes in Settings for downloading activities and uploading planned workouts.
Zwift connects through Zwift’s own Training API. Once authorized, any workout on your intervals.icu calendar for the coming week gets uploaded automatically, today’s session shows up on the Zwift home screen, and you can also find it under Workouts → Custom → intervals.icu. Completed Zwift rides and runs sync back to intervals.icu for analysis.
Polar and Suunto both send activities in reliably. Suunto also supports planned workouts going back out to the watch. Polar currently doesn’t, due to a platform-side limitation rather than anything intervals.icu controls, so Polar users generally export individual workouts as FIT files and load them manually if they want structured sessions on the device.
TrainingPeaks doesn’t have an official direct connection in either direction. A few community-built scripts exist to bridge the two, but there’s nothing built into intervals.icu’s settings page for it. If you’re moving from TrainingPeaks, expect to re-point your devices rather than sync the two platforms together.
Apple Health comes in through intervals.icu’s companion mobile app or third-party bridges like HealthFit, since Apple Watch has no direct native connection to intervals.icu.
How a planned workout reaches your watch
The mechanics are the same regardless of device: you build a structured workout, put it on the calendar, and intervals.icu pushes it out to whatever’s connected.
The fastest way to build one is the plain-text workout syntax in the builder. Instead of dragging blocks around, you write lines like:
Warmup
- 10m 60%
Main Set 3x
- 5m 90-95%
- 3m 60%
Cooldown
- 5m 50%
A line starting with - is a step: duration first, then a target. Duration can be minutes (5m), seconds (30s), or a combination (1h2m30s). Targets can be a percentage of FTP (75%), absolute watts (220w), a percentage of max heart rate or threshold heart rate (70% HR, 95% LTHR), or a pace (5:00/km Pace). Anything you write before the duration, like “Warmup,” becomes a text cue that shows up on the device during the workout. Repeats are written as a number and x, either as a section header (Main Set 3x) or on its own line before the block. Once your zones are set correctly, this is worth checking against an FTP calculator so the percentages actually mean something for your current fitness.
Once that workout is on the calendar and the device connection is authorized, it shows up where you’d expect. On a Garmin watch or Edge, it appears as a structured workout you select before you start, complete with step-by-step targets and auto-lap. On a Wahoo ELEMNT head unit, intervals.icu uploads the next 7 days of your plan to Wahoo Cloud, which syncs to the device and also shows up in the Wahoo app under “My Plan.” In Zwift, it’s waiting on your home screen the day it’s scheduled, or under the Custom workouts list.
If you’re riding indoors without Zwift at all, the same planned workout can run on a smart trainer through Garmin or Wahoo’s ERG mode; see how to use a smart trainer without Zwift for that setup.
Fitness, fatigue and form, in plain language
Once you’ve got a few weeks of activities flowing into intervals.icu, the fitness chart starts to mean something. It’s built on three numbers, sometimes labeled CTL, ATL and TSB if you’ve seen them elsewhere.
Fitness (CTL) is a rolling average of your training load over roughly the last six weeks. It goes up slowly and comes down slowly, which is the point. It’s meant to reflect sustained training, not one big week.
Fatigue (ATL) is a rolling average over about the last week. It reacts fast. A few hard days and it jumps; a few easy days and it drops.
Form (TSB) is the gap between the two: fitness minus fatigue. When it’s negative, you’re carrying more fatigue than your fitness has caught up to, which is normal during a build phase. When it’s positive, you’re fresher than your training load would suggest, which is what you’re generally aiming for heading into a race or a key session.
None of this replaces knowing your own body, but it’s a useful sanity check when you can’t tell if a flat feeling on the bike is normal training fatigue or something to back off from.
intervals.icu vs TrainingPeaks for self-coached athletes
The comparison people actually care about isn’t feature-for-feature, it’s which one fits how you train.
TrainingPeaks is built around the coach-athlete relationship. A coach builds your plan, assigns it to your calendar, and you follow it. That workflow is polished and works well when someone else is planning your training. Its free tier is limited, and the paid Premium tier runs a real monthly cost.
intervals.icu is built more for the athlete who’s planning their own training and wants to understand their own numbers. The analytics are deep, the charts are customizable, and the core planning and analysis tools are free. It can absolutely support a coach working with multiple athletes too, but the default feel is closer to “your own data, on your own terms” than “here’s what your coach assigned you.”
If you’re self-coached and you like poking at your own training data, intervals.icu is hard to beat for the price. If you work with a coach who lives in TrainingPeaks, you’ll probably end up there regardless of what you’d personally prefer, since there’s no clean sync between the two.
Where beginners get stuck
A few friction points come up over and over in the intervals.icu forum.
Garmin authorization fails silently. The most common fix is checking that Wellness and Sleep scopes are enabled under Settings → Integrations → Garmin Connect → Scopes. If Garmin didn’t grant the full set of permissions during the first authorization, reconnecting usually resolves it. Changing your Garmin password also invalidates the connection and forces a reconnect.
Wahoo needs two separate checkboxes. Downloading activities and uploading planned workouts are controlled independently in Settings. Ticking one doesn’t turn on the other, so it’s easy to get activities flowing in while wondering why nothing’s showing up on the head unit.
Zwift custom workouts only come from a direct connection. If you’re riding a Zwift session that was itself recorded through Garmin or Wahoo, it won’t show up in intervals.icu as a Zwift activity, only through intervals.icu’s own direct Zwift link. Mixing that up is a common source of “why is my ride missing” confusion.
Supporter-only features get mistaken for paywalls. Nothing about building, scheduling or syncing a workout requires the Supporter subscription. The paid tier adds analysis extras like weather data and full Strava history import, not core planning functionality.
If you want to try building a structured session by hand before typing one in, the Zwift workout builder is worth a look for comparison, and pairing your sessions with correct heart rate zones helps keep HR-based targets honest.
Where TextFit fits into this
Everything above is intervals.icu doing what intervals.icu does. TextFit doesn’t replace any of it, it just changes how you get a workout into the builder in the first place.
TextFit is an iOS app. You type a workout in plain language, in any language, like “warmup 15min easy, 5x3min hard with 2min recovery, 10min cooldown.” The AI structures it into steps with durations and targets, you review the result and tweak anything that’s off, and then TextFit uploads the finished workout to your intervals.icu account. From there, intervals.icu delivers it to your Garmin, Wahoo or Zwift exactly the way it delivers any other planned workout. TextFit can also send workouts straight to Apple Watch, separately from the intervals.icu sync.
What TextFit can and can’t do here
TextFit can turn a rough description into a structured, properly formatted workout in intervals.icu’s builder faster than typing the syntax by hand. What it can’t do is fix a broken Garmin authorization, get a workout onto a device intervals.icu doesn’t support, or troubleshoot a sync that’s stuck. Once a workout leaves TextFit and lands in intervals.icu, device delivery is intervals.icu’s job, and any of the connection issues above apply the same way whether the workout came from TextFit or intervals.icu’s own builder.
TextFit is free to start, with 10 workout generations and 5 saves per month and no account required. Pro is $3.99 a month or $39.99 a year for 200 generations and 100 saves a month.
If you’d rather describe a workout than build it block by block, download TextFit on the App Store and try it against your next intervals.icu session.