Reference
Every one of these ate real hours โ and most are Claude's problem to solve, not yours. They're here so nothing surprises you. Bookmark this; skip it until something breaks.
Claude's cloud can't reach intervals.icu directly โ but two routes get around it.
When Claude runs a task "in the cloud," it's working on Anthropic's servers, and those are walled off from intervals.icu โ so a direct push just stalls or errors. (The other route, Claude reaching files on your own computer, has no internet at all.)
Two things do work: (1) Claude drives your own Chrome browser โ since that's your computer, already logged in, it sails straight through; or (2) Claude hands you a tiny script you run on your own machine. The browser route is cleanest โ nothing to install. If a push ever just spins, this is why: switch to Chrome.
This is also why the Sunday auto-pilot never pushes. Scheduled tasks always run in that same cloud, so the weekly task preps your week and texts you โ and you fire the actual push with "push my week" from a normal chat on your computer.
Only matters if you use the little script โ two small things trip it up.
Skip this entirely if you're using the browser route. If you are running the small Python script, two traps: (1) it must use Python's built-in urllib, not the popular requests add-on โ because requests often isn't installed and the script would crash. (2) intervals.icu sits behind a security layer (Cloudflare) that blocks anything looking like a robot, throwing a "403 error 1010"; adding a normal browser signature fixes it.
Good news: Claude's script already includes both fixes. You just run it.
If the script won't download in the app, three easy workarounds.
Sometimes downloading the script straight from the chat doesn't work. You're not stuck โ pick any of: connect a folder so Claude writes the file onto your computer directly; have Claude paste the code into the chat so you save it yourself; or skip files completely and use the browser route (no file needed). Just tell Claude which you'd prefer.
intervals only builds real targets if the workout is written in its special shorthand.
This is the one that cost us the most time. intervals.icu only turns a workout into real, followable targets if it's written in its own shorthand โ not plain sentences. Each step on its own dashed line: power as "% of FTP" (e.g. - 12m 92-98%), runs as "% LTHR" for heart rate (plain bpm or pace won't convert); Warmup/Cooldown on their own header line with the dashed step beneath; and repeats as 3x on its own line with a blank line before and after the block. Wrong format = a calendar note with no targets, and nothing syncs to your watch; right format = your device runs the session for you. Worth having Claude open one pushed workout afterwards to confirm it shows a workout graph, not just text.
The good part: this is Claude's job. The cheat sheet exists so Claude (or a curious you) gets it exactly right. Using percentages also means every workout auto-adjusts as your fitness changes.
intervals often guesses your HR zones from your age โ get them set properly.
Out of the box, intervals.icu often sets your heart-rate zones from a rough age formula, which is usually wrong for a trained athlete. Before any heart-rate workout makes sense, set your real max heart rate and LTHR (from a test or a hard effort).
One quirk to know: the top of your highest zone becomes your "max heart rate" in the app โ so make sure that number is your true max, not an inflated guess, or the app invents headroom you don't have. Claude can set all of this for you.
The first browser push asks you to approve the site โ one click.
The clean way to add workouts is Claude driving your Chrome. The very first time it opens intervals.icu, the Claude browser extension asks your permission to act on that site โ a small popup where you click Allow (you're okaying Claude to work on intervals.icu for you). It's a one-time thing; after that it just works. If Claude seems unable to do anything in the browser, this approval is usually what's missing.
Since mid-2026 the automatic pull from Strava may require a paid Strava subscription.
In June 2026 Strava changed its rules so that reading your data through the automatic connection Claude uses generally needs an active Strava subscription. Your data is still free to look at inside the Strava app itself โ it's just the automatic pull that may now be gated.
Best free fix โ Garmin users especially: connect Garmin Connect to Strava once (free, automatic). Your rides still land in Strava, so the connector keeps working without you paying Strava. Otherwise you're still not blocked: paste Claude a quick summary of your recent weeks, or attach a watch-app export. The method only needs your real history from somewhere.
Zwift and Garmin keep their own copy of each synced workout โ editing one in place can leave the old version on your device.
Once a workout has synced, Zwift and Garmin quietly hold on to their own copy of the file. Edit that workout in place on intervals.icu and the calendar looks right โ but your trainer or watch can still serve up the old version on the day. Sneaky, because everything looks fine until you're mid-session wondering why the intervals don't match.
The rule: changing a workout that's already been pushed means delete it and create a fresh one (under the hood: a new external_id) โ never edit it in place. And every new week gets brand-new ids. This is Claude's rule to follow, not yours โ but if your device ever shows a session you thought you'd changed, this is why: ask Claude to delete and re-create it.
โ The short version
Prefer the browser route. If you use the script, Claude's already handled the traps. Workout format is the thing that has to be right (Claude's job). Set real zones. If Strava won't pull, feed it your recent history another way. And a changed workout gets deleted and re-created, never edited in place โ devices cache the old copy.
A paid Claude plan (Pro, ~US$17โ20/mo) is the one real requirement. intervals.icu is free for everything this needs. Strava's automatic pull now generally needs a Strava subscription โ but there's a free workaround (tell the coach your recent weeks yourself, or attach an export from your watch app). So realistically: Claude Pro, plus Strava only if you want the fully-automatic version.
No. The plan is built from wherever you actually are, and the coach explains the "why" behind every session as you go. If you don't know your numbers (FTP, threshold pace), it estimates them with you and confirms with a proper test in the first week or two. Nothing is locked in.
Yes. The triathlon build is only the example. The method โ brief the coach, ground it in your data, build a phased plan, sync the calendar, automate the week โ is the same for a marathon, an ultra, a gran fondo, a rowing season, or just getting properly fit. Your onboarding brief is what tailors it.
You stay in control of every connection. Claude only reads Strava after you authorize it with your own login, and you can disconnect it any time. Your intervals.icu API key is a password for your calendar โ you give it to your own Claude chat, and you should never share it with anyone else (or post it anywhere public).
That's exactly what the weekly loop is for. Every Sunday the coach looks at what you actually did โ missed sessions, extra sessions, signs of fatigue โ and builds next week from reality, not from the plan-as-written. A bad week doesn't break anything; the plan bends around it.
It knows your setup better than any FAQ can.