Skip to content
Docs menu

Back to all methods

createManualActivity

write

**converts units**: `distanceKm * 1000` → meters, `durationMin * 60` → seconds, before building the request body; `startDatetime` is NOT routed through `formatDate` (it's a full local timestamp, not a bare calendar date) — **must include milliseconds**, e.g. `"2026-09-22T10:00:00.000"`; omitting them produced a live HTTP 500 `ValueInstantiationException` from Garmin during verification. Live-verified: the converted `summaryDTO.distance`/`summaryDTO.duration` were read back via `getActivity` and matched the expected meters/seconds exactly (5.5km/30min → 5500m/1800s)

createManualActivity(startDatetime, timeZone, typeKey, distanceKm, durationMin, activityName)
ParameterTypeOptionalDescription
startDatetimestringno
timeZonestringno
typeKeystringno
distanceKmnumberno
durationMinnumberno
activityNamestringno

In Claude this is the create_manual_activity tool.

Guide: activities