[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Schedule](https://evolu.dev/docs/api-reference/common/Schedule) › delays

```ts
function delays<Output, Input>(
  schedule: Schedule<Output, Input>,
): Schedule<
  number &
    Brand<"NonNaN"> &
    Brand<"Finite"> &
    Brand<"Int"> &
    Brand<"NonNegative"> &
    Brand<"LessThan281474976710655"> &
    Brand<"Millis">,
  Input
>;
```

Defined in: [packages/common/src/Schedule.ts:1609](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Schedule.ts#L1609)

Outputs the delay between recurrences.

Wraps a schedule to output its delay (in milliseconds) instead of the
original output. Useful for monitoring or logging delay patterns.

### Exposing and observing delays

```ts
import {
  assertEqual,
  assertOk,
  delays,
  exponential,
  tapScheduleOutput,
  testCreateDeps,
  type Millis,
} from "@evolu/common";

// Expose delays for monitoring, or observe them without changing output.
const monitorDelays = delays(exponential("100ms"));
const observed: Array<Millis> = [];
const logged = tapScheduleOutput((delay: Millis) => {
  observed.push(delay);
})(delays(exponential("100ms")));
const deps = testCreateDeps();

assertOk(monitorDelays(deps)(undefined), [100, 100]);
assertOk(logged(deps)(undefined), [100, 100]);
assertEqual(observed, [100]);
```