Scheduler

Jeriko does not have separate /scheduler routes. All scheduling is handled by the Triggers API using triggers with type: "cron". This page shows the common scheduling workflows using trigger endpoints.

Create a Scheduled Task

Create a cron trigger via POST /triggers with type: "cron" and a cron expression in the config.

POST/triggersAuthenticated

Create a cron trigger to schedule a recurring task.

ParameterTypeRequiredDescription
typestringYesMust be "cron"
configobjectYes{ expression: "cron string", timezone?: "IANA timezone" }
actionobjectYes{ type: "shell"|"agent", command?, prompt?, notify? }
labelstringNoHuman-readable name for the task
enabledbooleanNoStart enabled (default: true)
max_runsnumberNoAuto-disable after N fires (0 = unlimited)
curl -X POST http://127.0.0.1:7741/triggers \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "cron",
    "config": { "expression": "0 2 * * *" },
    "action": { "type": "shell", "command": "jeriko backup create" },
    "label": "Daily backup"
  }'
201Response
{
  "ok": true,
  "data": {
    "id": "a1b2c3d4",
    "type": "cron",
    "enabled": true,
    "label": "Weekly summary",
    "run_count": 0,
    "created_at": "2026-03-03T12:00:00Z"
  }
}

List Scheduled Tasks

Filter triggers by type=cron to list only scheduled tasks.

GET/triggers?type=cronAuthenticated

List all cron triggers (scheduled tasks).

curl "http://127.0.0.1:7741/triggers?type=cron" \
  -H "Authorization: Bearer $TOKEN"
200Response
{
  "ok": true,
  "data": [
    {
      "id": "a1b2c3d4",
      "type": "cron",
      "label": "Weekly summary",
      "config": {
        "expression": "0 9 * * MON",
        "timezone": "America/New_York"
      },
      "enabled": true,
      "run_count": 12,
      "last_fired": "2026-02-24T14:00:00Z"
    }
  ]
}

Enable / Disable

Toggle a scheduled task on or off without deleting it.

POST/triggers/:id/toggleAuthenticated

Toggle a cron trigger between enabled and disabled.

curl -X POST http://127.0.0.1:7741/triggers/a1b2c3d4/toggle \
  -H "Authorization: Bearer $TOKEN"

Remove a Scheduled Task

DELETE/triggers/:idAuthenticated

Permanently delete a cron trigger.

curl -X DELETE http://127.0.0.1:7741/triggers/a1b2c3d4 \
  -H "Authorization: Bearer $TOKEN"
200Response
{
  "ok": true,
  "data": {
    "id": "a1b2c3d4",
    "status": "deleted"
  }
}

Cron Expression Reference

ExpressionSchedule
* * * * *Every minute
0 * * * *Every hour
0 9 * * *Daily at 9:00 AM
0 9 * * MONEvery Monday at 9:00 AM
0 0 1 * *First day of every month

For the full trigger API including webhook, file, HTTP, and email triggers, see the Triggers documentation.