---
title: "Update a schedule"
method: PUT
path: "/v3/schedules/{id}"
tags: ["Schedules"]
---

# Update a schedule

`PUT /v3/schedules/{id}`

<small>_Requires the `sequences:write` scope (or a broader one that includes it)._</small>

Updates an existing schedule.

## Path parameters

- `id` integer, required

## Request body

- object — Request body for updating an existing schedule.
  - `name` string, required — Name of the schedule
  - `timezoneId` string, required — IANA timezone identifier (e.g., "America/New_York")
  - `excludeHolidays` boolean — Whether to skip sending on holidays from linked calendars
  - `useProspectTimezone` boolean — Whether to use the prospect's timezone instead of the schedule timezone
  - `useFollowUpSchedule` boolean — Whether a separate follow-up schedule is enabled
  - `mainTimings` object[] — Primary schedule timings for each day of the week
    - `weekDay` 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday', required — Day of the week
    - `isActive` boolean, required — Whether sending is enabled on this day
    - `timeRanges` object[] — Active time ranges for this day
      - `fromTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
      - `toTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
  - `followUpTimings` object[] — Follow-up schedule timings (used when useFollowUpSchedule is true)
    - `weekDay` 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday', required — Day of the week
    - `isActive` boolean, required — Whether sending is enabled on this day
    - `timeRanges` object[] — Active time ranges for this day
      - `fromTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
      - `toTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)

## Response `200`

Schedule updated successfully

- object — Full representation of a schedule with timing configuration.
  - `id` integer — Unique identifier for the schedule
  - `name` string — Name of the schedule
  - `timezoneId` string — IANA timezone identifier (e.g., "America/New_York")
  - `excludeHolidays` boolean — Whether to skip sending on holidays from linked calendars
  - `useProspectTimezone` boolean — Whether to use the prospect's timezone instead of the schedule timezone
  - `useFollowUpSchedule` boolean — Whether a separate follow-up schedule is enabled
  - `mainTimings` object[] — Primary schedule timings for each day of the week
    - `weekDay` 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday', required — Day of the week
    - `isActive` boolean, required — Whether sending is enabled on this day
    - `timeRanges` object[] — Active time ranges for this day
      - `fromTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
      - `toTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
  - `followUpTimings` object[] — Follow-up schedule timings (used when useFollowUpSchedule is true)
    - `weekDay` 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday', required — Day of the week
    - `isActive` boolean, required — Whether sending is enabled on this day
    - `timeRanges` object[] — Active time ranges for this day
      - `fromTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
      - `toTime` object, required — A time of day represented as hour and minute.
        - `hour` integer, required — Hour of the day (0-23)
        - `minute` integer, required — Minute of the hour (0-59)
  - `isDefault` boolean — Whether this is the default schedule
  - `status` string — Current status of the schedule

## Other responses

- `400` — Invalid id parameter or request body validation error
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — User lacks required feature scope to update this schedule
- `404` — Schedule not found
- `409` — A schedule with the given name already exists
- `429` — Too Many Requests

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
