---
title: CustomWorkout
framework: workoutkit
role: symbol
role_heading: Structure
path: workoutkit/customworkout
---

# CustomWorkout

A workout that includes a repeating series of work and recovery steps.

## Declaration

```swift
struct CustomWorkout
```

## Topics

### Creating custom workouts

- [init(activity:location:displayName:warmup:blocks:cooldown:)](workoutkit/customworkout/init(activity:location:displayname:warmup:blocks:cooldown:).md)
- [supportsActivity(_:)](workoutkit/customworkout/supportsactivity(_:).md)
- [supportsAlert(_:activity:location:)](workoutkit/customworkout/supportsalert(_:activity:location:).md)
- [supportsGoal(_:activity:location:)](workoutkit/customworkout/supportsgoal(_:activity:location:).md)

### Accessing workout data

- [displayName](workoutkit/customworkout/displayname.md)
- [activity](workoutkit/customworkout/activity.md)
- [location](workoutkit/customworkout/location.md)
- [warmup](workoutkit/customworkout/warmup.md)
- [blocks](workoutkit/customworkout/blocks.md)
- [cooldown](workoutkit/customworkout/cooldown.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Custom interval workouts

- [WorkoutStep](workoutkit/workoutstep.md)
- [IntervalBlock](workoutkit/intervalblock.md)
- [IntervalStep](workoutkit/intervalstep.md)
- [WorkoutGoal](workoutkit/workoutgoal.md)
- [WorkoutAlert](workoutkit/workoutalert.md)
