Documentation on ZWO custom workouts

Can you please publish the syntax documentation on the .zwo files for building custom workouts.  I’ve been able to figure out what some tags do but this is all by trial and error.

For example what options are available for <text event>, I’ve found timeoffset, duration, message.  Is there anything for size, location, ect?

Is there a way to specify what order the files show up in a custom training plan besides alphabetical?


1 Like

I agree with Tom.  Using trial and error I started a skeleton of definitions but would be great to get something from Zwift.   One of my main questions is whether or not it is possible to simulate a downhill as experienced in game as part of my custom workout?  Evidently using a negative power number is not the solution.  We are currently on our own to understand what attributes are avail for each element/tag level and how to implement.  Granted there are some examples which can be ferreted out but I can’t imagine there isn’t some documentation already available which could be redacted to protect proprietary information yet equipping  power users who want to create legit workouts compatible with the Zwift parser/engine.  

Below is a high level summary of tags and attributes for each I have put together by trial and error.  This is NOT an official definition and is a work in process


Can you give a bit more detail on syntax please e.g. some attributes appear to require quotes and some don’t, and would both of these “work”, and if not both then which one. Loading up to experiment would be my last resort :slight_smile: I much prefer to request knowledge rather than work it out for myself. It’s just more efficient. Thanks Rob

<FreeRide Duration=“60” Flatroad=“1”>

<FreeRide Duration=“60” Flatroad=1>

yes Zwift I think there are some good reasons to ask these questions for editing the workout scripts.  In the free ride option I have to assume the flatroad=“x” is where x= the slope of the road within normal boundaries.  In the ramp option there is a pace=“x” but it is not obvious what that can mean if the ramp rate is defined by the start and final wattage and the time the rate of change is already there so what does pace mean?  Is there a users guide anywhere?  Slope mode is obviously available since that is the basis of Zwift on all smart trainers.  Also why can we not get the text files of the standard workouts so that we can edit them and use them as custom workouts?

While writing my own workouts (I find the GUI editor too slow and cumbersome), I’ve found it’s nice to comment my work so I know what I’ve done later. Since .zwo files appear to be following XML rules, you can add (non game appearing) comments in the file by using the <!-- --> tags.


<!-- Begin 2nd set of intervals here -->

or spanning multiple lines to temporarily remove sections without deleting them:

<!-- This interval removed for now
  <SteadyState Duration=“120” Power=“1.0523109” pace=“0”/>
  <SteadyState Duration=“60” Power=“1.1764706” pace=“0”/>