Skip to main content
SchedulerTools gives an agent natural-language control over the AgentOS Scheduler. It wraps ScheduleManager so an agent can create, list, enable, disable, delete, and inspect recurring schedules.

Prerequisites

Install the scheduler extras:
uv pip install "agno[scheduler]"
Schedules are stored in the same database used by AgentOS. To execute schedules, run AgentOS with scheduler=True.

Example

cookbook/05_agent_os/scheduler/scheduler_tools_agent.py
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.scheduler import SchedulerTools

scheduler_agent = Agent(
    id="scheduler-agent",
    name="Scheduler Agent",
    model=OpenAIChat(id="gpt-4o-mini"),
    tools=[
        SchedulerTools(
            db=db,
            default_endpoint="/agents/scheduler-agent/runs",
            default_timezone="UTC",
        )
    ],
    instructions=[
        "When the user asks for recurring work, create a schedule.",
        "Confirm the cron expression and timezone.",
    ],
    db=db,
    markdown=True,
)
When targeting an AgentOS /runs endpoint, the schedule payload must include a message field.

Toolkit Params

ParameterTypeDefaultDescription
dbAny-Database adapter implementing scheduler methods.
default_endpointOptional[str]NoneEndpoint to call when a schedule fires.
default_methodstr"POST"HTTP method for scheduled requests.
default_timezonestr"UTC"Timezone used for cron expressions.
default_payloadOptional[dict]NoneDefault request payload.

Toolkit Functions

FunctionDescription
create_scheduleCreate or update a recurring schedule from a cron expression.
list_schedulesList schedules.
get_scheduleFetch one schedule by id.
delete_schedulePermanently remove a schedule.
enable_scheduleEnable a paused schedule.
disable_schedulePause a schedule.
get_schedule_runsRead schedule execution history.
All functions have sync and async variants.

Developer Resources