Get started

Workouts

Workout notation

The full syntax for typing running workouts in Runtool — intervals, paces, recoveries, warmups, and what gets filled in automatically.

Workout notation is the shorthand for typing a running segment as one line of text. Click a day on the Calendar and type the segment the way you would say it: 10x400m, 30min tempo, 8km easy. Press Enter and it becomes a segment you can see — reps, recoveries and target paces from your zones filled in — which you can then adjust with the controls or reopen as text.

You never have to keep the notation around. It is how a segment gets written, not something kept alongside the workout afterwards.

This page is the complete reference: every piece of syntax the parser understands, and every rule it applies when you leave something out.

Basic runs

A run on its own is a distance or a duration:

You typeYou get
8km8 km steady run
6mi6-mile steady run
45min45-minute run
1h 30min90-minute run (units combine)
10km easy10 km in Z2
30min tempo30 minutes in Z3
12km @ 5:3012 km at 5:30 per km

Distance units are m, km, and mi (also spelled meters, kilometers, miles). Time units are s, min, and h (also sec, secs, mins, hr, hours and similar). Pace targets accept both /km and /mi. Everything is displayed in the workspace's unit system.

A run with no pace or effort defaults to Z2.

Intervals

Intervals are reps x distance or reps x duration:

  • 10x400m — 10 reps of 400 m
  • 5x1km — 5 reps of 1 km
  • 6x3min — 6 reps of 3 minutes

Add a pace and a recovery with @ and /:

5x1km @ Z4 / 90s

That reads: five 1 km reps at zone 4 with 90 seconds recovery. Both parts are optional — leave either out and Runtool fills in a sensible default (see What Runtool fills in).

Sets of intervals

A second multiplier groups reps into sets:

  • 2x6x400m @ Z5 / 75s — 2 sets of 6 × 400 m

Blocks with changing pace

Parentheses group segments that run back to back, separated by +. A recovery after the closing parenthesis applies between rounds:

  • 3x(4min + 2min) / 2min — three rounds of 4 minutes plus 2 minutes, 2 minutes recovery between rounds
  • 5x(4min @ Z3 + 2min @ Z5) / 2min — each segment can carry its own pace

Pyramids and ladders

A dash-separated list in parentheses repeats the same rep with changing counts:

  • (5-4-3)x300m @ Z5 / 90s — expands to 5x300m, 4x300m, 3x300m, each at Z5 with 90 s recovery
  • (3-4-5-4-3)x200m — a full pyramid

Paces and efforts

There are four ways to say how fast, and the @ is optional in all of them (10km easy and 10km @ easy are the same):

ZonesZ1 through Z6, as defined on the Zones page. Z7 and above are rejected.

Effort words — plain words that map to zones:

WordsZone
recovery, recoZ1
easy, steadyZ2
tempoZ3
thresholdZ4
hard, fast, intervalsZ5
sprint, stridesZ6

Absolute paceMM:SS, optionally with a unit: @ 4:30 (per km when no unit is given), @ 4:30/km, @ 7:15/mi.

Target time per rep — a time range after the rep, for track work: 20x400m, 1:20-1:22 targets each 400 m in 1:20–1:22.

Recovery

Recovery comes after a /:

  • By time: 10x400m / 90s — timed rest between reps
  • By distance: 8x1km / 200m — a 200 m jog between reps
  • The word r or rest before the value is accepted: / r 60s

Add jog, walk, or rest after the value to say how the recovery is taken: 10x400m / 90s jog, 6x800m / 400m walk. Left out, a timed recovery is standing rest and a measured one is a jog — you can't cover a distance standing still.

If you write no recovery at all, Runtool adds one based on the rep (table below).

A rest of its own

A measure followed by jog, walk or rest is a segment in its own right, not a rep's recovery: 5min walk, 90s rest, 400m jog. Use it for a break between two efforts that isn't part of either.

Warmup and cooldown

Write them explicitly with WU and CD (or warmup / cooldown), each with a duration or a distance, and an optional pace:

WU 15min, 10x400m @ Z4 / 90s, CD 10min @ Z1
WU 3km @ Z2, 5x1km @ Z4 / 90s jog, CD 2km

WU and CD on their own are the lengths you have set, so WU, 10x400m @ Z4 / 90s, CD is a whole workout:

WU, 10x400m @ Z4 / 90s, CD

Or leave them out: quality workouts — anything with intervals, or a steady run at Z3 or harder — get a warmup and a cooldown added for you. Easy and long runs get neither. Writing your own WU or CD keeps yours instead.

The durations are a per-athlete setting — 15 minutes and 10 minutes unless you change them under Settings → Workout categories, where None turns either off.

What Runtool fills in for you

Everything you leave out gets a default. All of it is visible and editable in the structure before you save.

Recovery, when none is written, depends on the rep:

RepDefault recovery
Under 200 m2:00
200–600 m1:30
600 m – 1.5 km2:00
Over 1.5 km1:00
Timed reps up to 3 min2:00
Timed reps over 3 min1:00

Zone, when no pace or effort is written, is inferred from the rep:

RepInferred zone
Under 200 mZ6
200–600 mZ5
600 m – 1.6 kmZ4
Longer repsZ4 (Z3 past 10 km total)
Timed reps up to 3 minZ5
3–8 minZ4
8–20 minZ3
Over 20 minZ2
Steady runsZ2

Strides and progressive runs

Two additions can hang off the end of a workout:

Strides — short relaxed sprints, 20 seconds each, 6 by default:

  • 45min easy + strides — 6 strides after the run
  • 45min easy + 8x strides — pick the count
  • 60min including strides — strides inside the run rather than after it

Progressive — a run that speeds up:

  • 40min, progressive — pace rises throughout
  • 40min, progressive finish — easy running with a fast finish

Combining segments

Separate segments with commas, newlines, +, or the word then:

WU 15min
20x400m @ Z4 / 90s
CD 10min

is the same workout as WU 15min, 20x400m @ Z4 / 90s, CD 10min.

Typos and live feedback

The input corrects common slips instead of failing:

  • Missing unit: 10x400 becomes 10x400m; numbers under 60 are read as minutes, so 5x5 becomes 5x5min
  • Missing /: 10x400m 90s becomes 10x400m / 90s
  • Spacing never matters: 10 x 400 m parses the same as 10x400m
  • at is understood but @ is the canonical form

Problems the parser cannot fix are underlined as you type: red for errors that block parsing, yellow for things that were auto-corrected, dotted for style hints. Hover an underline to see what to change.

One slip the grammar cannot catch is the wrong unit on a right number: 20x400min is valid notation for twenty reps of four hundred minutes, which is 134 hours of running. A segment is checked against what a day can hold before it joins the workout, so a line like that stays in the row and says 400min per rep — did you mean 400m?. The same check runs on the finished workout: nothing over a day of running, 300km, or 200 reps can be saved, and a workout that is merely long — an 8-hour trail run, 150km — says so once and lets you through.

FAQ

Can I write distances in miles? Yes. Use `mi`, `mile`, or `miles` anywhere a distance goes — `6mi`, `4x1mi @ Z4 / 400m`, `0.5mi` recovery. You can mix units in one workout, and pace targets accept `/km` and `/mi`. Runtool stores distances in metres, so a mile is saved as its metric equivalent (1 mi = 1609 m) and displayed in your [unit system](/docs/unit-system).
Do I have to memorize the syntax? No. The plain forms — "10km easy", "10x400m", "30min tempo" — cover most workouts, and everything else in this page is optional detail. And you can start without typing at all: pause on the empty row and a list opens with segments for the day and a starting point for each kind of workout, each shown beside the notation that writes it.
What if the parser gets my workout wrong? A line that doesn't parse doesn't become a segment — it stays in the row and says what it didn't understand, so a typo can never rewrite a segment you already have. Once a segment exists, every rep, pace and recovery is editable with the controls, which can express things the notation cannot: recovery between sets, pace ranges, and targets set as a percentage of threshold. Segments like those open with their controls rather than as text, because no line of notation would say the same thing.
Is notation only for running? The full syntax is built for running. Other sports — strength, cycling, and other cross-training — are planned with a duration rather than notation. See [Workouts](/docs/workouts).