Skills
Chapter 15 of 28
Schedule periodic / recurring work in Encore Go using cron.NewJob from encore.dev/cron.
1 minute · 194 words · 6 sections
A cron.NewJob declaration in Encore Go ties a schedule to an existing //encore:api endpoint. The endpoint runs at the chosen cadence. Declare the job as a package-level variable — not inside a function.
package cleanup
import (
"context"
"encore.dev/cron"
)
// 1. The endpoint to call (typically private: //encore:api private)
//encore:api private
func CleanupExpiredSessions(ctx context.Context) error {
// Cleanup logic
return nil
}
// 2. Package-level cron declaration
var _ = cron.NewJob("cleanup-sessions", cron.JobConfig{
Title: "Clean up expired sessions",
Schedule: "0 * * * *", // Every hour
Endpoint: CleanupExpiredSessions,
})| 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.private 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.cron.NewJob reference.Every for “run on a regular interval” (must divide 24h).Schedule for specific times of day or days of week.encore-go-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 Go using `cron.NewJob` 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.