Intervals.icu workout markdown format rules

While there is the workout builder forum post here acting as the source of the intervals workout format:

I thought it would be a good to compile all the intricacies of the intervals markdown format for my app zonepace and it may be useful to others:

I have made as well a workouts section with some of the most common workouts here:

Feedback or corrections are welcome.

9 Likes

Hey, this looks awesome, I just downloaded the app. Just one thing I noticed: It seems like the graphs do not appear when the workout is planned with HR, is that right? (I know, specific about the app, slightly off-topic)

yes that’s correct there is a bug there,

i was just fixing it as we speak :slight_smile:

hopefully i can ship a fix sometime soon!

1 Like

Many thanks for documenting the Workout Text formatting and rules this is what I’ve been looking for when I started to use Intervals !

3 Likes

Awesome, very well documented.

1 Like

When I try an example:

Warmup
- 1mi Z1 HR

Main Set 4x
- 1mi Z4 Z4 Pace
- 0.5mi Z1 Z1 Pace

Cooldown
- 1mi Z1 Pace

It doesn’t render it correctly in ICU. Thoughts?

That’s a mix of HR, Power and Pace zones. Is that intended.?

Just copied the “Distance-based Intervals (Run)” on the website.

1 Like

you right i’ll fix it! this is wrong..

There are markdown available for timed text prompts, it’s a pity that is not documented anywhere, AFAIK. Example:
This is a ZWO file with timed prompts:

<workout_file>
    <author>G.Z.</author>
    <name>Timed prompt test</name>
    <description>Test file for timed prompts</description>
    <sportType>bike</sportType>
    <tags>
    </tags>
    <workout>
        <Warmup Duration="600" PowerLow="0.25" PowerHigh="0.75">
            <textevent timeoffset="0" message="First prompt at 0s"/>
            <textevent timeoffset="33" message="2nd prompt at 33s"/>
        </Warmup>
    </workout>
</workout_file>

This is the intervals.icu syntax:

Test file for timed prompts

Warmup
- First prompt at 0s 33^ 2nd prompt at 33s<!> 10m ramp 25-75%

Thanks. This is quite niche and I hadn’t seen it documented anywhere else.

I’ve made this change to the page:

I’m also thinking about how to make this page collaborative. I don’t mind taking it out of the ZonePace site if it makes contributions easier.

Eventually as well, for the icu developers I want to publish a small parser library with a simple AST rule in JSON. That would give developers a clean structure they can parse and extend without guessing how the text should be interpreted.

This is really cool, thanks for sharing. From what I understand, the app has no direct relationship with the device or app that will actually run the workout, right? I ask because some details may behave differently depending on the destination.

A small sidenote about “time”: the combined format “1m30” works, but it might be worth mentioning that “1h30” does not.

Hello Gabriel, if we are talking about the app zonepace, then yes, you are correct. I have only focused on workouts and planned workouts for now. I am planning to do this in the future, but it’s not simple, since intervals.icu cannot (due to Strava restrictions) give me access to activities imported via Strava (and I am guessing that’s most users). I did get granted a Strava app for integrations for 1000 users, so I may be able do this in the future, but it hasn’t been my priority yet for zonepace 1.0 release.

and thanks for the correction, will make a change to the website.

1 Like

Hi Sam,
Yes, I was referring to zonepace. But actually, my question was more about which device will receive/sync the workouts and execute them. Let me give a few examples:

  • Cadence: Garmin accepts cadence ranges, but Zwift does not.
  • Power as % of FTP: If the workout is executed in Zwift, power targets will follow the FTP configured in Zwift. If the workout is written using absolute watts, then an override function applies, and it no longer depends on the FTP set on the destination device. This must be known, specially for coaches.
  • Ramps: Some devices accept ramp steps, others do not.
  • Etc.

That is why I asked which device the workouts are ultimately destined for, or if you had something specifically in mind. In fact, Strava would not have any connection to this part at all.

Ah i see yeah that make sense! i don’t have that information at hand but i’ll be happy updating that website when we know it.

1 Like