Hi! I’ve been using ChatGPT for a while to generate or convert training sessions into the Intervals.icu format. I asked it to create a prompt to teach it how to do this since it doesn’t have this knowledge by default. In my case, I’ve been asking it to remember the details, and as I correct it, it rarely makes mistakes anymore.
A very common use case for me is converting a workout I want to do, sometimes starting from an image, such as a workout from What’s on Zwift.
I asked it to generate a prompt to teach other IAs to do it, hope you find it useful (it may require further adjustments):
Prompt to Teach AI How to Write an Intervals.icu Workout
Instructions for Writing an Intervals.icu Workout
You will write a workout in the specific format used by Intervals.icu. Follow these detailed rules and examples to ensure the output is valid and easy to use.
General Formatting Rules
Time Format:
Use h for hours, m for minutes, and s for seconds.
Examples: 5m for 5 minutes, 30s for 30 seconds. Use exact durations like 30s instead of 0:30.
Power Targets:
Specify power in watts (e.g., 200W) or as a percentage of FTP (e.g., 85%).
If using ranges, separate them with a hyphen (e.g., 200-220W or 85-90%).
Zones:
Use training zones (e.g., Z1, Z2, Z3) if preferred. Match the description to the power targets.
Cadence:
Add a cadence target in revolutions per minute (e.g., 90rpm).
Repetitions:
Group repeated intervals using the format nx (e.g., 4x for 4 repetitions). Follow it with the steps of the interval.
Ramps:
Use the keyword ramp for gradual increases or decreases in intensity.
Example: 10m ramp 60%-90%.
Prompts and Labels:
Add optional descriptions or prompts. Place them as plain text before the steps. Keep them brief.
Full Workout Structure
Divide the workout into sections such as Warmup, Main Set, and Cooldown.
Leave a blank line between sections and repeated sets for readability.
AI related, I was trying to input my last season into chatgpt (free) or ollama (llama 3.3) to ask AI to summarise my season and trying to do some simple analysis but I failed.
I’ve tryied with a zip of all my fit files or export a csv from intervals but couldn’t find a way of making him to understand the data…
Anyone that tried the same had success and wants to share his experience?
Would be possible to “train” the AI with my data using intervals API?
Very nice and I’m interested to learn what AI can help in term of training and data analytics. Personally I’m a runner so if anyone is giving a try to generate some workout I’d be interested. I’m thinking to try Copilot and Grok but wondering which LLM model would be best in our situation. What if we could use AI plug into Intervals and get recommendations on daily workouts, plan for the week, any possible risk of injuries based on trends, etc. Of course in OpenSource mode as I think Strava started to offer this in their Premium subscription?
Nice prompt and usage of AI to generate workouts! I’ve been playing with ChatGPT and the Intervals API myself this holiday period and even made a script to upload all workouts created by ChatGPT automatically to Intervals. You can check it out here: Using AI (ChatGPT) to Write Intervals.icu Workouts.
In my case, I’ve shared my yearly event planning and asked for custom training schedules tailored to each goal. Now, I generate a custom monthly plan at the start of each month, accounting for things like weekends, family trips, etc., and upload it directly to Intervals and my Wahoo.
This has saved me hours of planning and ensures my training aligns with my schedule and goals. I’d love to hear how others are integrating AI or automating their training workflows. Any tips or ideas to improve this further?
It took me few prompts but it worked I’ve asked a sample workout to illustrate. Originally when I used your prompt (that I had to translate in French, also using ChatGPT) it was formatting workouts with rpm for cycling but as I’m using Stryd and CP I have provided my power zones.
I imagine it’s possible to train the AI with your data, though that would likely require more in-depth research into AI methodologies. Perhaps you could start by asking the AI what kind of output it needs for the analysis. Chances are, you don’t need to provide all the data from your FIT files—just some key results and metrics. Using multiple prompts to supply the right context could also be helpful.
In the past, I experimented by uploading screenshots of the intervals calendar. The AI seemed to interpret the values quite well. You could try uploading data from a couple of weeks, along with the fitness charts, to see what insights it generates.
Nice! I’ve tried it myself, but I found it a bit lacking. In my opinion, it can’t yet replace a good, experienced, and opinionated coach. While it provides a wealth of information, the results can vary significantly depending on your input and biases. Sometimes it feels too accommodating, always trying to be helpful, whereas a real coach would tell you directly, “This is what you need to do.”
I’m not sure which option would work better. Personally, I mostly use ChatGPT (with a Plus subscription). I find it easy to use, and it can remember some details, so you don’t have to repeat yourself every time. Desktop models aren’t quite as powerful yet.
I imagine all services will eventually integrate AI, but what I’ve seen from Strava so far hasn’t been very impressive. It just makes generic comments on your training without providing real insights. For example, it might say something like, “Nice ride! Sustained high power output with some lower intervals. You’re a great rider, keep up the good work!”
Hi @Jonasdlm , seems that the link you posted is for the first post of this thread
I believe that what you did is “similar but opposite” to what I would like to do, using intervals API to send data to the AI.
Did you use the free version of chatgpt or the plus subscription?
I tried that. In activity list I’ve exported in csv format a list of my rides with some details (time, avg power, ftp, so on…) but the model seemed to know nothing about cycling (llama 3.3) and gave me standard “answers” like the one in Strava… I think i should ditch this and go on with ChatGPT or trying another LLM in ollama (maybe mistral )
After the holidays I’ll keep going on with my tests and add things to this post if I can get some sort of results
Is there an example of what ChatGPT outputs? Also, I am not an expert by any means here, it isn’t clear what exactly I am supposed to enter into ChatGPT (sorry, being thick).
Super cool! Did something not too dissimilar by asking it to convert the workout syntax of " Daniels’ Running Formula" to Intervals.icu format. The original looks like:
6 E + 5 x (3 min I w/2 min jg recoveries) + 6 x (1 min R w/2 min jg) + 2 E
I didn’t even need to provide it with the full set of rules, but just gave it one example and asked it to come back if it stumbles over any syntax it doesn’t yet understand. Worked miracles and allowed me to convert the full marathon plan to Intervals.icu
I used Ariel’s prompt as inspiration to create my own GPT: Coach GPT for Intervals.icu.
The idea is to use this GPT to generate training plans that you can upload directly to Intervals.icu via the API. I’ve built it using Ariel’s text as a base, combined with my ATP and 4DP profile.
I’d love for someone to give it a try and share feedback with me. Let me know how it works for your training schedules and if there’s anything I can improve! You can use the prompt to create plans and integrate them via the API. Thanks in advance!
Thanks for creating this! I’ve given it about 6 different attempts and everything looks great until it goes to create the JSON for Intervals.icu.
I can only get about a week of workouts planned, and then it lists the races I told it about. I’ve even tried not prompting it with my races, solely just my goals, and it only gives me about 5 workouts for the next week’ish.
Whatever I do, I can’t get a year worth of workouts planned around my races. But like I’d said, before we get to that point everything looks great in the propts and what it says it is going to do.
Let me know if I can replicate this for you and share a chat from ChatGPT.
“Why won’t ChatGPT give me a full year’s workout plan in JSON?”
Well, let’s ask ChatGPT!
ChatGPT:
“I’ve got the memory of a goldfish once I hit my token limit. One minute, I’m heroically mapping out your entire year of workouts, and the next minute, I’m only describing your first week. It’s not that I don’t want to keep going—it’s just that my ‘brain’ gets ‘full’ and can’t store (or spit out) the extra details!”
Why does this happen?
When generating detailed JSON, each field (date, activity, duration, intensity, etc.) soaks up a lot of tokens. Before you know it, you’ve hit the model’s text limit, and the rest of your workouts never see the light of day.
Think of it like trying to write a whole novel in a single tweet—you’re bound to run out of space.
What’s the workaround?
Break it down: Plan your training for the whole year, but only ask ChatGPT to generate JSON in smaller pieces—like every 3 weeks.
Adapt to real life: You can then add any last-minute changes (family weekends, city trips, holidays, business trips, etc.) into your next 3-week plan. That way, if you end up in a hotel with only a treadmill, ChatGPT can suggest workouts that don’t require a bike.
So, even though it’s annoying not to get a full year’s worth of JSON right away, there’s a silver lining: you’ll have more accurate, up-to-date training schedules every time you check in.
Thanks so you mean GPT will remember your whole year plan that you’ve asked him to create and then any day any time you can ask changes for let’s say next week or the current day and he will adapt? Like you would chat with a real coach then? On my side I still like to have visibility on the next months and if possible whole year because I’m planning holidays, A/B/C races, etc.
Yes, GPT can remember your whole year plan! I told it about my A/B/C races, planned holidays, no weekend training (3 little kids!), and my weaknesses that need extra focus. It then created a full annual plan with base, build, taper phases, and so on.
I can ask for an overview at any time, and it delivers instantly. Every three weeks, I request a new plan, share updates (e.g., “Thursday evening is solo with the kids, so indoor bike instead of running”), and it adjusts accordingly. I even request the plan in JSON format to upload directly to Intervals.icu.
It feels a lot like chatting with a real coach, except that a real coach could plan further ahead directly in Intervals.icu! That said, you can still generate and upload plans month by month or week by week to maintain visibility over your whole year.
The only limitation is the token limit of ChatGPT, but that’s manageable if you break the planning into smaller chunks.