Schedules
A schedule runs an agent on a cadence instead of on a request. Nobody has to be watching, and nothing has to be holding a connection.
Ours have been running hourly since we built it — the agent that triages our crash reports is a schedule, not a cron job we operate.
List them
curl https://mume.ai/api/v1/schedules \
-H "Authorization: Bearer $MUME_API_KEY"{
"schedules": [
{
"id": "sch_01H…",
"title": "Competitor watch",
"agentId": "competitor-watch",
"sessionId": "sess_01H…",
"cadence": "Every day at 09:00 (Asia/Kolkata)",
"enabled": true,
"nextRunAt": 1786000000000
}
]
}cadenceis a sentence, not a cron expression — it is rendered for display, in the schedule's own time zone. nextRunAt is epoch milliseconds.
Pause and resume
curl -X POST https://mume.ai/api/v1/schedules/$SCHEDULE_ID/cancel \
-H "Authorization: Bearer $MUME_API_KEY"
curl -X POST https://mume.ai/api/v1/schedules/$SCHEDULE_ID/resume \
-H "Authorization: Bearer $MUME_API_KEY"Resume answers { "ok": true, "id": …, "enabled": true, "nextRunAt": … } with the next firing already computed, so you can show it immediately rather than waiting for the schedule to tick.
A schedule can expire
Resume answers schedule_expired when the window it was created for has passed. That is a real state and not an error to retry through — the schedule has to be created again rather than restarted.
A schedule that stops itself
A scheduled run that cannot be paid for disables its schedule rather than failing every hour forever. This is the one behaviour that surprises people: the schedule is off, and nothing about the next GET /schedules explains why unless you look at enabled. Resume brings it back once there is credit — Credits & Usage is where to check the balance first.
Creating one
Schedules are created from the agent's settings in the app, not over the API. The endpoints here manage schedules that already exist. If you need to create them programmatically, tell us what you are building — it is a small addition and we would rather design it around a real caller than guess.
The scheduler's own trigger is not part of this API and is not reachable on this base URL. It acts for every account at once, which is not something a user credential can authorise.