Importer votre propre plan d'entraînement Garmin avec Intervals.icu

Si vous avez déjà un planning, vous pouvez le convertir en entraînements Garmin via Intervals.icu et l'outil Garmin School.
Day 84: Import Your Own Training Plan Into Garmin With Intervals.icu
Garmin Coach is useful, but sometimes you already have your own training plan: a marathon schedule from a coach, a cycling block from a spreadsheet, or a custom plan built from your own Garmin data.
You can create each workout manually in Garmin Connect, but doing that one by one gets old fast. A better route is to create the workouts once, upload them to Intervals.icu, and let Intervals.icu sync planned workouts to Garmin Connect.
What you need
- A free Intervals.icu account.
- Your Garmin Connect account connected inside Intervals.icu.
- Upload planned workouts enabled for the Garmin connection in Intervals.icu.
- Your Intervals.icu athlete ID and API key.
- A schedule JSON file in the format expected by the Garmin School uploader.
Garmin supports sending workouts to compatible devices through Garmin Connect, and Intervals.icu can upload planned workouts to Garmin Connect when the connection is authorised. After your Garmin syncs, the scheduled workouts should appear on the watch or Edge.
Step 1: connect Intervals.icu and Garmin
Create or open your Intervals.icu account, then go to settings and connect Garmin Connect. Make sure the Garmin connection has permission to upload planned workouts. Without that permission, your workouts may exist in Intervals.icu but never reach Garmin Connect.
Step 2: get your athlete ID and API key
In Intervals.icu, open your developer settings. Copy your athlete ID and create or copy an API key.
Treat the API key like a password. Do not paste it into public documents, screenshots, shared prompts, or social posts. The uploader only needs it to write the planned events to your Intervals.icu calendar.
Step 3: turn your schedule into upload-ready JSON
Your schedule needs to become a list of calendar events. Each event should include a name, date, category, description, and stable external ID. Workouts should also include a type such as Run, Ride, Swim, or Strength.
If you use AI to help convert a plan, be very specific: ask for upload-ready Intervals.icu calendar events, not a pretty training table. The uploader will reject files that are valid JSON but not in the expected event format.
You can use Claude or ChatGPT for this step. Attach your actual training plan, then paste the prompt below so the AI converts your real schedule into a downloadable JSON file instead of inventing one.
Use this prompt to convert your plan:
You are a training plan converter. Your job is to take a training schedule (pasted text or extracted from a file) and convert it into a downloadable JSON file ready for upload to intervals.icu via API.
---
STEP 1 — PARSE THE PLAN
Read the training schedule carefully. Identify:
- Total number of weeks and days
- Each training day: type (run, ride, swim, strength, rest, etc.), duration or distance, intensity (easy, tempo, intervals, race pace, etc.), and any specific structure (warmup / main set / cooldown)
- Rest days or off days
---
STEP 2 — CHECK START DATE
If the training plan does NOT clearly state when it starts, stop and ask:
"When should Week 1 / Day 1 of this plan start? Please give me a specific date (e.g. Monday 2 June 2025)."
Do not proceed until you have a confirmed start date.
---
STEP 3 — GENERATE THE JSON
Generate a raw JSON array of event objects and create a downloadable file named intervals-schedule.json. Follow these rules strictly:
OUTPUT RULES:
- The downloadable .json file must contain ONLY valid JSON. No Markdown. No explanations. No text before or after the JSON inside the file.
- No trailing commas
- No null values — omit fields entirely rather than setting them to null
- No comments inside the JSON
- The root element must be a JSON array [ ... ]
- If your interface cannot create downloadable files, output the raw JSON array only so I can save it manually as intervals-schedule.json.
FOR WORKOUT DAYS:
{
"category": "WORKOUT",
"type": "[Run | Ride | Swim | Walk | Hike | WeightTraining | Workout | Yoga | Rowing | VirtualRide | VirtualRun | Other]",
"name": "[Short workout title, e.g. Tempo Run 45min]",
"start_date_local": "[YYYY-MM-DD]T07:00:00",
"description": "[Full structured workout in Intervals.icu plain text format — see FORMAT RULES below]",
"external_id": "[plan-name-week-X-day-Y, e.g. myplan-week-1-day-2]"
}
FOR REST OR RECOVERY DAYS:
{
"category": "NOTE",
"name": "Rest",
"start_date_local": "[YYYY-MM-DD]T07:00:00",
"description": "[Any rest day instructions, or 'Full rest day. No training.' if none specified]",
"external_id": "[plan-name-week-X-day-Y]"
}
---
DESCRIPTION FORMAT RULES (Intervals.icu plain text workout format):
The description field must use the Intervals.icu plain text format so steps are parsed automatically. Follow these rules exactly:
TIME FORMAT:
- Use h for hours, m for minutes, s for seconds
- Examples: 10m, 30s, 1h, 45m — never use 0:30 or HH:MM notation
INTENSITY:
- Use zones: Z1, Z2, Z3, Z4, Z5
- Or % of FTP: 85%, 85-90%, 120%
- Or % of threshold pace for running/swimming: 80% pace, 90-95% pace
- Or watts: 200W, 200-220W
- If intensity is not specified, use Z2 and add a note: "(assumed Z2 — not specified in original plan)"
CADENCE (cycling only):
- Add as: 90rpm
RAMPS:
- Use: ramp 60%-90%
- Example: 10m ramp 50%-75% 90rpm
REPEATS / INTERVALS:
- Use: Nx followed by the steps of the interval
- Example for 6x400m @ Z4 with 90s rest:
Main Set 6x
- 400m Z4
- 90s Z1
STRUCTURE:
- Always divide into sections: Warmup, Main Set, Cooldown
- Leave a blank line between sections
- Use a dash (-) before each step
- Use \n for line breaks within the description string
EXAMPLE — Tempo Run with intervals:
"Warmup\n- 10m Z1-Z2\n\nMain Set 6x\n- 3m Z4\n- 90s Z1\n\nCooldown\n- 10m Z1"
EXAMPLE — Easy ride:
"Warmup\n- 10m ramp 50%-65% 85rpm\n\nMain Set\n- 30m Z2 90rpm\n\nCooldown\n- 8m ramp 60%-40% 80rpm"
EXAMPLE — Steady run:
"Warmup\n- 10m Z1\n\nMain Set\n- 30m Z2\n\nCooldown\n- 5m Z1"
---
CONTENT RULES:
- Include every day of the plan, including rest and recovery days
- Use the same external_id format consistently — it allows re-uploads to update existing events rather than duplicate them
- Use Intervals.icu canonical activity type values only. Common safe values: Run, Ride, Swim, Walk, Hike, WeightTraining, Workout, Yoga, Rowing, VirtualRide, VirtualRun, Elliptical, Crossfit, Other
- For strength, gym, weights, bodyweight, mobility, or resistance sessions, use "WeightTraining" — never "Strength" or "Weight Training"
- For mountain bike, MTB, bike, cycling, or indoor cycling, use "Ride" unless it is clearly a virtual ride, then use "VirtualRide"
---
STEP 4 — SUMMARY
After creating the downloadable JSON file, add a plain text summary table in chat (outside the file):
| Date | Week | Day | Name | Sport | Category |
Include every day including rest days.
---
NOTES:
- The external_id must be stable — use the same value every time for the same workout so re-uploads update rather than duplicate
Download the JSON file the AI creates. You will upload that file in Step 4.
Step 4: upload the schedule
Open the Garmin School schedule uploader, enter your athlete ID and API key, upload the JSON file, and review the validation messages before submitting.
Open the schedule uploader →Step 5: sync to Garmin
After the events are in Intervals.icu, confirm that planned workout upload is enabled for the Garmin connection. Then sync Garmin Connect and your device. Depending on timing, it may not appear instantly, so give it a little time and sync again if needed.
Common mistakes
- Wrong JSON structure: the file must be a raw array of events or an object with an events array.
- Missing dates: every event needs a local start date in the expected format.
- Duplicate external IDs: each workout needs a stable unique ID.
- Garmin upload not enabled: Intervals.icu cannot send planned workouts unless the connection has the right permission.
- Expecting instant sync: Garmin Connect and your device may need a manual sync.
Once the workflow is set up, importing a full plan is much faster than recreating every workout by hand in Garmin Connect.
Rejoindre la Garmin School
Laissez votre adresse e-mail pour accéder à la Garmin School et recevoir des mises à jour sur les nouvelles vidéos et applications.




