schedules resource on the Figranium Python SDK lets you automate when tasks run. You can list every scheduled task, attach a recurring schedule to a specific task, delete it, validate a schedule before applying it, and inspect the overall scheduler health. All schedule payloads use the shared Schedule type, which supports interval, hourly, daily, weekly, monthly, and raw cron expressions.
Schedule type
ASchedule object controls whether and how often a task runs automatically.
enabled: whether the schedule is active.frequency: the recurrence pattern. Use"interval"for a simple minute-based timer,"hourly"/"daily"/"weekly"/"monthly"for calendar-based runs, or omit it and supplycrondirectly.intervalMinutes: required whenfrequencyis"interval".hourandminute: used with"daily","weekly", and"monthly"to set the time of day.daysOfWeek: array of weekday numbers (0= Sunday) for"weekly".dayOfMonth: day number (1to31) for"monthly".cron: a raw cron string when you need full control.lastRun,lastRunStatus,lastRunDurationMs,nextRun: read-only fields returned by the server.
Examples
Run a task every 15 minutes:interval_schedule.py
weekly_schedule.py
cron_schedule.py
Methods
list
list
Retrieve all tasks that currently have a schedule configured.Returns an object with a
- HTTP endpoint:
GET /api/schedules - Signature:
schedules.list(*, options=None)
list_schedules.py
schedules array. Each entry contains taskId, taskName, mode, and the attached Schedule object.set
set
Attach or update a schedule for a specific task.Returns an object containing the saved
- HTTP endpoint:
POST /api/schedules/{taskId} - Signature:
schedules.set(task_id, schedule, *, options=None)
set_schedule.py
schedule, a human-readable description, and the nextRun timestamp (or None if the schedule is disabled or invalid).delete
delete
Remove a task’s schedule entirely.Returns
- HTTP endpoint:
DELETE /api/schedules/{taskId} - Signature:
schedules.delete(task_id, *, options=None)
delete_schedule.py
{"success": bool} indicating whether the schedule was removed.status
status
Inspect the current schedule for a single task, including its computed cron expression and validity.Returns an object with the current
- HTTP endpoint:
GET /api/schedules/{taskId}/status - Signature:
schedules.status(task_id, *, options=None)
schedule_status.py
schedule, the resolved cron string, a human-readable description, and an isValid flag.describe
describe
Validate a schedule payload for a task without saving it. This is useful for previewing the next run time and confirming a cron expression before you call Returns an object with
set.- HTTP endpoint:
POST /api/schedules/{taskId}/describe - Signature:
schedules.describe(task_id, schedule, *, options=None)
describe_schedule.py
valid, description, cron, and nextRun. If valid is False, the schedule will not be accepted by set.overall_status
overall_status
Get a high-level view of the scheduler state across all tasks.Returns a plain dictionary. The exact fields depend on the server version; inspect the response to discover available keys.
- HTTP endpoint:
GET /api/schedules/status/all - Signature:
schedules.overall_status(*, options=None)
overall_status.py
Async usage
Allschedules methods are also available on AsyncFigranium. Use await for each call.
async_schedules.py
Error handling
Schedule methods raiseFigraniumError on failure. Common cases include a missing task ID (404) or an invalid schedule payload (400). See Error handling for retry guidance and error codes.
Related resources
Tasks
Create and manage the tasks you schedule.
Executions
Inspect the runs produced by scheduled tasks.
Request options
Pass custom headers and per-request timeouts.
Task scheduling
Learn how scheduling works in Figranium.
Errors
Handle FigraniumError responses.