.zwo format for workouts

It would be very helpful if the workouts could be downloaded in .zwo format for use in Zwift without having to convert the file.

Hi Anthony. We have a open workouts API for third-parties to obtain workouts from Xert. But one thing that other programs aren’t able to handle yet is variable intensity or variable duration intervals. For this you’ll need one of our players at the moment.

Hi Anthony – On the off chance you have access to Python, try:

Zerg - simple ERG/MRC -> Zwift Workout File convertor

you can download it here: https://github.com/wiedmann/zerg_zwo_converter

I have been using it with good results.


Obtaining workouts by pulling them through the API is one thing, but being able to then integrate existing workouts from Zwift into Xert, and ride them using the Garmin would be a benefit as well. Can this API accept POST data to upload/sync an existing workout with Xert?

Hi David. We don’t yet have an API or facility to import workouts into Xert. We can consider adding the feature. Note that the Garmin’s do have their own workout player that will work with TCX and FIT based workout definitions. Also note that with the added features in our Workout Designer, workouts can be defined to work with greater athlete universality. It would be great to adapt other workouts to use our intensity/duration definitions so that the can be used by a wide variety of athletes.

I’ve been suggesting for a year or more, to put together a committee/advisory board of sorts, to ratify and agree upon a format for a ‘standard’ workout definition, much like we have a standard around GPX/TCX/FIT/etc. file formats to describe activities.

If we had one around workouts, and Zwift, Xert, Strava, TrainingPeaks and others could interpret and import/export those, we would be in a much better place for the fitness community.

We’ve done our bit describing the various pieces of a Zwift Workout file on the Zwift Coders forum and etherPad site, but we need to bring this to a broader bit of attention and review, so more people can weigh in (no pun intended) and provide input towards developing that standard.

Dynamic workout zones is one area that could be useful to some, but not readily supported by others (like Zwift, Strava). We’re going to fail, if we have 11 different ways to describe, store and manage workouts for athletes.


The best thing about standards is that there’s so many to choose from. :wink:

Hi David. We’re for creating a standard as it would simplify our efforts to provide import/export support for other workouts. One thing I’ve voiced to others is the need for greater workout universality. This will reduce the burden of creating workouts and we’ve focused very heavily on allowing the ability to define workouts that operate the same independent of the athlete. This reduces the need to add more sophistication and complexity for broader usage scenarios and instead puts workout definition into the hands those that are designing workouts for everyone. Scope of workout definitions and features are very different in these two use cases.

Note that our workout definitions would require not-so-simple mathematical processing in real-time to support . We can provide a library that could be used.