Skills
Chapter 6 of 28
Schedule periodic / recurring work in Encore.ts using CronJob from encore.dev/cron.
1 minute · 189 words · 6 sections
A CronJob declaration in Encore.ts ties a schedule to an existing api(...) endpoint. The endpoint runs at the chosen cadence. Declare the CronJob at package level — not inside a function.
import { CronJob } from "encore.dev/cron";
import { api } from "encore.dev/api";
// 1. The endpoint to call (typically internal: expose: false)
export const aggregateDailyOrders = api(
{ expose: false },
async (): Promise<void> => {
// Aggregation logic
}
);
// 2. Package-level cron declaration
const _ = new CronJob("aggregate-daily-orders", {
title: "Aggregate orders for the previous day",
schedule: "0 2 * * *", // 02:00 UTC every day
endpoint: aggregateDailyOrders,
});| Field | Example | Description |
|---|---|---|
every | "1h", "30m", "6h" | Simple interval. Must divide 24h evenly — "7h" is invalid. |
schedule | "0 9 * * 1" | Standard cron expression (5 fields, UTC). |
| Cron | Meaning |
|---|---|
"0 * * * *" | Every hour, on the hour |
"0 2 * * *" | Daily at 02:00 UTC |
"0 0 * * 0" | Weekly on Sunday at midnight UTC |
"0 4 15 * *" | 04:00 UTC on the 15th of each month |
encore run. Only deployed environments fire crons.expose: false so it can’t be triggered externally — only the cron scheduler should call it.schedule are UTC. Convert from local time when designing the schedule.CronJob.every for “run on a regular interval” (must divide 24h).schedule for specific times of day or days of week.encore-pubsub skill instead.Install this repository
npx skills add encoredev/skills/plugin marketplace add encoredev/skillsSkills install per repository, not per chapter — the CLI has no documented per-skill form, so we do not print one.
Schedule periodic / recurring work in Encore.ts using `CronJob` from `encore.dev/cron`. Covers `every: "1h"` interval syntax and `schedule: "0 9 * * 1"` cron expressions.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 15 May 2026.SKILL.md, not by matching a directory convention. One layout observed: encore/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by Encore, declaring 1 plugin. It is read for editorial metadata only — never as the skill index, which is always the repository tree./encoredev/skills.md, and each chapter at its own .md URL.