Skip to content
Integrations
Integrations

Cron

Run AgentField reasoners from a server-side schedule.

Cron connect dialog with schedule config

The cron source runs a reasoner on a control-plane schedule. No external webhook endpoint or secret is required.

Source Surface

SurfaceValue
Source namecron
KindLoop source
SecretNot required
Configexpression, optional timezone
Event typetick
Idempotency<expression>@<scheduled-minute-utc>
Reasoner inputSchedule metadata as event, with trigger metadata in _meta

Agent Code

from agentfield import Agent, on_schedule

app = Agent(node_id="scheduler")

@app.reasoner()
@on_schedule("*/15 * * * *")
async def run_every_fifteen_minutes(_input, trigger=None):
    return {"fired_at": trigger.received_at.isoformat() if trigger else None}

app.run()

UI Config

{
  "expression": "*/15 * * * *",
  "timezone": "UTC"
}

The dispatched input looks like:

{
  "event": {
    "fired_at": "2026-06-15T10:30:00Z",
    "expression": "*/15 * * * *",
    "timezone": "UTC"
  },
  "_meta": {
    "source": "cron",
    "event_type": "tick",
    "idempotency_key": "*/15 * * * *@2026-06-15T10:30Z"
  }
}

Supported Cron Syntax

AgentField supports the common 5-field cron subset:

  • *
  • integers
  • ranges like 9-17
  • lists like 1,2,3
  • steps like */5 or 9-17/2

It does not support seconds, year fields, named months, named weekdays, or strings like @hourly.

Notes

  • Event type is tick.
  • Timezone defaults to UTC.
  • Schedule execution uses the same dispatch path as webhook sources.