Create a mesocycle
Plans a mesocycle from a split template or explicit days of muscle slots. The last week is a deload. Week 1 starts each muscle at its MEV split across its slots, at 3 reps in reserve; later weeks are planned from what was lifted and the per-muscle feedback. One mesocycle can be active at a time.
/api/training/mesocycles__Secure-better-auth.session_tokenAPI key · cookierequiredBetter Auth session. Signing in (Google or email magic link) sets an HttpOnly session cookie that scopes every request to that account. The web app and CLI use this; agents use the OAuth 2.1 flow of the MCP server.
AuthorizationBearer token · headerrequiredPersonal API key sent as Authorization: Bearer skcal_…. Create and scope keys in the app under your profile → API keys. Keys default to full access; a scoped key is limited to its granted resource:action permissions and cannot manage other keys.
datestring<date>The caller's local calendar day (YYYY-MM-DD), the default start or end day. Defaults to the server's UTC date.
application/jsonThe plan.
namestringName (default the template's).
weeksintegerTotal weeks including the final deload (default 5).
startDatestring<date>First day (default today).
templatestringA template key from the library.
daysobject[]Explicit training days; overrides the template's days.
Show propertiesHide properties
objectlabelstringDay label.
slotsobject[]Exercise slots in order.
Show propertiesHide properties
objectmusclestringMuscle key.
exerciseIdstringExercise id from the library.
exerciseNamestringExercise name, matched against the library when no id is given.
notesstringFree-text notes.
The created mesocycle.
objectThe request body or parameters failed validation.
errorstringrequiredHuman-readable failure reason.
detailstringOptional extra context, present on upstream failures.