Core concepts

Cron Jobs

Cron Jobs

Recurring schedules using cron expressions.

A cron job is a recurring task that fires on a fixed schedule expressed as a standard cron expression. Unlike one-off tasks, cron jobs keep running until paused or deleted.

Creating a cron job

POST /api/v1/scheduler/cronjobs

{
  "name": "daily-digest",
  "url": "https://my-service.com/hooks/digest",
  "method": "POST",
  "payload": { "type": "daily" },
  "cron": "0 8 * * *",
  "timezone": "Europe/Madrid"
}

Cron expression format

Underlayer uses standard 5-field cron expressions:

┌───── minute (0–59)
│ ┌───── hour (0–23)
│ │ ┌───── day of month (1–31)
│ │ │ ┌───── month (1–12)
│ │ │ │ ┌───── day of week (0–7, Sunday = 0 or 7)
│ │ │ │ │
* * * * *
  • 0 8 * * *: every day at 08:00
  • */15 * * * *: every 15 minutes
  • 0 0 1 * *: first day of every month at midnight
  • 0 9 * * 1-5: weekdays at 09:00

Timezone

The timezone field accepts any IANA timezone string (e.g. Europe/Madrid, America/New_York, UTC). If omitted, UTC is used. The next run time displayed in the dashboard accounts for the configured timezone.

Pausing and resuming

You can pause a cron job at any time. It stops firing but retains its configuration. Resume it later and it will continue on its regular schedule from the next occurrence. This is useful during deployments or maintenance windows.

Next run time

The dashboard shows the next scheduled run time for every active cron job. Each run creates an entry in the activity log, where you can inspect the request and response.