---
title: "start(at:)"
framework: watchkit
role: symbol
role_heading: Instance Method
path: "watchkit/wkextendedruntimesession/start(at:)"
---

# start(at:)

Schedules a session to start running at a future date.

## Declaration

```swift
func start(at date: Date)
```

## Parameters

- `date`: The time and date when the session starts running.

## Mentioned in

Using extended runtime sessions

## Discussion

Discussion Use start(at:) to set up a scheduable session. You must call this method while your app is running in the foreground. However, when the scheduled date and time arrives, the session starts running regardless of your app’s current state. If your app isn’t running, the system launches your app and calls your extension delegate’s handle(_:) method to start the session. If you don’t set the session’s delegate in the handle(_:) method, the system ends the session. important: You can only use this method for alarm sessions. If you call this method with a date that has already passed, the system tries to immediately starts the session, but the session is only given 30 minutes from the provided date. If the date is more than one minute in the past, this method fails.

## See Also

### Managing the Session State

- [start()](watchkit/wkextendedruntimesession/start().md)
- [invalidate()](watchkit/wkextendedruntimesession/invalidate().md)
- [state](watchkit/wkextendedruntimesession/state.md)
- [WKExtendedRuntimeSessionState](watchkit/wkextendedruntimesessionstate.md)
- [expirationDate](watchkit/wkextendedruntimesession/expirationdate.md)
- [requestAutoLaunchAuthorizationStatus(completion:)](watchkit/wkextendedruntimesession/requestautolaunchauthorizationstatus(completion:).md)
- [WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus](watchkit/wkextendedruntimesessionautolaunchauthorizationstatus.md)
