Scheduling you can inspect

Define HTTP jobs in the application or in cron.yaml, then follow every run from one place.

Schedules as code

Sync cron.yaml from one repository on Free or from unlimited repositories on paid plans.

From minutes to seconds

Minimum resolution is one minute on Free, ten seconds on Pro, and one second on Team and Agency.

Useful run history

Keep logs for 3 days on Free, 15 on Pro, 30 on Team, or 90 on Agency. Team and Agency can export them.

Alerts where work happens

Every plan includes email alerts. Paid plans add webhooks, with advanced member and environment controls on Team and Agency.

cron.yaml
version: 1

defaults:
  timezone: Europe/Rome
  timeout: 30s
  retries: { max: 3, backoff: exponential }
  on_overlap: skip

jobs:
  - name: daily-digest
    schedule: "0 9 * * *"
    environments: [production]
    request:
      url: https://api.example.com/tasks/digest
      method: POST
      headers:
        Authorization: "Bearer ${DIGEST_TOKEN}"
    alerts:
      on_failure: [email, slack]

  - name: healthcheck
    every: 10s
    environments: [staging, production]
    request:
      url: https://api.example.com/health
      method: GET
    timeout: 5s

Review schedules with the code

A cron.yaml file keeps schedules close to the application they call. Every push is read again so changes can follow the same review process as code.

  • Cron expressions with explicit time zones
  • Intervals for sub-minute schedules
  • Separate staging and production environments on paid plans
  • One repository on Free, unlimited on paid plans

See each HTTP request

Postqron records the outcome of every scheduled HTTP request. It does not run shell commands, scripts or containers.

  • Duration, outcome and response in the run history
  • CSV and JSON export on Team and Agency
  • Metrics and charts on Team and Agency
  • Dedicated static outbound IP on Agency