Skip to content

Scheduling functions in the Cronjob DuckDB extension

Function category

Scheduling

3 functions

Register, list, and cancel cron-style scheduled SQL queries. Six-field [cron expressions](https://en.wikipedia.org/wiki/Cron) with second-level resolution. Schedules live in memory inside the DuckDB process — when the process exits, every job is forgotten. For restart-safe scheduling, drive the DuckDB run from an external orchestrator (system [`cron(8)`](https://man7.org/linux/man-pages/man8/cron.8.html), `systemd` timers, Kubernetes CronJob).

cron

Scalar function Scheduling
Signature
cron(col0: VARCHAR, col1: VARCHAR) VARCHAR
Arguments (Positional)
Argument col0 Type VARCHAR Mode Positional Description
Argument col1 Type VARCHAR Mode Positional Description
Description
1 Every 15 seconds during hours 1–4
SELECT cron('SELECT now()', '*/15 * 1-4 * * *');
2 Weekdays at 7am — daily metrics export
SELECT cron('CALL daily_metrics_export()', '0 0 7 ? * MON-FRI');
3 Top of every hour — refresh a materialized table
SELECT cron('CREATE OR REPLACE TABLE hourly_rollup AS SELECT ...', '0 0 * * * *');

cron_delete

Scalar function Scheduling
Signature
cron_delete(col0: VARCHAR) BOOLEAN
Arguments (Positional)
Argument col0 Type VARCHAR Mode Positional Description
Description
1 Cancel a specific job
SELECT cron_delete('task_0');

cron_jobs

Table function Scheduling
Signature
cron_jobs() None
Description
1 List all scheduled jobs
SELECT * FROM cron_jobs();
2 Find jobs that have never run
SELECT job_id, schedule FROM cron_jobs() WHERE last_run IS NULL;