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

## Call Signature

```ts
function passthrough<A>(): Schedule<A, A>;
```

Defined in: [packages/common/src/Schedule.ts:1007](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Schedule.ts#L1007)

Creates a schedule that outputs its input, or wraps an existing schedule to
output input instead of the original output.

When called with no arguments, creates a schedule that outputs its input
directly (the "identity" schedule). When called with a schedule, wraps it to
preserve timing behavior but replace output with input.

### Example

```ts

interface MyError {
  readonly message: string;
}

// Constructor: output equals input
const identity = passthrough<MyError>();

// Combinator: preserve timing, replace output
const withInput = passthrough(exponential("100ms"));
```

## Call Signature

```ts
function passthrough<Output, Input>(
  schedule: Schedule<Output, Input>,
): Schedule<Input, Input>;
```

Defined in: [packages/common/src/Schedule.ts:1009](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Schedule.ts#L1009)