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

```ts
function fromDelays(
  ...delays: readonly Duration[]
): Schedule<
  number &
    Brand<"NonNaN"> &
    Brand<"Finite"> &
    Brand<"Int"> &
    Brand<"NonNegative"> &
    Brand<"LessThan281474976710655"> &
    Brand<"Millis">
>;
```

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

A schedule that runs through a sequence of delays.

Convenience for sequencing single-delay schedules. Useful for predefined
retry patterns. With no delays, returns a schedule that stops immediately.

### Sequencing custom delays

```ts
import {
  assertErr,
  assertOk,
  done,
  fromDelays,
  testCreateDeps,
} from "@evolu/common";

// A custom retry sequence: 100ms, 500ms, then 2s.
const custom = fromDelays("100ms", "500ms", "2s");
const step = custom(testCreateDeps());
assertOk(step(undefined), [100, 100]);
assertOk(step(undefined), [500, 500]);
assertOk(step(undefined), [2000, 2000]);
assertErr(step(undefined), done());
```