Skip to content

A command line tool for ZWO Workout Creation and Management

Notifications You must be signed in to change notification settings

jameswberry/workout-creator-cli

Repository files navigation

workout-creator-cli

A command line tool for ZWO Workout Creation and Management

Convert CSV data into Zwift Workout Files.

Usage

> git clone https://github.com/jameswberry/workout-creator-cli.git

> cd workout-creator-cli
> npm install

INTERACTIVE MODE
15 > node workout-creator-cli
Input [.csv] > (WorkoutCreator.csv) 
Output Directory > (./) 
Template [.mustache] > (WorkoutCreator.mustache) 
Verbose > (true) 
Debug > (false) 

CLI ARGS
23 > node workout-creator-cli --input WorkoutCreator.csv --output ./ --template WorkoutCreator.mustache -- verbose true --debug true

CSV Format

The following "columns" are required in the input CSV.

  • Phase
    • The top level grouping for individual workouts. (e.g. Aerobic Base, Base, Hills, etc.)
  • Class
    • The incremental class number within the phase (e.g. 1, 2, 3, 4)
  • Type
    • The type of block in the class. (e.g. Author, SteadyState, etc.)
    • See: Workout Block Types for Type value definitions
  • Value
    • A value or message associated with the Phase:Class:Type block.
  • Offset
    • Time offset for blocks of type TEXTEVENT. (5 or 10 Second increments)
  • Repeat
    • Number of times to repeat the block.
  • Duration
    • Total duration of the main block. (Seconds)
  • DurationOff
    • Total duration of the off block. (Seconds)
  • Power
    • Power target for the block. (% of FTP)
  • PowerLow
    • Low power target for the block. (% of FTP)
  • PowerHigh
    • High power target for the block. (% of FTP)
  • PowerOff
    • Power target for the off block. (% of FTP)
  • Cadence
    • Cadence target for the block.
  • CadenceLow
    • Low cadence target for the block.
  • CadenceHigh
    • High cadence target for the block.
  • CadenceOff
    • Cadence target for the off block.

Workout Block Types

Workout Details

Each Class in each Phase is required to have the following block Types defined.

  • Author
  • Name
  • Description
  • Sport
  • Tag (Multiple, Optional)
    • Zwift Defaults: RECOVERY, INTERVALS, FTP, TT.
      • Note: A tag will automatically be added to the Class for the Phase value (e.g. Base, Hills, etc.). This allows you to search groups of workout classes by Phase in Zwift.

Workout Blocks

Supports all of the default ZWO blocks, as well as custom workout block options.

Default Blocks

  • Warmup
  • Ramp
  • Steady State
  • IntervalsT
  • Freeride

Custom Blocks

  • ProgressiveWarmup
  • ProgressiveBuild
  • SteadyBuild
  • Progression
  • Rest
  • ActiveRest
  • AlternatingClimb
  • Climbing
  • SeatedRoller
  • StandingRolloer
  • PaceLine
  • Cooldown
  • BigDaddies
  • Motivation5

TextEvent

Text events are displayed on the Zwift screen, triggered at the beginning of each workout block. They can be added in three ways:

  1. Value
    • Associating a Value with a Phase:Class:Type workout block in the CSV will automatically add a TextEvent at time 0 with that value.
  2. Type
    • Adding a TextEvent block will automatically apply the TextEvent to the previous non-textevent block at time Offset.
  3. Defaults
    • Many Custom Blocks add predefined TextEvents.
    • If you choose to add your own, you will want to confirm that your Offset values take these into consideration.

TextEvents are displayed in Zwift for 10 seconds, so it's recommended that Offset values are in multiples of 5 or 10.

About

A command line tool for ZWO Workout Creation and Management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published