> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# createHarnessWithScheduling()

> **createHarnessWithScheduling**\<`State`>(`spec`): `Readonly`\<\{ `harness`: [`Harness`](/docs/agent-sdk/harness-sdk)\<`ToolSet`>; `scheduling`: [`HarnessScheduling`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling); }>

Construct one persistent harness with the bounded scheduling tools in its visible tool set.

**Type Parameters**

| Type Parameter |
| - |
|  `State` *extends* `Record`\<`string`, `unknown`> |

**Parameters**

| Parameter | Type |
| - | - |
| `spec` | [`HarnessSpec`](/docs/agent-sdk/harness-sdk/create-harness)\<`State`, `ToolSet`> |

**Returns**
`Readonly`\<\{ `harness`: [`Harness`](/docs/agent-sdk/harness-sdk)\<`ToolSet`>; `scheduling`: [`HarnessScheduling`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling); }>

## createHarnessScheduling()

> **createHarnessScheduling**(`ports`, `ledger`): [`HarnessScheduling`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling)

Creates the bounded v0 model-facing schedule tools and the matching proactive
task handler. Schedule definitions and occurrence-to-run correlation are
private persistent state; only active harness-owned schedules are projected.

**Parameters**

| Parameter | Type |
| - | - |
| `ports` | [`AgentHarnessPorts`](/docs/agent-sdk/harness-sdk/ports) |
| `ledger` | [`HarnessRunLedger`](/docs/agent-sdk/harness-sdk/persistence/run-ledger#harnessrunledger) |

**Returns**
[`HarnessScheduling`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling)

## schedule()

> **schedule**(`input`): `Promise`\<`Pick`\<[`HarnessSchedule`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedule), `"id"` | `"mode"` | `"nextFireAt"`>>

**Parameters**

| Parameter | Type |
| - | - |
| `input` | [`HarnessScheduleRequest`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedulerequest) |

**Returns**
`Promise`\<`Pick`\<[`HarnessSchedule`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedule), `"id"` | `"mode"` | `"nextFireAt"`>>

## listSchedules()

> **listSchedules**(): `Promise`\<readonly [`HarnessSchedule`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedule)\[]>

**Returns**
`Promise`\<readonly [`HarnessSchedule`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedule)\[]>

## cancelSchedule()

> **cancelSchedule**(`id`): `Promise`\<[`HarnessScheduleCancellation`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedulecancellation)>

**Parameters**

| Parameter | Type |
| - | - |
| `id` | `string` |

**Returns**
`Promise`\<[`HarnessScheduleCancellation`](/docs/agent-sdk/harness-sdk/plug-ins/scheduling#harnessschedulecancellation)>

## dispatch()

> **dispatch**(`task`): `Promise`\<[`HarnessRun`](/docs/agent-sdk/harness-sdk/harness/get#harnessrun) | `undefined`>

Dispatch a scheduler or harness admission task through persistent ownership checks.

**Parameters**

| Parameter | Type |
| - | - |
| `task` | `TaskRecord` |

**Returns**
`Promise`\<[`HarnessRun`](/docs/agent-sdk/harness-sdk/harness/get#harnessrun) | `undefined`>

## recover()

> **recover**(): `Promise`\<`number`>

Reconcile persistent schedule state with namespaced pending tasks after restart.

**Returns**
`Promise`\<`number`>

## tools

> `readonly` **tools**: `ToolSet`

## HarnessSchedule

> **HarnessSchedule** = `Readonly`\<\{ `id`: `string`; `mode`: `"delay"` | `"interval"`; `nextFireAt`: `number`; `status`: `"active"`; } & (`Readonly`\<\{ `intervalSeconds?`: `never`; }> | `Readonly`\<\{ `intervalSeconds`: `number`; }>)>

## HarnessScheduleRequest

> **HarnessScheduleRequest** = `Readonly`\<\{ `delaySeconds?`: `number`; `intervalSeconds?`: `number`; `prompt`: `string`; }>

## HarnessScheduleCancellation

**Properties**
**canceled**

> `readonly` **canceled**: `boolean`

**id**

> `readonly` **id**: `string`
