Create workouts and workout schedules for Garmin devices using an Excel spreadsheet to define them.
What's the benefit? Why use this rather than Garmin Connect?
Garmin Connect allows you to build workouts and schedule them, however it's quite tedious to use it to build a long training programme, say the sort you would to train for a marathon. It's also not possible to take a programme that you've created and then reuse it to train for the next race.
The idea with this application is to allow the definition of workouts (using a simple text format) and a schedule which can then be transferred to a Garmin watch. This definition is created in Microsoft Excel, so the application simply translates the spreadsheet into a set of Garmin FIT files that can then be copied over to the watch.
Uploading to the watch
The application produces a number of files in the output directory, with one FIT file per workout and another FIT file for the schedule. Copy all of these files to Garmin/NEWFILES on your watch. You can either do this by setting the output directory directly to this directory on the watch (on Windows only) or copying them (Windows or Mac). Modern Garmin watches don't appear as a mount on the Mac so you need to use something like Android File Transfer or MacDroid
NOTE: there is a Garmin limit to how many workouts can be loaded onto the watch, which I think is either 4 weeks or 20 workouts. If you have a schedule that's longer than this then the only workaround I've found is to re-upload the schedule every month as the app will not upload anything scheduled in the past, meaning you get the next 4 weeks loaded.
Uploading to a calendar application
The app can also create an iCal file that you can load into a calendar application. This is handy for viewing a complete schedule.
Workout Language
Steps
Workouts are defined as a series of steps, where a step is either a period of time, a distance or "Open" which means that the step end when the lap button is pressed. For example 10 minutes or 400 metres. A step can also have a target such as a pace or a heart rate. Steps are written as text, for example:
| Workout | Description |
|---|---|
1mi |
A step of 1 mile |
400m |
A step of 400 metres |
Open |
An open step - ends when lap button pressed |
100m@4:00-5:00/km |
A step of 100 metres with a target pace between 4 and 5 minutes per kilometre |
1mi>6mph |
1 mile at a pace faster than 6 miles per hour |
Open@8:00-9:00/mi |
An open step with a pace target |
800m@Z3 |
800 metres in heart rate Zone 3 |
400m@160-180bpm |
400 metres wth a heart rate between 160 and 180 beats per minute |
30:00@PZ4 |
30 minutes at power zone 4 |
20km@300-400W |
20km at a power between 300 and 400 watts |
Sequences of Steps
Steps can also be strung together with a + character, repeated using *n and grouped using brackets, for example:
| Workout | Description |
|---|---|
1mi + (400m@7:00-8:30/mi + 200m@10:00-12:00/mi) * 4 + 1mi |
An interval session comprising 4 repeats of 400m with 200m recoveries plus a mile of warm-up and cool-down |
Open + (400m@7:00-8:30/mi + 200m@10:00-12:00/mi) * 4 + Open |
An interval session comprising 4 repeats of 400m with 200m recoveries with open warm-up and cool-down steps |
Step Intensity
Steps can be marked with an intensity. This changes how the step is displayed on the watch but other than that
has no impact. The intensity is a suffix on the step using a pipe character |.
For example:
1mi|Warmup + (400m@7:00-8:30/mi|Active + 200m@10:00-12:00/mi|Recovery) * 4 + 1mi|Cooldown
More examples can be found in ExampleWorkoutSchedule.xls
Units
Distance
| Unit | Description | Example |
|---|---|---|
| m | Metre | 400m |
| km | Kilometre | 5km |
| mi | Mile | 26.2mi |
Intensity
Valid values for the intensity are:
- Active
- Rest
- Warmup
- Cooldown
- Recovery
Pace
A pace is just the time, in minutes and seconds per distance unit, e.g. 9:00/mi is a 9 minute mile; 4:30/km is a 4:30 minute kilometre.
Pace Range
These are more useful and are used to set a target range for a workout with a minimum and maximum time per distance unit. During a workout the watch alerts you if you are too fast or too slow. Examples:
| Pace range | Description |
|---|---|
| 8:00-9:00/mi | between 8 and 9 minutes / mile |
| 4:00-5:00/km | between 4 and 5 minutes per kilometre |
Paces can be given names in the Pace sheet of the workbook. This is optional but can be useful for two reasons:
- less to type if you regularly use a term like "TEMPO" or "FAST" in your workouts
- less to update if you want to change the pace for all workouts (e.g. you are getting faster through training and want to increase the pace on all workouts)
Heart rate ranges
There are two ways to express this, either as beats per minute (bpm) or as a zone (Z1 - Z5). The HR zones are defined inside the watch based on measurements it has made. Examples:
| HR range | Description |
|---|---|
| 120-130bpm | between 120 and 130 beats per minute |
| Z3 | Zone 3 |
Power ranges
These are similar to heart rate ranges where the units are watts (W) and the zones use a "PZ" prefix and a number between 1 and 7.
Examples:
| Power range | Description |
|---|---|
| 300-400W | between 300 and 400 watts |
| PZ4 | Power zone 4 |
Excel workbook
The app expects the input workbook to have specific named sheets and specific column headers within these. Any additional sheets or columns are ignored.
| Sheet | Description |
|---|---|
| Pace | Named page ranges for use as a shorthand in workout definitions |
| Workout | Named workouts in the workout language described above |
| Schedule | A schedule for workouts for specific dates |
| Sheet | Column | Description |
|---|---|---|
| Pace | Name | The name for a pace |
| Pace | Value | The pace defined in workout language |
| Workout | Name | The name for a workout |
| Workout | Description | The workout language definition, may include named paces defined in the pace sheet |
| Workout | Sport | The sport that this workout is for (if not present running is the default) |
| Schedule | Date | The date for a specific workout |
| Schedule | Workout | Either defined in the workout language or the name a named workout from the Workout sheet |
| Schedule | Sport | The sport that this workout is for (if not present running is the default) |
Sport types
The sport type case be specified as a value in the spreadsheet under the Sport heading. The values supported are:
| Sport | Description |
|---|---|
| Running | Running of any type |
| Road running | Road running |
| Trail running | Trail running |
| Cycling | Cycling of any type |
| Road cycling | Road cycling |
| MTB | Mountain biking |
| Swimming | Pool swimming |
| Open water | Open water swimming |