---
title: "Create a schedule for an agent"
method: POST
path: "/v1/agents/{workflow_permanent_id}/schedules"
tags: ["Schedules"]
---

# Create a schedule for an agent

`POST /v1/agents/{workflow_permanent_id}/schedules`

Create a cron or fixed-interval schedule that runs the given agent automatically with a fixed set of parameters. An interval schedule first runs at first_fire_at, or one interval after creation. Returns the stored schedule and its next upcoming run times.

## Path parameters

- `workflow_permanent_id` string, required

## Headers

- `x-api-key` string, nullable — Skyvern API key for authentication. API key can be found at https://app.skyvern.com/settings.

## Request body

- WorkflowScheduleUpsertRequest
  - `cron_expression` string, nullable
  - `interval_seconds` integer, nullable — Fixed elapsed interval between runs, in seconds. Mutually exclusive with cron_expression.
  - `first_fire_at` string, date-time, nullable — First run of an interval schedule; later runs follow every interval_seconds from it. Must be in the future when changed. Defaults to one interval after creation.
  - `timezone` string, required
  - `enabled` boolean, nullable
  - `parameters` object, nullable
  - `name` string, nullable
  - `description` string, nullable

## Response `200`

Successful Response

- WorkflowScheduleResponse
  - `schedule` WorkflowSchedule, required
    - `workflow_schedule_id` string, required
    - `organization_id` string, required
    - `workflow_permanent_id` string, required
    - `cron_expression` string, nullable
    - `interval_seconds` integer, nullable
    - `first_fire_at` string, date-time, nullable
    - `timezone` string, required
    - `enabled` boolean, required
    - `parameters` object, nullable
    - `temporal_schedule_id` string, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `created_at` string, date-time, required
    - `modified_at` string, date-time, required
    - `deleted_at` string, date-time, nullable
  - `next_runs` string[]

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-25** `7989ab3e2c03` — 2 breaking, 6 info
  - the response property `schedule/cron_expression` became optional for the status `200`
  - response property `schedule/cron_expression` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - added the new optional request property `first_fire_at`
  - added the new optional request property `interval_seconds`
  - …4 more
- **2026-07-12** `3c39ee1fef00` — 1 info
  - request property `enabled` list-of-types was widened by adding types `null` to media type `application/json`
- **2026-06-08** `3a3616091b66` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/skyvern-ai/apis/skyvern-api-2/changes/v1/agents/:workflow_permanent_id/schedules/post.md)

---

[API](https://skmtc.dev/skyvern-ai/apis/skyvern-api-2.md) · [All operations](https://skmtc.dev/skyvern-ai/apis/skyvern-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/skyvern-ai/apis/skyvern-api-2/revisions/b149a26710ba?raw)
