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.
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: 5sReview 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