<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 3.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SiriKit",
  "identifier" : "/documentation/Intents/INStartWorkoutIntent",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Intents"
    ],
    "preciseIdentifier" : "c:objc(cs)INStartWorkoutIntent"
  },
  "title" : "INStartWorkoutIntent"
}
-->

# INStartWorkoutIntent

A request to start a workout for the user.

```
class INStartWorkoutIntent
```

## Overview

SiriKit creates an [`INStartWorkoutIntent`](/documentation/Intents/INStartWorkoutIntent) object when the user asks to start a workout using your app. A start workout intent identifies the user-selected workout type and goals.

To handle this intent, the handler object in your Intents extension must adopt the [`INStartWorkoutIntentHandling`](/documentation/Intents/INStartWorkoutIntentHandling) protocol. Your handler should confirm the request and create an [`INStartWorkoutIntentResponse`](/documentation/Intents/INStartWorkoutIntentResponse) object that indicates it’s possible to start the workout. For the successful handling of the intent, SiriKit launches your app and passes it an <doc://com.apple.documentation/documentation/Foundation/NSUserActivity> object your app must then use to start the workout.

### Additional Intent Attributes

The following table lists additional attributes of this intent object:

|Attribute                      |Description                   |
|-------------------------------|------------------------------|
|Supported by                   |Siri Intents, Siri Suggestions|
|Always requires unlocked device|Yes                           |

## Topics

### Creating the Intent Object

[`convenience init(workoutName: INSpeakableString?, goalValue: Double?, workoutGoalUnitType: INWorkoutGoalUnitType, workoutLocationType: INWorkoutLocationType, isOpenEnded: Bool?)`](/documentation/Intents/INStartWorkoutIntent/init(workoutName:goalValue:workoutGoalUnitType:workoutLocationType:isOpenEnded:))

Initializes an intent object with the specified workout information.

[`- (instancetype) initWithWorkoutName:(INSpeakableString *) workoutName goalValue:(NSNumber *) goalValue workoutGoalUnitType:(INWorkoutGoalUnitType) workoutGoalUnitType workoutLocationType:(INWorkoutLocationType) workoutLocationType isOpenEnded:(NSNumber *) isOpenEnded;`](/documentation/Intents/INStartWorkoutIntent/initWithWorkoutName:goalValue:workoutGoalUnitType:workoutLocationType:isOpenEnded:)

Initializes an intent object with the specified workout information.

### Specifying Workout Details

[`var workoutName: INSpeakableString?`](/documentation/Intents/INStartWorkoutIntent/workoutName)

The name of the workout.

[`var goalValue: Double?`](/documentation/Intents/INStartWorkoutIntent/goalValue-5oazy)

The user-supplied numerical goal of the workout.

[`@property (nonatomic, copy, readonly, nullable) NSNumber * goalValue;`](/documentation/Intents/INStartWorkoutIntent/goalValue-1dzvb)

The numerical goal of the workout.

[`var workoutGoalUnitType: INWorkoutGoalUnitType`](/documentation/Intents/INStartWorkoutIntent/workoutGoalUnitType)

The units associated with the workout goal.

[`var workoutLocationType: INWorkoutLocationType`](/documentation/Intents/INStartWorkoutIntent/workoutLocationType)

The location of the workout.

[`var isOpenEnded: Bool?`](/documentation/Intents/INStartWorkoutIntent/isOpenEnded-8hecn)

A Boolean value that indicates whether the workout is open ended.

[`@property (nonatomic, copy, readonly, nullable) NSNumber * isOpenEnded;`](/documentation/Intents/INStartWorkoutIntent/isOpenEnded-avvd)

A Boolean value indicating whether the workout is open ended.

## Relationships

### Conforms To

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`Hashable`](/documentation/Swift/Hashable)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`INIntentSetImageKeyPath`](/documentation/Intents/INIntentSetImageKeyPath)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCopying`](/documentation/Foundation/NSCopying)

### Inherits From

[`INIntent`](/documentation/Intents/INIntent)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)