Sasha MCP reference

listSchedules

List the scheduled skills

List every schedule on this Sasha: its skill, when it runs and in which time zone, whether it is on, the last and next run, and the last error when the last run failed. Schedules are shared by the whole organisation. Use this to check that a schedule exists, or why a run failed.

Arguments

No arguments.

Scopes

schedules:manage

Annotations

  • Read only: yes
  • Destructive: no

When to use

Call listSchedules to see which skills run on a schedule, to check that a schedule exists before you change it, or to answer "did the report run?" and "why did it fail?".

The schedule tools need the schedules:manage scope. Only admin and staff can hold it. Schedules belong to the whole organisation: every admin and staff user sees and changes the same list, which also shows in the Sasha web interface, in Menu → Tasks.

Each schedule in schedules has these fields:

  • name: the schedule's own name. The other schedule tools take it.
  • skill: the skill that runs.
  • when: a five-part cron expression (minute, hour, day of the month, month, day of the week), read in timezone.
  • timezone: an IANA time zone, for example Europe/London or UTC.
  • enabled: false when the schedule is paused.
  • timeoutMinutes: the time limit for one run.
  • nextRunAt: the next run, in UTC, or null when the schedule is paused.
  • lastRunAt and lastStatus: the last run, in UTC, and how it ended (completed, failed, timeout or running), or null when it has never run.
  • lastError: the first 300 characters of the error when the last run failed or timed out, else null.

The list does not say who made a schedule.

Example

{}

The structured result (structuredContent):

{
  "schedules": [
    {
      "name": "client-digest-thu-6pm",
      "skill": "weekly-client-digest",
      "when": "0 18 * * 4",
      "timezone": "Europe/London",
      "enabled": true,
      "timeoutMinutes": 15,
      "nextRunAt": "2026-10-22T17:00:00.000Z",
      "lastRunAt": "2026-10-15T17:04:12.000Z",
      "lastStatus": "failed",
      "lastError": "Skill \"weekly-client-digest\" timed out after 900000ms"
    }
  ]
}

Refusals and what to do

  • If the connection does not hold schedules:manage, the tool is not in your tool list, and a call to it returns MCP error -32602: Tool listSchedules not found. Only admin and staff can hold the scope, so a member's connection never has the schedule tools. A connection approved before the scope existed must reconnect, or the person mints a new token. Read the permissions section of getDocs.
  • Arguments that do not match the schema are refused before the tool runs, for example a name with capital letters or spaces, or an extra argument.
  • internal:unexpected (request <id>): something failed inside Sasha. Quote the request id in suggestImprovement.

Related

  • listSchedules lists the schedules and their last result.
  • createSchedule adds a schedule.
  • updateSchedule changes, pauses or restarts a schedule.
  • deleteSchedule removes a schedule.
  • runSchedule runs a schedule once now.
  • getDocs has a schedules section with the same rules.
made with bernard

Cookie settings