- Een Garmin Connect-account.
- Een Intervals.icu-account.
- Een Custom GPT met Actions.
- Een kleine backend, bijvoorbeeld AWS Lambda.
Een veilige route van coachingadvies naar je Garmin-horloge
In deze guide zet je een kleine keten op waarmee een Custom GPT een geplande workout kan aanmaken. De GPT praat niet direct met Garmin en krijgt ook geen Intervals.icu API-key. In plaats daarvan loopt alles via een eigen backend die controleert of de aanvraag veilig en logisch is.
Je vraagt je GPT om een training te plannen. De backend valideert de aanvraag, Intervals.icu maakt de workout aan en Garmin Connect synchroniseert deze naar je horloge.
Laat AI niet onbeperkt in je planning schrijven. Bouw minimaal controle in op authenticatie, datum, inhoud en dubbele workouts.
Garmin is het eindpunt. Intervals.icu is de brug.
Garmin heeft officiële API's, maar directe toegang is vooral bedoeld voor goedgekeurde integraties. Intervals.icu kan geplande workouts naar Garmin sturen en heeft een toegankelijke API. Daardoor is Intervals.icu een praktische brug tussen je eigen automatisering en Garmin Connect.
Koppel Garmin Connect in Intervals.icu en schakel het uploaden van geplande workouts in.
Maak eerst buiten ChatGPT om een workout aan via de API en controleer of die in Garmin Connect verschijnt.
Laat de GPT niet rechtstreeks met Intervals.icu praten, maar via een eigen endpoint met validatie en duplicate-checks.
Klein genoeg om te begrijpen, nuttig genoeg om echt te gebruiken
Je hebt geen zwaar platform nodig. Eén serverless functie kan de belangrijkste regels afdwingen en daarna de Intervals.icu API aanroepen.
Dat zou technisch eenvoudiger zijn, maar dan ontbreekt een betrouwbare plek om regels af te dwingen. Je backend kan bijvoorbeeld weigeren een tweede workout op dezelfde dag te maken.
Voor een persoonlijke setup kan een Lambda Function URL voldoende zijn. API Gateway kun je later toevoegen als je uitgebreidere authenticatie, throttling of routing nodig hebt.
Zet de Intervals.icu API-key niet in de GPT. Laat de GPT alleen een token gebruiken voor je eigen endpoint.
Gebruik je backend als guardrail. Controleer onder meer of er al een training op die dag staat voordat je iets richting Intervals.icu stuurt.
Van nul naar een workout op je Garmin
Bouw de koppeling in kleine stappen. Test eerst elke losse schakel en verbind ze pas daarna met je Custom GPT.
Koppel Garmin aan Intervals.icu
In Intervals.icu koppel je Garmin Connect en activeer je het uploaden van geplande workouts. Daarmee wordt Intervals.icu de plek waar de training wordt aangemaakt, waarna Garmin de sync verzorgt.
Test eerst handmatig
Zet een eenvoudige structured workout handmatig in de Intervals.icu kalender. Pas als die vanzelf in Garmin Connect verschijnt, weet je dat de Garmin-sync goed staat.
Test de Intervals.icu API
Maak daarna vanaf de command line of met een API-client een geplande workout aan via de Intervals.icu API. Zo houd je de test klein en zie je precies welke payload Garmin uiteindelijk bereikt.
De minimale gegevens die je later ook vanuit je GPT nodig hebt zijn:
{
"date": "2026-09-20",
"name": "Rustige duurloop",
"sport": "Run",
"description": "- Warmup 10m 6:15-6:45/km Pace\n- Run 35m 6:05-6:25/km Pace\n- Cooldown 10m 6:15-6:45/km Pace"
}
Zet een backend tussen GPT en Intervals.icu
Voeg daarna een backend toe, bijvoorbeeld AWS Lambda. Die valideert de aanvraag, controleert of er die dag al een workout staat en doet daarna pas de call naar Intervals.icu.
Houd het endpoint bewust klein. Voor een eerste versie zijn twee routes genoeg: één om geplande workouts in een periode op te halen en één om een nieuwe workout aan te maken.
GET /workouts?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
POST /workouts
Bij een bestaande workout geeft de backend een conflict terug in plaats van stilletjes een extra training te stapelen.
GPT Action configureren
De Lambda Function URL wordt als OpenAPI Action toegevoegd aan de GPT. Authenticatie richting Lambda gebeurt met een aparte Bearer API-key. De Intervals.icu API-key blijft in je backend.
Authorization: Bearer <eigen-lambda-token>
Geef de Action duidelijke instructies: gebruik de create-route alleen als de gebruiker expliciet vraagt om een training te plannen en haal bij twijfel eerst de bestaande workouts op.
Test de volledige keten
Geef je GPT een normale opdracht en controleer daarna de hele keten: Intervals.icu, Garmin Connect en uiteindelijk je horloge.
Laat de GPT plannen, maar niet stapelen
Een AI-coach die zonder controle meerdere trainingen op dezelfde dag plant, is niet handig en mogelijk riskant. Leg daarom de belangrijkste regels vast in je backend, niet alleen in de instructies van je GPT.
- Bearer token controleren.
- Datum, sport, naam en workoutbeschrijving valideren.
- Bestaande workouts voor dezelfde dag ophalen.
- Bij bestaande workout: HTTP 409 teruggeven.
- Alleen bij een vrije dag de workout aanmaken.
- Warmup 10m 6:15-6:45/km Pace
3x
- Interval 2m 5:00-5:15/km Pace
- Recovery 2m 6:30-7:00/km Pace
- Cooldown 10m 6:15-6:45/km Pace
Geef de GPT geen Intervals.icu API-key. Bewaar die in je backend, zodat de Action alleen via je gecontroleerde endpoint kan plannen.
De belangrijkste schermen in de keten
Deze screenshots laten zien waar je de koppeling in Intervals.icu en de GPT Action vastlegt. Gevoelige waarden zijn niet zichtbaar.
Een normale opdracht wordt een echte Garmin-workout
Als de keten goed staat, hoeft de gebruiker niets meer te weten van API calls, workout syntax of synchronisatie. Een normale opdracht is genoeg.
Je backend maakt de geplande workout aan met de juiste datum, sport en workoutbeschrijving.
Garmin Connect haalt de geplande workout op via de bestaande Intervals.icu koppeling.
Na de Garmin-sync is de training als structured workout uitvoerbaar op de Forerunner.
Wil je verder gaan, sluit dan ook de andere kant van de lus aan: uitgevoerde activiteiten analyseren en op basis daarvan de volgende trainingen aanpassen. In mijn vorige artikel over Strava koppelen aan een Custom GPT staat precies beschreven hoe je die analysekant opzet. Samen vormen die twee richtingen een closed-loop persoonlijke coach.