A cron expression is five fields separated by spaces:
┌─── minute (0-59) │ ┌─── hour (0-23) │ │ ┌─── day of month (1-31) │ │ │ ┌─── month (1-12) │ │ │ │ ┌─── day of week (0-7, Sunday = 0 or 7) │ │ │ │ │ * * * * *
* means every. A number means at this value. A slash expression like */5 meansevery nth.
The expressions you will actually use
| Expression | Meaning |
|---|---|
* * * * * | Every minute |
*/5 * * * * | Every 5 minutes |
0 * * * * | Every hour, on the hour |
0 9 * * * | Every day at 9:00 AM UTC |
0 9 * * 1-5 | Every weekday at 9:00 AM UTC |
0 0 * * 0 | Every Sunday at midnight UTC |
0 9 1 * * | First day of every month at 9:00 AM |
0 */6 * * * | Every 6 hours |
30 14 * * * | Every day at 2:30 PM UTC |
That is enough for most scheduling work. Copy the one you need and pass it to CronAPI.
curl -X POST https://app.cronapi.dev/api/v1/crons -H "Authorization: Bearer cr_your_key" -H "Content-Type: application/json" -d '{"cron": "0 9 * * 1-5", "url": "https://your.app/run"}'Your webhook now fires every weekday at 9am. CronAPI handles the schedule and gives you a dashboard to see what happened after each run.
Start fast
Copy a cron. Ship the webhook.
Use the example above, then tweak the expression when your workflow needs a different cadence.