Crons

Crons are scheduled jobs on Cloud. They run on UTC, in the backend — not in the visitor’s browser, and not as a URL you should call from the website.

Crons table with name, schedule, status, enabled switch, and last run.
Crons table with name, schedule, status, enabled switch, and last run.

Create

Empty state: No crons yet. Chat creates scheduled jobs when this site needs them.

Every morning at 09:00 UTC, email me a count of new waitlist rows.

Names are short DNS labels: lowercase, digits, hyphens, max 32 characters.

Schedule

Five-field cron, UTC, plus aliases:

ExpressionMeaning
*/5 * * * *Every 5 minutes
0 * * * *Hourly
0 0 * * *Daily at midnight UTC
0 9 * * 1Mondays at 09:00 UTC
@hourly @daily @weekly @monthlyAliases

Edit the schedule in the row dialog (placeholder */5 * * * *). Toggle Enabled without deleting the job.

Code

The handler is TypeScript in the form:

export default async () => {
  // ...
};

It is not a Hono route. Internally the platform hits /_cron/{name} with x-cron-trigger: 1. Do not call that path from the site.

Chat can run a cron once when you are testing. The builder UI edits schedule, enabled, and source — it does not include a “Run now” button.

Last run

The table shows last run time and status. Use that to see whether a job is actually firing after you enable Cloud.

Need help? Contact us.