# Schedule

The Schedule object of the Kaabist API.

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes | pattern `^sch_[0-9a-hjkmnp-tv-z]{26}$` |
| `object` | `"schedule"` | yes |  |
| `program` | string | yes |  |
| `inputs` | object or null | yes |  |
| `cron` | string | yes | pattern `^\S+\s+\S+\s+\S+\s+\S+\s+\S+$` |
| `timezone` | string | yes | min length 1 |
| `status` | `"active"`, `"paused"` | yes |  |
| `paused_reason` | `"manual"`, `"credits"`, `null` | yes |  |
| `mode` | `"live"`, `"test"` | yes |  |
| `change_detection` | object | yes |  |
| `change_detection.enabled` | boolean | yes |  |
| `change_detection.fields` | string[] |  |  |
| `overlap_policy` | `"skip"`, `"queue"` | yes |  |
| `catch_up` | boolean | yes |  |
| `webhook_url` | string or null (uri) | yes |  |
| `last_run_at` | string or null (date-time) | yes |  |
| `next_run_at` | string or null (date-time) | yes |  |
| `created_at` | string (date-time) | yes |  |

## Example

```json
{
  "id": "sch_01j9zqk3q7m4n5p6r7s8t9v0wx",
  "object": "schedule",
  "program": "acme-report@production",
  "inputs": {
    "report_id": "42"
  },
  "cron": "*/30 * * * *",
  "timezone": "Europe/Istanbul",
  "status": "active",
  "paused_reason": null,
  "mode": "live",
  "change_detection": {
    "enabled": true,
    "fields": [
      "price"
    ]
  },
  "overlap_policy": "skip",
  "catch_up": false,
  "webhook_url": "https://hooks.acme.test/kaab",
  "last_run_at": "2026-09-18T10:00:00Z",
  "next_run_at": "2026-09-18T10:30:00Z",
  "created_at": "2026-09-18T10:00:00Z"
}
```
