Read training calendar
get_calendarRead a training calendar: your own, a managed athlete's with athlete, or a group's
with group.
mode: 'real' (workouts actually done, the default) or 'planned' (the prescription). Both
modes render the whole calendar palette over the window, each type its own list, plus
has_more per type: planned gives trainings, competitions (with goal_type), cycles
(with date_end), notes and quizzes; real gives trainings and competitions (the
races actually run, so a realized calendar read without them misses every race). Every real
training and competition carries the athlete's debrief (rpe, feeling, comment, answers to the
coach's debrief questions); a coach's comments on a session are in its conversation
(read_conversations with event), its laps and curves in get_training. Read it
before scheduling anything on a period and surface the conflicts (a race in the window, a
cycle already covering it, a duplicate) before proposing. If one type cannot be read the
whole call fails (failed names the types): never treat that as an empty calendar.
has_more[type]=true means that type's window is incomplete. Read the next page with
types=[<type>] and starting_after set to the last returned item's id, keeping the same
date_from/date_to/athlete/group/limit: drop group on the next page and you silently switch
to your own calendar. Continue until has_more=false before concluding or scheduling.
Planned mode makes five API requests, real two, each subject to the API quota.
types: read only these types of the mode's palette (e.g. ['competitions']).
starting_after: next page of a single type, with types naming that one type.
athlete: a managed athlete's usr_… handle (from list_athletes) to read their calendar;
omit to read your own. An athlete you do not coach is refused (403).
group: a grp_… handle (from list_athletes) to read what a group you manage has planned
together: the workouts posted on the group itself, not the individual ones of its members.
Never pass it with athlete. Planned mode only; a group you do not manage is refused (404).
date_from / date_to: 'YYYY-MM-DD' window (omit for the most recent events).
limit: max rows per type. Planned defaults to 100 with date_from or date_to, 10 without;
real defaults to 10 even with a window.
time_in_zones: add the per-zone seconds of every training. Off by default because it is
heavy; turn it on only when the question is about intensity distribution. For a whole period,
prefer the zones_duration_* chart of get_stats_chart.
full_descriptions: planned descriptions are cut to their first 250 characters, flagged
description_truncated. Read a planned workout with get_planned_training for its full text,
or turn this on over a narrow window; it returns every text of the window.
with_description_html: planned mode only, add description_html (the stored description in
HTML, never cut) to every event. Read it over the event's date before changing a description
that is already set.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | real | |
| group | No | ||
| limit | No | ||
| types | No | ||
| athlete | No | ||
| date_to | No | ||
| date_from | No | ||
| time_in_zones | No | ||
| starting_after | No | ||
| full_descriptions | No | ||
| with_description_html | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||