Hack the workout categories list

Update 2020-05-10 – The most recent version of Zwift tries to read workout.categories from the folder Documents\Zwift\Workouts and not as described below. You could try manually creating the file here instead and see how it goes. See the comment section for a comment from today (2020-05-10) with the default content for workout.categories


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 (WindowsWindows The Windows operating system from Microsoft.) or ~/Library/Application Support/Zwift/data/Workouts (macOSmacOS The operating system on the Mac computers from Apple). 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.

E.g.:

  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!

Before

After

Example

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

<workout_categories>

 <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>GCN</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>

</workout_categories>

13 comments

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

  1. It’s maybe possible using TrainingPeaks.

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

    https://github.com/mhanney/zwoparse

    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?

  2. 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

  3. Hello
    the workouts.categories file is changed and cannot be displayed in zwift

    1. I can see that Zwift tries to read workout.categories from the folder Documents\Zwift\Workouts. You could try manually creating the file here instead and see how it goes.

      1. This is the default content in the current version of Zwift:

        <workout_categories>

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

        </workout_categories>

        1. I did a test with a new training with a new category and in the menu it creates the category well but I do not find anything in the workouts categories file 🙁

          1. workout.categories actually only contains a subset of the categories. Zwift shows the categories it finds in workout.categories first and then all other categories. Zwift does not update the workout.categories file but you can use it to override the sort order.

            I just tested it with this small file:

            <workout_categories>

            <category>Custom Workouts</category>
            <category>Your First Century</category>
            <category>Zwift Academy 2019</category>

            </workout_categories>

            It puts these three categories at top of the list and lets Zwift sort the other.

            (I have also deleted the old workout.categories from the Program Files folder)

Leave a Reply

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