[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) › modifyDelay

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

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

Transforms the delay of a schedule.

More flexible than [maxDelay](https://evolu.dev/docs/api-reference/common/Schedule/functions/maxDelay) — can implement any delay transformation.

### Transforming delays

```ts
import {
  assertOk,
  exponential,
  modifyDelay,
  testCreateDeps,
} from "@evolu/common";

// Arbitrary transformations can double or cap delays.
const slower = modifyDelay((delay) => delay * 2)(exponential("100ms"));
// Equivalent to maxDelay("10s") for this schedule.
const capped = modifyDelay((delay) => Math.min(delay, 10000))(
  exponential("20s"),
);
const deps = testCreateDeps();

assertOk(slower(deps)(undefined), [100, 200]);
assertOk(capped(deps)(undefined), [20000, 10000]);
```