---
url: /docs/api/core/variables/activitySchema.md
---
[**@kaiord/core**](../README.md)

***

[@kaiord/core](../README.md) / activitySchema

# Variable: activitySchema

> `const` **activitySchema**: `ZodObject`<{ `kind`: `ZodLiteral`<`"activity"`>; `krd`: `ZodOptional`<`ZodObject`<{ `events`: `ZodOptional`<`ZodArray`<`ZodObject`<{ `data`: `ZodOptional`<`ZodNumber`>; `eventGroup`: `ZodOptional`<`ZodNumber`>; `eventType`: `ZodEnum`<{ `event_activity_start`: ...; `event_lap`: ...; `event_marker`: ...; `event_pause`: ...; `event_resume`: ...; `event_session_start`: ...; `event_start`: ...; `event_stop`: ...; `event_timer`: ...; `event_workout_step_change`: ...; }>; `message`: `ZodOptional`<`ZodString`>; `timestamp`: `ZodISODateTime`; }, `$strip`>>>; `extensions`: `ZodOptional`<`ZodObject`<{ `course`: `ZodOptional`<`ZodUnknown`>; `course_points`: `ZodOptional`<`ZodUnknown`>; `fit`: `ZodOptional`<`ZodUnknown`>; `health`: `ZodOptional`<`ZodObject`<{ `bodyComposition`: ...; `daily`: ...; `hrv`: ...; `sleep`: ...; `stress`: ...; `weight`: ...; }, `$catchall`<...>>>; `structured_workout`: `ZodOptional`<`ZodUnknown`>; }, `$catchall`<`ZodUnknown`>>>; `laps`: `ZodOptional`<`ZodArray`<`ZodObject`<{ `avgCadence`: `ZodOptional`<`ZodNumber`>; `avgHeartRate`: `ZodOptional`<`ZodNumber`>; `avgPower`: `ZodOptional`<`ZodNumber`>; `avgSpeed`: `ZodOptional`<`ZodNumber`>; `maxCadence`: `ZodOptional`<`ZodNumber`>; `maxHeartRate`: `ZodOptional`<`ZodNumber`>; `maxPower`: `ZodOptional`<`ZodNumber`>; `maxSpeed`: `ZodOptional`<`ZodNumber`>; `normalizedPower`: `ZodOptional`<`ZodNumber`>; `numLengths`: `ZodOptional`<`ZodNumber`>; `sport`: `ZodOptional`<`ZodEnum`<...>>; `startTime`: `ZodISODateTime`; `subSport`: `ZodOptional`<`ZodEnum`<...>>; `swimStroke`: `ZodOptional`<`ZodEnum`<...>>; `totalAscent`: `ZodOptional`<`ZodNumber`>; `totalCalories`: `ZodOptional`<`ZodNumber`>; `totalDescent`: `ZodOptional`<`ZodNumber`>; `totalDistance`: `ZodOptional`<`ZodNumber`>; `totalElapsedTime`: `ZodNumber`; `totalTimerTime`: `ZodOptional`<`ZodNumber`>; `trigger`: `ZodOptional`<`ZodEnum`<...>>; `workoutStepIndex`: `ZodOptional`<`ZodNumber`>; }, `$strip`>>>; `metadata`: `ZodObject`<{ `created`: `ZodISODateTime`; `manufacturer`: `ZodOptional`<`ZodString`>; `product`: `ZodOptional`<`ZodString`>; `serialNumber`: `ZodOptional`<`ZodString`>; `sport`: `ZodOptional`<`ZodString`>; `subSport`: `ZodOptional`<`ZodString`>; }, `$strip`>; `records`: `ZodOptional`<`ZodArray`<`ZodObject`<{ `altitude`: `ZodOptional`<`ZodNumber`>; `cadence`: `ZodOptional`<`ZodNumber`>; `distance`: `ZodOptional`<`ZodNumber`>; `heartRate`: `ZodOptional`<`ZodNumber`>; `position`: `ZodOptional`<`ZodObject`<..., ...>>; `power`: `ZodOptional`<`ZodNumber`>; `speed`: `ZodOptional`<`ZodNumber`>; `stanceTime`: `ZodOptional`<`ZodNumber`>; `stepLength`: `ZodOptional`<`ZodNumber`>; `temperature`: `ZodOptional`<`ZodNumber`>; `timestamp`: `ZodISODateTime`; `verticalOscillation`: `ZodOptional`<`ZodNumber`>; }, `$strip`>>>; `sessions`: `ZodOptional`<`ZodArray`<`ZodObject`<{ `avgCadence`: `ZodOptional`<`ZodNumber`>; `avgHeartRate`: `ZodOptional`<`ZodNumber`>; `avgPower`: `ZodOptional`<`ZodNumber`>; `avgSpeed`: `ZodOptional`<`ZodNumber`>; `intensityFactor`: `ZodOptional`<`ZodNumber`>; `maxCadence`: `ZodOptional`<`ZodNumber`>; `maxHeartRate`: `ZodOptional`<`ZodNumber`>; `maxPower`: `ZodOptional`<`ZodNumber`>; `maxSpeed`: `ZodOptional`<`ZodNumber`>; `normalizedPower`: `ZodOptional`<`ZodNumber`>; `sport`: `ZodString`; `startTime`: `ZodISODateTime`; `subSport`: `ZodOptional`<`ZodString`>; `totalAscent`: `ZodOptional`<`ZodNumber`>; `totalCalories`: `ZodOptional`<`ZodNumber`>; `totalDescent`: `ZodOptional`<`ZodNumber`>; `totalDistance`: `ZodOptional`<`ZodNumber`>; `totalElapsedTime`: `ZodNumber`; `totalTimerTime`: `ZodOptional`<`ZodNumber`>; `trainingStressScore`: `ZodOptional`<`ZodNumber`>; }, `$strip`>>>; `type`: `ZodEnum`<{ `body_composition`: `"body_composition"`; `course`: `"course"`; `daily_wellness`: `"daily_wellness"`; `hrv_summary`: `"hrv_summary"`; `recorded_activity`: `"recorded_activity"`; `sleep_record`: `"sleep_record"`; `stress_episode`: `"stress_episode"`; `structured_workout`: `"structured_workout"`; `weight_measurement`: `"weight_measurement"`; }>; `version`: `ZodString`; }, `$strip`>>; `summary`: `ZodObject`<{ `avg_heart_rate`: `ZodOptional`<`ZodNumber`>; `avg_power`: `ZodOptional`<`ZodNumber`>; `date`: `ZodISODate`; `distance_meters`: `ZodOptional`<`ZodNumber`>; `duration_seconds`: `ZodOptional`<`ZodNumber`>; `source`: `ZodString`; `source_id`: `ZodString`; `sport`: `ZodString`; `start_time`: `ZodOptional`<`ZodISODateTime`>; `sub_sport`: `ZodOptional`<`ZodString`>; `total_calories`: `ZodOptional`<`ZodNumber`>; }, `$strip`>; }, `$strip`>

Defined in: [packages/core/src/domain/schemas/activity.ts:43](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/schemas/activity.ts#L43)

Zod schema for an `activity` — a first-class executed session (the
executed side of a SessionMatch). Shape mirrors the health records'
`{ summary, krd? }` split: a mandatory summary for list/match reads plus
the optional full KRD payload attached when the source provides recorded
detail (records/laps/sessions).
