All posts
Guides ·20 August 2025 · 8 min read

How to export a workout to your Garmin or Zwift (.zwo and .fit explained)

The Moveee team

Free coaching · a real route for every ride

You built (or were given) a structured workout in one app, and you want to ride it somewhere else — on your Garmin out on the road, or in Zwift on a rainy Tuesday. That trip happens through two file formats, .zwo and .fit, and the whole topic is less mysterious than the file extensions make it look. Here's what each format actually is, what opens where, and the exact steps to get a workout onto the two most common destinations.

The short version
  • .zwo is Zwift's XML workout file; .fit is Garmin's binary format, spoken by nearly every head unit.
  • The classic confusion: a .fit file can be a workout (a plan) or an activity (a recording). Same extension, different things.
  • Targets travel as % of FTP, so a workout stays correctly hard everywhere — as long as your FTP is set the same in each app.

The two formats, demystified

.zwo — the Zwift workout

A plain-text XML file describing a structured workout: warm-up, intervals, recoveries, each with a duration and a target as a percentage of FTP.

Human-readable — you can open one in a text editor and see the intervals. Understood by Zwift and by several other training apps.
.fit — Garmin's binary format

A compact binary format from Garmin, used across the whole industry. Not human-readable, but far more widely supported by hardware — head units speak .fit natively.

One file extension, two jobs: a .fit can be a WORKOUT (a plan to execute) or an ACTIVITY (a recording of a ride). Same extension, different contents.

The .fit confusion, cleared up once

Most head-scratching in this area comes from one fact: .fit is used for both workouts and activities. A workout .fit says "do 3 × 12 minutes at 90% FTP" — it's instructions, made before the ride. An activity .fit says "here's every second of power, heart rate and GPS from the ride you did" — it's a recording, made after. They share an extension because .fit is really a container format with many message types inside. So when an import fails with something like "not a valid workout," you've almost certainly fed a recording into a workout importer (or vice versa). Nothing is broken; you just have the other kind of .fit.

What opens where

Destination .zwo workouts .fit workouts
Zwift Native — its own format Activities only (not workout import)
Garmin head units No Yes — workouts via Connect or USB
Wahoo (ELEMNT / SYSTM) No (ELEMNT); SYSTM has its own library Yes — planned workouts sync to ELEMNT
MyWhoosh Yes — imports .zwo workouts Activities export
Hammerhead Karoo No Yes — workout .fit files

Support shifts with software updates — treat this as the current lay of the land, and check your device's import options if a row surprises you.

Getting a workout onto a Garmin

1

Via Garmin Connect (the tidy way)

Open connect.garmin.com → Training & Planning → Workouts → import the .fit workout file. It appears in your workout library.

2

Send to device

In Connect, choose "Send to device" — the workout syncs to your Edge or watch next time it connects (Wi-Fi, phone, or cable).

3

Or go direct over USB

Plug the Edge in and drop the file into the Garmin/NewFiles folder. On next boot the unit ingests it into Training → Workouts.

4

Ride it

Start the workout on the unit; it steps through your intervals with target alerts. Pair a trainer and newer Edges can even drive ERG.

Getting a workout into Zwift

1

Find the custom workouts folder

On the computer where Zwift runs: Documents/Zwift/Workouts/<your numeric rider ID>. That per-rider folder is the magic location.

2

Drop the .zwo in

Copy the file into that folder. No renaming needed — the workout's name lives inside the XML, not in the filename.

3

Restart Zwift and look under Custom Workouts

Open the workout picker; your file appears in the Custom Workouts category. Zwift reads the folder at launch, so restart if it was open.

One wrinkle: on iPad or Apple TV there's no accessible Workouts folder, so custom .zwo files need to go in via a computer that shares the same Zwift account — they'll then be available on your other devices.

Why the workout stays the right hardness everywhere

Here's the elegant part of both formats: interval targets are stored as a percentage of FTP, not as raw watts. The file says "12 minutes at 90%," and each destination multiplies that by its FTP setting for you at ride time. That's what makes a workout portable across a whole winter of changing fitness — but it's also the one thing that can silently go wrong. If your FTP is 260 W in the app that built the workout and still 230 W on the Garmin from last spring, the "same" workout is a different session on each device. Whenever your FTP changes, update it everywhere you ride. It's a two-minute chore that keeps every exported file honest.

Exporting from your plan

If your training plan lives in Moveee, any planned workout exports straight from the calendar as .zwo or .fit — so the session your plan scheduled for Thursday can be ridden on your Edge up a real climb, in Zwift, or in Moveee Indoor without leaving the browser. The plan doesn't care where you ride the intervals; it only cares that you do.

Sources 5

Where this article summarises a study, the study itself is linked — not a write-up of it.

  1. 1 FIT SDK — overview of the Flexible and Interoperable Data Transfer protocol · Garmin Developers · 2024
  2. 2 FIT file types: Workout file · Garmin Developers · 2024
  3. 3 FIT file types: Activity file · Garmin Developers · 2024
  4. 4 Custom Workouts · Zwift Support · 2024
  5. 5 Borszcz FK, Tramontin AF, Bossi AH, Carminatti LJ, Costa VP Functional Threshold Power in Cyclists: Validity of the Concept and Physiological Responses · International Journal of Sports Medicine · 2018
Ride it, don't just read it

Your own roads, indoors, in a browser tab

Moveee Indoor pairs your smart trainer over Bluetooth and rebuilds a route you have saved as a 3D road — real gradients, ERG for the intervals, and the ride saved with full power data. Nothing to install. Free while it is in alpha.

Start an indoor ride

Keep reading

Guides

The best indoor cycling apps in 2026 (an honest round-up)

Zwift, TrainerRoad, Rouvy, MyWhoosh and the rest — what each one is actually for, what it costs, and how to pick the app that matches how you like to ride indoors.

Guides

No ERG mode? How to use your gears as the resistance dial on a dumb trainer

How to run a structured indoor session with no power and no ERG — the way everyone did it until about 2015. Four sessions that work, how to steer by heart rate despite its lag and drift, and the one caveat about your training plan.

Guides

An indoor cycling app for Windows with nothing to install

No admin rights, no 12 GB download, no launcher updating itself before every session. Here's how to run a full indoor cycling app on Windows with nothing to install — a browser tab, your smart trainer, and a real 3D road.

Guides

Indoor cycling on any device: how Moveee Indoor runs in the browser (even on a Mac)

Mac, Windows, Linux, a Chromebook or an Android tablet — if it runs Chrome or Edge, it can run a full trainer session. Here's how one browser app rides on all of them, and the one gap (iOS).

Guides

Indoor cycling on a Chromebook: the trainer apps that actually work

A Chromebook can't install Zwift — but it can still run a full trainer session. Here's how to ride indoors on Chrome OS with nothing to download, and exactly what you need.

Guides

The best free Zwift alternative in 2026

Zwift is no longer the only game in town, and some of the best options cost nothing. Here's an honest guide to the best free Zwift alternative in 2026 — what each one does well, and how to pick the one that fits how you ride.

Guides

Rollers vs turbo trainer: which should you ride this winter?

One teaches you to ride; the other makes you fitter. Rollers build balance, souplesse and bike handling that a locked-in turbo never will — but the turbo owns structure, ERG and every hard interval you'll do all winter. An honest comparison, who should pick which, and why the real answer might be both.

Guides

How to use your Wahoo KICKR without Zwift (a free browser app)

Your Wahoo KICKR doesn't need Zwift — or any subscription — to give you a proper session. Here's how to use a KICKR (or KICKR Core, Snap and Move) with a free browser app that controls resistance, holds ERG targets and saves to Strava.

Guides

Which cycling coach app should I use?

We put the 10 most popular cycling training apps of 2026 — paid and free — head to head, with honest pros and cons for each, so you can pick the right coach for the way you actually ride.

Guides

Cycling clothing explained: bibs, chamois, layers and why cotton fails

What each piece of cycling kit is actually for, what the evidence supports, and where the marketing runs ahead of it. Spend on shorts and gloves; the fourth jacket can wait.

Guides

Your first winter on the bike: kit, roads and staying motivated

Winter is where new riders quietly stop. Warm extremities, lower roads, one hard session a week and a fixed ride day carry more fitness into spring than any jacket.

Training science

FTP explained: what it is, how to test it, and how to actually raise it

FTP is the single most useful number in cycling — it sets your zones, tracks your fitness and shapes every workout. Here's what it means, how to measure it, and how to push it higher.

Ready to ride with a plan?

Connect Strava and get your first three-week block today — free.

Continue with Strava