Skip to content

Workouts Calendar & Recent

Michal Zaniewicz edited this page Jul 14, 2026 · 2 revisions

The integration exposes your training history two ways, both reusing the 90-day workout list already fetched - no extra API requests.

Workouts calendar (calendar entity)

A read-only calendar entity where every past workout is an event. Browse your whole history in a Calendar card.

Each event contains:

  • Summary: activity + distance, e.g. Cycling - 34.2 km (activity name from Activity Types).
  • Description: duration, average/max HR and TSS where available, e.g. 78 min - HR 142/171 bpm - TSS 89.
  • Start/End: the workout's real start and (start + duration) end.

All events are in the past, so the entity has no "current" event (event is always None). The entity id is typically calendar.suunto_workouts (prefix depends on your device name).

Calendar card

type: calendar
title: Workouts
initial_view: dayGridMonth
entities:
  - calendar.suunto_workouts

Recent workouts (sensor + attribute)

The sensor.suunto_workouts_recent sensor's state is the count, and its workouts attribute holds the last 15 sessions as a list of objects (date, type, distance, duration, HR, TSS). This is meant for a compact list/table card.

Markdown table card

type: markdown
title: Recent workouts
content: |
  | Date | Activity | Dist | Time | HR | TSS |
  |------|----------|------|------|----|-----|
  {% for w in state_attr('sensor.suunto_workouts_recent', 'workouts') %}
  | {{ as_timestamp(w.start_time) | timestamp_custom('%d.%m') }} | {{ w.activity }} | {{ (w.distance_meters / 1000) | round(1) }} km | {{ w.duration_minutes }} min | {{ w.avg_hr_bpm | default('-') }} | {{ w.tss | default('-') }} |
  {%- endfor %}

The exact keys available in each attribute object mirror the workout fields documented in Data & Units (e.g. start_time, activity, distance_meters, duration_minutes, avg_hr_bpm, max_hr_bpm, tss). Use Developer Tools → States to inspect the attribute on your own data before building a card.

For a richer table you can use the custom flex-table-card (HACS) pointed at the same attribute.

Clone this wiki locally