Hack the workout categories list

Hidden in one of the Zwift data folders lies an opportunitiy to hack the workout categories list.

Take a look at the file workout.categories in C:\Program Files (x86)\Zwift\data\Workouts (Windows) or ~/Library/Application Support/Zwift/data/Workouts (macOS). If you editing this file you can e.g. have the custom workouts section at top of the workout list rather than the bottom. No more will scrolling be required to select a custom workout!

This is how to do it

Zwift reads the list of files in the folder and will use the OLDEST (in terms of file creation time, not file modification time) file named <something>.categories to determine how workout categories are listed in the ‘Select Your Workout’ screen. Because of this you want the original file out of the way but still at hand should you need to restore the original behaviour.

Make a copy of workouts.categories and call it e.g. my-workouts.categories.

I suggets that you simple rename the old (original) workouts.categories to something like workouts.categories-original and work only in your copy (I will assume for the rest of this tutorial that you called it my-workouts.categories).

On a Windows PC you must start a text editor such as Notepad as administrator to be able to edit my-workouts.categories.


  1. Search for notepad, right click on the search result, and select Run as administrator.
  2. In Notepad, open C:\Program Files (x86)\Zwift\data\Workouts\my-workouts.categories.
  3. Re-order the categories as you like.
  4. Save the file.
  5. Start Zwift and see the difference in the workout list!

In macOS the step would be

  1. In Findes choose ‘Go to Folder’ for ~/Library/Application Support/Zwift/data/Workouts.
  2. Right click my-workouts.categories, select Open With | Other…, and navigate to TextEdit as the app to open with.
  3. Re-order the categories as you like.
  4. Save the file.
  5. Start Zwift and see the difference in the workout list!






This is the my-workouts.categories content for the After picture above:


 <category>Custom Workouts</category>
 <category>10-12wk FTP Builder</category>
 <category>FTP Tests</category>
 <category>6wk Beginner FTP Builder</category>
 <category>Today's Plan Custom Workouts</category>
 <category>Less than an hour to burn</category>
 <category>60-90 minutes to burn</category>
 <category>90+ minutes to burn</category>
 <category>Zwift Academy</category>
 <category>Olympic Tri Prep Plan</category>
 <category>12wk Winter plan (advanced)</category>
 <category>8wk Race Day Prep</category>
 <category>Your First Century</category>
 <category>TimeTrials specific</category>
 <category>Hunter's Challenge</category>




Jesper lives in Vejle, Denmark and has been zwifting since 2015. He rides with World Social Riders whenever possible. Zwift name: Jesper Rosenlund Nielsen [ZwiftHacks]

You may also like...

4 Responses

  1. Yerik says:

    Hi bro,
    Are there anyway to export Zwift workouts to Garmin 520?
    I want to export this workout to my Garmin Edge 520.

    • Jesper says:

      I can’t remember having seen any tools which convert Zwift .zwo workouts to a format that you can load into your Garmin Edge.

  2. Mads says:

    It’s maybe possible using TrainingPeaks.

    TP accepts CSV format for import of workouts and you can convert .ZWO to CSV using this script:


    Then all you need is to rearrange the CSV to match TP requirements 😉

    But maybe the easiest would be to do a feature request for TP or GoldenCheetah as both support export of .ZWO files – the reverse shouldn’t be that far away?

  3. Chris Mather says:

    Hello. Great site!

    Do you know how to turn the custom workouts into a custom training plan? I love the fact that the training plans just pop up on the day you need them but unfortunately there is no plan that suits my purposes (climbing training) so need to make my own. I have the workouts all ready to go but just need to schedule them via a plan. Hope you can help. Thanks

Leave a Reply

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