Cron Tasks

djs-core provides a built-in scheduler for running code at fixed intervals. Useful for cleanup jobs, daily messages, or any background processing.

Experimental

Cron tasks are experimental. Enable them in djs.config.ts before use.

export default defineConfig({
// ...
experimental: {
cron: true,
},
});

Creating a task

Create a file in src/cron/. Each file exports a default Task instance.

import { Task } from "@djs-core/runtime";
export default new Task()
.cron("0 * * * *") // Every hour
.run((client) => {
console.log("Starting hourly cleanup...");
// cleanup logic here
});

Cron expression reference

Expression Meaning
* * * * * Every minute
0 * * * * Every hour
0 9 * * * Every day at 9am
0 9 * * 1 Every Monday at 9am
0 0 1 * * First day of every month

Key methods

  • .cron("expression") — standard 5-field cron expression
  • .run((client) => { ... }) — receives the Discord client instance