---
name: "schedules_update"
area: "schedules"
title: "Change a schedule"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/schedules_update"
mcp_server: "https://api.conecto.chat/mcp/schedules"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/schedules/schedules_update"
---

# Change a schedule (`schedules_update`)

Changes a schedule's name, arguments, timetable or time zone, or pauses and resumes it.

Change a schedule's name, arguments, timetable or time zone, or pause and resume it. Give only what changes. Changing what it runs makes it run as this bot from then on. Resuming starts from the next slot, never the missed ones.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

A schedule should run at another time, with other arguments, or not for a while.

## Say this to your agent

> The accountant wants the weekly journal earlier: 6:30 on Mondays.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `schedule_id` | integer | yes | The schedule_id schedules_create returned. At least 1. |  |  |
| `name` | string | no | e.g. "Monday invoice reminders". 1 to 80 characters. |  |  |
| `arguments` | object | no |  |  |  |
| `timetable` | object | no | When it runs, in time_zone. {"every": "minutes", "interval": 30} (15 at the least, 60 for tools that contact people or sites outside the business); {"every": "hour", "interval": 1, "minute": 0}; {"every": "day", "at": "09:00"}; {"every": "week", "days": ["mon", "thu"], "at": "09:00"}; {"every": "month", "day": 1, "at": "09:00"} (day 1 to 28, or "last"). |  |  |
| `timetable.every` | string | yes, when `timetable` is given |  | `"minutes"`, `"hour"`, `"day"`, `"week"`, `"month"` |  |
| `timetable.interval` | integer | no |  |  |  |
| `timetable.minute` | integer | no |  |  |  |
| `timetable.at` | string | no |  |  |  |
| `timetable.days` | array of strings | no | Up to 7 items. |  |  |
| `timetable.day` | integer or string | no |  |  |  |
| `time_zone` | string | no | e.g. "America/Los_Angeles". The business calendar's time zone if left out, else UTC. Up to 64 characters. |  |  |
| `paused` | boolean | no |  |  |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `schedules_update` on the MCP server `https://api.conecto.chat/mcp/schedules` with these arguments:

```json
{
  "schedule_id": 4112,
  "timetable": {
    "every": "week",
    "days": [
      "mon"
    ],
    "at": "06:30"
  }
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/schedules_update \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"schedule_id": 4112, "timetable": {"every": "week", "days": ["mon"], "at": "06:30"}}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "schedules_update",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "schedule": {
      "schedule_id": 4112,
      "name": "Weekly journal for the accountant",
      "tool": "books_export",
      "arguments": {
        "what": "journal",
        "from": "{today-7}",
        "to": "{today-1}"
      },
      "timetable": {
        "every": "week",
        "days": [
          "mon"
        ],
        "at": "06:30"
      },
      "runs_when": "every Monday at 06:30",
      "time_zone": "America/Los_Angeles",
      "paused": false,
      "done": false,
      "bot": "Pip",
      "next_run_at": "2026-10-19T06:30:00-07:00",
      "last_run_at": null,
      "last_status": null,
      "last_call_id": null,
      "last_error": null,
      "runs": 0
    },
    "upcoming": [
      "2026-10-19T06:30:00-07:00",
      "2026-10-26T06:30:00-07:00"
    ]
  }
}
```

`result`: schedule: the schedule as it now is; upcoming: its next runs.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No schedule of the business has that schedule_id. | Find it with schedules_list. |
| `not_schedulable` | 400 | The tool cannot run on its own: it handles secrets, schedules things itself, buys from a quote that expires, or starts a monthly rental. | Call that tool yourself when it is needed. |
| `invalid_input` | 400 | The arguments do not fit the tool (the message names the one), or time_zone is not a time zone name. | Send the arguments the tool's page lists; time zones like "America/Los_Angeles". |
| `invalid_input` | 400 | The timetable is not one the message lists: minutes under 15 (60 for a tool that contacts people or sites outside the business), a time not like 09:00, or a month day past 28. | Use one of the timetables on this page. |
| `already_ran` | 409 | The one-off run ran already. | Set a new one with schedules_run_later. |
| `rent_lapsed` | 409 | The schedule's monthly rent lapsed. | Delete it and create it again. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [schedules_create](https://conecto.chat/tools/schedules/schedules_create.md): Runs a tool call on a timetable in the business's time zone, from every 15 minutes to once a month; each run is a normal call at the tool's price. $0.50 a call.
- [schedules_run_later](https://conecto.chat/tools/schedules/schedules_run_later.md): Runs one tool call once at a set time, up to a year ahead, with no monthly rent. $0.01 a call.
- [schedules_list](https://conecto.chat/tools/schedules/schedules_list.md): Every schedule and waiting one-off run: what it runs and when, as which bot, and how its last run went. Free up to 1,000,000 reads a month.
- [schedules_get](https://conecto.chat/tools/schedules/schedules_get.md): One schedule in full: its next three runs, its last ten runs with their call_ids and costs, and its rent. Free up to 1,000,000 reads a month.
- [schedules_delete](https://conecto.chat/tools/schedules/schedules_delete.md): Stops a schedule for good, or cancels a one-off run before it runs; past runs stay in the call log. Free.
