How to use ChatGPT as your cycling coach, and where it stops
We build RestOrTrain, an app that plans and adjusts cycling training with AI. This page is about getting as much as you can out of ChatGPT for free, which is more than most riders get. It is also about where it stops. We know where that is because riders paste ChatGPT plans into RestOrTrain and ask it to check them. The same faults come back each time: the hours do not add up, the rest week is missing, and the plan has forgotten what the rider said three messages ago.
Everything here works in Claude and Gemini too. If you use Claude, there is a separate page on the one route it has that ChatGPT does not, Strava's official connector.
What it is good at
Explaining. Ask what sweet spot is, why a rest week exists, what a 20-minute test measures, why your heart rate climbs on a long ride at the same power. It answers better than most forum threads and keeps answering follow-ups until you understand.
Drafting a plan you can argue with, once you have given it the brief below. Without the brief you get a plan for an average rider, not for you.
Race craft. A pacing plan for a course you describe, fuelling in grams of carbohydrate per hour, the checklist for the night before. The knowledge is general, the arithmetic is small, and none of it depends on what you rode yesterday.
A second opinion at five in the morning. "Legs feel like wood, is that normal in week three of a build?" It will tell you what that usually means. Do not ask it whether to ride today until you have read the part about agreeing with you.
Give it your data before you ask it anything
In 2024 the Journal of Sports Science and Medicine published a test. ChatGPT was asked for a running plan three times, each time with more detail about the athlete, and coaching experts scored the plans against 22 criteria. The plan written from a bare request was rated inadequate on 19 of the 22. The plan written from a full athlete description was rated inadequate on one. The only thing that changed was how much the model knew about the runner.
Riders on the forums ran into the same thing. A TrainerRoad forum member asked for a 12-week plan to take FTP from 325 to 350 watts and got one with no rest weeks and VO2 max work in week one. Another wrote that it "can change its mind almost instantly with very small prompts".
So write the brief once. Copy this, replace every line with your own, and paste it at the top of every new chat.
You are my cycling coach. Here is what you need to know about me. Refer to it every time and never ask me for it again. Rider: 42, 78 kg, riding six years, 6 to 8 hours a week. Weekday sessions are 60 minutes on the trainer, one long ride outdoors at the weekend. Numbers: FTP 265 W, set on 14 August from a 20-minute test with a five-minute hard effort before it. Max heart rate 184. Threshold heart rate 168, the average of the last 20 minutes of a 30-minute solo test. Resting heart rate this month 48. Goal: a 140 km gran fondo on 18 October with 2,400 m of climbing. I want to finish under five hours; last year I did 5:20. Constraints: Tuesday and Thursday 60 minutes maximum. Sunday up to three hours. Monday is always off. My right knee complains after three hours in the saddle. How I respond: two hard days in a row leave me flat for the rest of the week. I recover quickly from long easy rides. I sleep badly before work travel. Last six weeks: [paste your weekly hours and training load here, or attach the CSV] Rules for you. Never assume a number I have not given you. Show your arithmetic. When I ask you to change the plan, change only what my constraint touches and tell me what moved. Do not add sessions to make up for ones I missed. If something I describe sounds like an injury, say so instead of coaching around it. If you are unsure, say you are unsure.
Rewrite the brief when something in it changes: a new FTP, a new race, a new constraint. Once a month is about right.
Getting your rides in
If you pay for Strava and use Claude, Strava's official connector, launched in June 2026, lets Claude read your rides, their power and heart-rate streams, your gear, and your zones and FTP with a flag saying whether Strava estimated them. It is read only and Claude only: Strava's API policy blocks every other AI app, ours included, and Strava has no sleep or HRV to give it. Our Claude guide covers the rest.
If you use ChatGPT, or your rides live on Garmin, export. Intervals.icu is the friendliest source: it is free, it pulls from Garmin, Wahoo, COROS and most other platforms, any activity has a Data tab with a CSV of the per-second streams, the activity list exports as one CSV with training load per ride, and the wellness page exports fitness and fatigue by day. If you script, it also gives you an API key under Settings, Developer.
Garmin Connect on the web exports a single activity as TCX, which is a text file a chat assistant can read. Its "Export to CSV" is the lap table, not the ride. Ask about drift from that file and the answer is invented, because the per-second data is not in it. For your whole Garmin history, Account Settings, Account Management, Export Your Data; the archive arrives by email within a day or two. Strava sends an archive from Settings, My Account, "Download or Delete Your Account", and the useful file inside it is activities.csv, one row per ride. TrainingPeaks exports twelve months at a time from Settings.
FIT files are a binary format, and the code sandbox inside a chat assistant cannot install a parser for them, so export TCX or CSV instead, or let Intervals.icu do the decoding.
Never paste a raw per-second ride into the chat. A five-hour ride is around eighteen thousand rows, and the assistant will either run out of room or answer from a sample without telling you. Attach the file instead. Tell it to load the file in code and report the row count and the time range back to you before it says anything else. For anything longer than one ride, aggregate first. A season question needs one row per week with hours, load and best 20-minute power.
ChatGPT Health reads Apple Health, in the US only as we write, and on an iPhone a Garmin watch writes sleep and workouts into Apple Health, so that is a route for sleep. It is built for health questions and it does not analyse training. Gemini's health coach reads Fitbit and Pixel Watch data. Neither replaces the export for a cyclist with a head unit.
Prompts that get real answers
Short versions here; the full set, sorted by what riders ask most, is on the prompts page.
After a ride. "Attached is Saturday's ride as a per-second CSV with time, power, heart rate, cadence and altitude. Load it in code and tell me the row count and time range first. Then find the longest steady segment after the first 20 minutes with no stops, compare power to heart rate in its first and second halves, and tell me the drift as a percentage with both averages shown. One thing to change next time. No praise."
The broken week. "I missed Tuesday and Wednesday, work. I have 40 minutes Thursday, an hour Friday, three hours Sunday. This week's purpose was threshold volume, week three of four before a rest week. Repair the week: keep the purpose, move what you must, drop the rest, and list what moved. Do not add sessions to make up the lost ones."
Should I ride today. "HRV this morning 61 and my 30-day average is 68; both are rMSSD in milliseconds from the same watch, and my usual day-to-day swing is about 6. Resting heart rate 52 against 48. Slept 5 hours 40 minutes. Yesterday 90 minutes easy, the day before 4 x 8 minutes at threshold. Today's plan is 3 x 12 minutes sweet spot. Before you decide, state the rule you will apply, then apply it to these numbers and decide: as planned, easy, or rest. Ignore how I say I feel."
Where it stops
It cannot see today's ride. There is no standing connection between ChatGPT and your head unit, and even Claude with the Strava connector reads only when you ask; nothing watches your rides land. The habit that fixes it is one paste every Sunday.
It does arithmetic the way it does everything else, by guessing which words usually come next. A rider on the mtbr forum, after feeding it a year of ride files, put it as well as anyone: "They're word correlation; they don't do arithmetic." Another on the Intervals.icu forum tried to have Gemini compute training load and found that it "can't do math reliably". You will not notice when it happens. The plan reads well, and the weekly hours in it add up to a number you did not ask for. Attach data as a file and use the assistant's data-analysis tool, which runs real code. Keep "show your arithmetic" in the brief.
It forgets you, or it remembers notes rather than your training. Open a new chat and your FTP is gone. A triathlete on Slowtwitch who used it as a coach through a winter wrote that it "acts like it remembers the thread but it doesn't really". The memory features in a general assistant help less than you would hope. They keep a few notes about you, and nothing in those notes changes when you ride. Pasting the brief again is the workaround.
It agrees with you. This is the wall that matters, and it is the one we spent the most time on ourselves, because the model underneath RestOrTrain has the same instinct. Ask "I slept five hours but I feel fine, should I do the intervals?" and it agrees with the second half of the sentence. When BikeRadar asked it to coach a marathon in January 2026, the coach who reviewed the plan found two intensities across sixteen weeks and not one hill session; when TIME tried in 2024 it put a full-distance marathon run seven days before the race. Give it numbers instead of feelings, and make it state its rule before it gives its verdict. RestOrTrain gets the numbers automatically, and we test it on a fixed set of rest-or-train cases before we change how it talks. It still has to be watched, which is why it proposes and you confirm.
Nothing lands on your bike computer. A rider on the Intervals.icu forum, after building a plan with an AI: "my only option is copy-pasting every session." There is a cheaper route than retyping. Ask for each workout in Intervals.icu's text format, one step per line, repeats as a header, percentages of FTP:
- Warmup 10m 55% Main set 4x - 8m 100% - 4m 55% - Cooldown 10m 50%
Paste that into a workout on Intervals.icu and it sends the session to your Garmin, Wahoo, Hammerhead, Zwift or Rouvy. Or ask for a .zwo file and drop it into the Zwift workouts folder on a computer; there is no import on Apple TV.
And one warning that is not a wall. It will let you hurt yourself. It has no limit on how fast your volume can rise unless you set one. It will stack hard days if the hours happen to fit. Mention a knee once and it will coach around it. The last lines of the brief are there for that reason.
Who should stay on ChatGPT
If your rides live only on Strava, stay: we cannot read Strava either, for the same reason ChatGPT cannot. If you like the analysis more than the coaching, or you want a plan and never a conversation, TrainerRoad and JOIN do that part without any chat at all, and our ranking says which fits whom.
For everyone else, this is what an app like RestOrTrain is for. Three of us built it for athletes, and the aim is to automate the whole of the coaching decision, every day, not a part of it: what to ride, when to rest, what changes when the week breaks. The work left to you is the riding. Take the five stops above in order. It sees today's ride, because the rides arrive on their own from Garmin, Wahoo, Intervals.icu and the other head units and platforms listed on the ranking page, with sleep, HRV and resting heart rate from Garmin, Apple Health, COROS or Intervals.icu. It does not guess the sums: training load, power curves and personal bests are computed in code before the model reads them. It does not forget you, because the brief is already written from your data and from what you have told it. It has the same instinct to agree, which is why we test it on those fixed cases and why it proposes and you confirm. And once you confirm, the sessions land on your Garmin, Wahoo, Hammerhead, COROS, Zwift or Rouvy. After a ride it reads the file and sends you a note before you ask. You stop doing the Sunday paste. You stop retyping the brief.
The price of that is a subscription beyond a few free questions a month: $14.99 a month or $134.99 a year in the US, priced locally elsewhere. There is no indoor player. If you would rather do the work yourself, everything above is free.
Frequently asked questions
Can ChatGPT make a cycling training plan?
Yes, and the plan is only as good as what you tell it. With a bare request you get a generic plan with the usual holes: no rest weeks, too much intensity, your weekly hours ignored. With the rider brief on this page and your recent rides attached, you get a draft worth arguing with. Check the arithmetic yourself.
Is ChatGPT or Claude better for cycling training?
For the conversation, they are close. The practical difference is data: Claude has an official Strava connector for Strava subscribers, ChatGPT does not and cannot, because Strava's API policy blocks third-party AI apps. If your rides live on Garmin or Intervals.icu you export either way, and both have a data-analysis tool that runs real code on the file.
Can ChatGPT read my Garmin or Strava data?
Not directly. There is no Garmin or Strava connector for ChatGPT as of September 2026. ChatGPT Health reads Apple Health in the US, and a Garmin watch can write sleep and workouts into Apple Health from an iPhone. For rides, export TCX from Garmin Connect or CSV from Intervals.icu and attach it.
How do I get my Strava data into ChatGPT?
Request your archive from Settings, My Account, "Download or Delete Your Account", and attach the activities.csv it contains. Single rides export as FIT or GPX from the activity page; convert FIT before uploading. If you pay for Strava and use Claude, the official connector skips all of this.
Is it safe to follow a ChatGPT training plan?
Safe enough if you set the guardrails: your real numbers, your hours as a hard limit, no more than one hard day after another, a rule to flag anything that sounds like an injury, and you check the arithmetic. Unsafe if you take the first draft as written. The scientists who scored its plans found the bare-request version inadequate on 19 of 22 criteria.
Published September 15, 2026