<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "swift: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "Dispatch",
  "identifier" : "/documentation/Dispatch/DispatchSourceTimer/scheduleRepeating(deadline:interval:leeway:)-4wtot",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Dispatch"
    ],
    "preciseIdentifier" : "s:So24OS_dispatch_source_timerP8DispatchE17scheduleRepeating8deadline8interval6leewayyAC0E4TimeV_SdAC0eK8IntervalOtF"
  },
  "title" : "scheduleRepeating(deadline:interval:leeway:)"
}
-->

# scheduleRepeating(deadline:interval:leeway:)

Schedules a repeating timer with the specified deadline, repeat interval, and leeway values.

```
func scheduleRepeating(deadline: DispatchTime, interval: Double, leeway: DispatchTimeInterval = .nanoseconds(0))
```

## Parameters

`deadline`

The Mach absolute time at which to execute the dispatch source’s event handler.

`interval`

The repeat interval for the timer, measured in seconds.

`leeway`

The maximum amount of time after `deadline` by which the system may delay the delivery of the timer event.

## Discussion

The system may defer the deliver of timer events to improve power consumption and system performance. The first time the timer fires, the maximum allowable delay is equal to the value in the `leeway` parameter. For subsequent firings, the timer fires at `deadline + (n * repeating)`, and the maximum delay is equal to `min(leeway, repeating/2)`—that is, the smaller of either the `leeway` value or half the value in the `repeating` parameter.

The system may fire a timer sooner than the value in the `deadline` parameter. If you created the timer with the [`strict`](/documentation/Dispatch/DispatchSource/TimerFlags/strict) flag, the system makes every effort to observe the provided `leeway` value, even if it is smaller than the current lower limit.

Calling this method on a cancelled dispatch source has no effect.

---

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)