New online workout editor

This tool is unsupported and the page only preserved for historic reasons.

The online ZWO editor from ZwiftHacks lets you create a custom Zwift workout from a simple text input.

Here you have an easy way to create a workout with predefined steps given duration and power target. The power target can be

  1. an absolute number (in watt)
  2. a percentage of FTP
  3. a zone number from 1 to 6 (the zones are the same as Zwift uses)

There are other more advanced workout editors out there, should you need more than this.

It can also create a Zwift workout (ZWO) directly from more complex multi-column text inputs such as a list of race intervals in a race plan from Best Bike Split or other tools.


When you press the ‘Create’ button the input is analysed and a workout with SteadyState steps is created.

Each line in the input field is analysed by itself. If it does not have a format which Simple ZWO Creator recognises, it will simply be ignored.

The lines which go into the workout must have this format:

  1. The line must start with either ‘#’ immediately followed by a number or just a number.
  2. After the number there must be one or more white space characters (space or tab) followed by a duration (eight characters in the format hh:mm:ss).
  3. After the duration there must be one or more white space characters.
  4. The line must end with a number (one or more digits) followed by either nothing (i.e. end of line), white space, or one of the strings ‘%’, ‘w’, ‘watt’, or ‘watts’ (case doesn’t matter) plus nothing but white space until the end of the line.
    The number may be immediately preceeded by the letter ‘z’ (case doesn’t matter), In general, if the ‘power’ number is less than or equal to 6, it will be interpreted as a power zone

Everything between duration and power is completely ignored so these two examples will result in the same:

Interval hh:mm:ss Power
1        00:01:47 193

gives the same result as

Interval Int. Time Total Time Int. Dist. Total Dist. Grade   Speed      Power 
#1       00:01:47  00:01:47   0.81 km    0.81 km     +0.71 % 27.03 km/h 193 watts


In this example the power number is less than or equal to 6, so it will be interpreted as a power zone:

Interval hh:mm:ss Zone
1        00:01:47 2






  1. Hey Jesper. I think something changed since a previous version of Zwift. When I recently used this tool, the file gave me very long workouts in Zwift. I think it’s now looking for total seconds for each segment, vs a format of hh:mm:ss, which comes out as a 4 or 6 digit number in your file with no separator. It’s taking that as seconds. So in your example above, it’s reading the 1 minute 47 seconds, output as 6047 as over 100 minutes. Perhaps their recent upgraded changed the formatting there? Thanks for all the work you do here!

  2. Hello , thanks very much for the tool. Is it possible to choose power zone targets rather than a specific number?

    1. It wasn’t, but based on your comment I just made it possible to input percentage of ftp (e.g. 80 % or 80%) instead of absolute power.

      Take a look at example 1 in the tool to see the accepted format.

      I hope you like it 🙂

    2. I made it possible to enter a zone number from 1 to 6, too. The format must be like z1, Z3, or simply 6. In general, if the ‘power’ number is less than or equal to 6, it will be interpreted as a zone. See example 2 in the tool.

      The zones are the same as Zwift uses.

      1. Super tool!
        Do you know if it’s possible to use the zone as a whole?
        In the current tool, even when using Z1 etc., the code is created with one single %FTP value, which means the workout will go to this specific target.

        What I’m looking for is a way to define the upper and lower boundary of the zone, zo you can have a ‘free’ride within that zone. The trainer would only start to compensate once you leave the zone.

        Don’t know if this is too ambitious or even possible, but it’s worth a try.

        1. No, I don’t think you can do that with Zwift workouts. I would assume that the trainers could vary in how responsive their ERG mode is to changes in power input but it will still be a very narrow band you have to stay within.

  3. Good work, I assume this doesn’t work with the Apple TV version though? Doesn’t seem to be any way of transferring files to/from the Apple TV?

    1. You are right. For now the only way to transfer custom workouts to Zwift on Apple TV is to link Zwift with a TrainingPeaks account and create the workout in TrainingPeaks.

  4. Hi I need to create personalized workouts simulating a climb of a certain percentage is it possible?

Leave a Reply

Your email address will not be published. Required fields are marked *