get_activities_by_date
Retrieve Garmin Connect activities within a date range, optionally filter by activity type, and paginate results to avoid oversized responses.
Instructions
Get activities between specified dates with pagination support.
For accounts with large activity histories, broad date ranges can return thousands of activities in a single response. Use page and page_size to retrieve activities in manageable chunks and avoid "result too large" errors. Activities are ordered newest-first.
Pagination: when has_more is true the response includes next_page — pass that value as page on the next call to retrieve the following page. Repeat until has_more is false.
Note: total_count for a date range is not available from the Garmin API without fetching all results. Use has_more / next_page to walk pages.
Each activity includes an event_type field with values such as:
"race" — explicitly tagged as a race by the user
"training" — explicitly tagged as a training activity
"uncategorized" — no event type set; common for Peloton imports and untagged outdoor runs. Distinct from "training": filter for races with event_type == "race" rather than excluding "training", since many non-race activities appear as "uncategorized" not "training"
field absent — API returned no eventType for this activity; not observed in practice in any activity back to 2012 (oldest activities sampled on this account)
Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format activity_type: Optional activity type filter (e.g., cycling, running, swimming) page: Zero-based page number (default 0) page_size: Number of activities per page, max 200 (default 100)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| end_date | Yes | ||
| page_size | No | ||
| start_date | Yes | ||
| activity_type | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |