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

```ts
function collectAllScheduleOutputs<Output, Input>(
  schedule: Schedule<Output, Input>,
): Schedule<readonly Output[], Input>;
```

Defined in: [packages/common/src/Schedule.ts:1639](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Schedule.ts#L1639)

Collects all outputs into an array.

Each step outputs a new snapshot containing all outputs so far. Because all
outputs are retained and copied on each step, use this combinator with finite
schedules.

### Collecting outputs

```ts
import {
  assertOk,
  collectAllScheduleOutputs,
  spaced,
  take,
  testCreateDeps,
} from "@evolu/common";

// Retain every delay produced by the finite schedule.
const collected = collectAllScheduleOutputs(take(3)(spaced("100ms")));
const step = collected(testCreateDeps());
step(undefined);
assertOk(step(undefined), [[100, 100], 100]);
```