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

# Get a schedule

> Retrieve a Forward Schedule by ID.

`GET /api/v1/forward/schedules/{schedule_id}`

Returns a complete Schedule object. Archived schedules remain queryable by ID.

## Headers

| Header          | Required | Description    |
| --------------- | -------- | -------------- |
| `Authorization` | Yes      | `Bearer <PAT>` |

## Path parameters

| Parameter     | Type   | Required | Description          |
| ------------- | ------ | -------- | -------------------- |
| `schedule_id` | string | Yes      | Forward Schedule ID. |

## Example request

```bash theme={null}
curl -s -X GET 'https://api.qoder.com/api/v1/forward/schedules/sched_019f00112233445566778899aabbccdd' \
  -H "Authorization: Bearer $QODER_PAT"
```

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "id": "sched_019f00112233445566778899aabbccdd",
  "identity_id": "idn_019eabc123",
  "template_id": "tmpl_support",
  "name": "Daily tech brief",
  "description": "Generate a daily technology news summary",
  "status": "active",
  "paused_reason": null,
  "initial_events": [
    {
      "type": "user.message",
      "content": "Summarize current technology news in five bullet points."
    }
  ],
  "execution": {
    "session_mode": "new_session",
    "max_concurrent_runs": 1,
    "max_attempts": 1,
    "timeout_ms": 300000
  },
  "trigger_policy": {
    "type": "cron",
    "expression": "0 9 * * *",
    "timezone": "Asia/Shanghai",
    "upcoming_runs_at": ["2026-06-23T01:00:00Z"]
  },
  "environment_id": "env_019e64e01a137caf953ac2ac7b42ec5c",
  "sinks": [],
  "metadata": {},
  "archived_at": null,
  "created_at": "2026-06-22T10:00:00Z",
  "updated_at": "2026-06-22T10:00:00Z"
}
```

## Response fields

Returns the Schedule object.

## Errors

| HTTP | Type                   | Code                      | Trigger                                                  |
| ---- | ---------------------- | ------------------------- | -------------------------------------------------------- |
| 401  | `authentication_error` | `authentication_required` | PAT invalid or expired.                                  |
| 404  | `not_found_error`      | `schedule_not_found`      | Schedule does not exist or is not visible to the caller. |

## Notes

* `status` is only `active` or `paused`; archive state is expressed by `archived_at`.
* Schedule objects do not expose runtime-private fields such as Vaults, Memory Stores, or raw environment variables.

## Related

<CardGroup cols={2}>
  <Card title="Update a schedule" icon="pencil" href="/cloud-agents/api/forward/schedules/update" />

  <Card title="List schedule runs" icon="history" href="/cloud-agents/api/forward/schedule-runs/list" />
</CardGroup>
