Skip to content
skcal
Esc
↑↓navigate↵open⌘Jpreview

Edit or end a mesocycle

Renames it, edits its notes, or ends it early with status completed or abandoned.

PATCH/api/training/mesocycles/{id}
Authorization
__Secure-better-auth.session_tokenAPI key · cookierequired

Better 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.

or
AuthorizationBearer token · headerrequired

Personal 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.

Path parameters
idstringrequired

Identifier of the mesocycle, set, slot, or custom exercise the path names.

Request body
requiredapplication/json

The mesocycle fields to change.

namestring

New name.

notesstring | null

New notes.

statusstring

End the mesocycle early.

Allowed:completedabandoned
Responses
200

The updated mesocycle.

object
400

The request body or parameters failed validation.

errorstringrequired

Human-readable failure reason.

detailstring

Optional extra context, present on upstream failures.

404

No matching resource owned by the caller.

errorstringrequired

Human-readable failure reason.

detailstring

Optional extra context, present on upstream failures.

Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X PATCH 'https://app.skcal.fit/api/training/mesocycles/9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d' \
  -H 'Cookie: __Secure-better-auth.session_token=YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Winter bulk meso 1",
  "notes": null,
  "status": "completed"
}'
Response
{
  "ok": true,
  "week": 2,
  "day": 1,
  "exerciseName": "Barbell Bench Press",
  "muscle": "chest"
}

Was this page helpful?