aceternity-ui
100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or…
Cloudflare Cron Triggers for scheduled Workers execution. Use for periodic tasks, scheduled jobs, or encountering handler not found, invalid cron expression, timezone errors.
Claude Code
$ npx -y skills add secondsky/claude-skills --skill cloudflare-cron-triggers --agent claude-code
Codex
$ npx skills add secondsky/claude-skills --skill cloudflare-cron-triggers -a codex -y
Cursor
$ npx skills add secondsky/claude-skills --skill cloudflare-cron-triggers -a cursor -y
Gemini CLI
$ npx skills add secondsky/claude-skills --skill cloudflare-cron-triggers -a gemini-cli -y
GitHub Copilot
$ npx skills add secondsky/claude-skills --skill cloudflare-cron-triggers -a github-copilot -y
OpenCode
$ npx skills add secondsky/claude-skills --skill cloudflare-cron-triggers -a opencode -y
Windsurf
$ npx skills add secondsky/claude-skills --skill cloudflare-cron-triggers -a windsurf -y
name: cloudflare-cron-triggers
description: "Cloudflare Cron Triggers for scheduled Workers execution. Use for periodic tasks, scheduled jobs, or encountering handler not found, invalid cron expression, timezone errors."
metadata:
keywords:
- cloudflare cron
- cron triggers
- scheduled workers
- scheduled handler
- periodic tasks
- background jobs
- scheduled tasks
- cron expression
- wrangler crons
- scheduled event
- green compute
- workflow triggers
- maintenance tasks
- scheduled() handler
- ScheduledController
- UTC timezone
license: MIT**Status**: Production Ready ✅ **Last Updated**: 2025-11-25 **Dependencies**: cloudflare-worker-base (for Worker setup) **Latest Versions**: wrangler@4.81.0, @cloudflare/workers-types@4.20260408.0
---
**src/index.ts:**
export default {
async scheduled(
controller: ScheduledController,
env: Env,
ctx: ExecutionContext
): Promise<void> {
console.log('Cron job executed at:', new Date(controller.scheduledTime));
console.log('Triggered by cron:', controller.cron);
// Your scheduled task logic here
await doPeriodicTask(env);
},
};**Why this matters:**
**wrangler.jsonc:**
{
"name": "my-scheduled-worker",
"main": "src/index.ts",
"compatibility_date": "2025-10-23",
"triggers": {
"crons": [
"0 * * * *" // Every hour at minute 0
]
}
}**CRITICAL:**
# Enable scheduled testing bunx wrangler dev --test-scheduled # In another terminal, trigger the scheduled handler curl "http://localhost:8787/__scheduled?cron=0+*+*+*+*" # View output in wrangler dev terminal
**Testing tips:**
npm run deploy # or bunx wrangler deploy
**After deployment:**
---
**Load immediately when user mentions**:
**Load proactively when**:
---
* * * * * │ │ │ │ │ │ │ │ │ └─── Day of Week (0-6, Sunday=0) │ │ │ └───── Month (1-12) │ │ └─────── Day of Month (1-31) │ └───────── Hour (0-23) └─────────── Minute (0-59)
| Character | Meaning | Example | |-----------|---------|---------| | `*` | Every | `* * * * *` = every minute | | `,` | List | `0,30 * * * *` = every hour at :00 and :30 | | `-` | Range | `0 9-17 * * *` = every hour from 9am-5pm | | `/` | Step | `*/15 * * * *` = every 15 minutes |
# Every minute * * * * * # Every 5 minutes */5 * * * * # Every 15 minutes */15 * * * * # Every hour at minute 0 0 * * * * # Every hour at minute 30 30 * * * * # Every 6 hours 0 */6 * * * # Every day at midnight (00:00 UTC) 0 0 * * * # Every day at noon (12:00 UTC) 0 12 * * * # Every day at 3:30am UTC 30 3 * * * # Every Monday at 9am UTC 0 9 * * 1 # Every weekday at 9am UTC 0 9 * * 1-5 # Every Sunday at midnight UTC 0 0 * * 0 # First day of every month at midnight UTC 0 0 1 * * # Twice a day (6am and 6pm UTC) 0 6,18 * * * # Every 30 minutes during business hours (9am-5pm UTC, weekdays) */30 9-17 * * 1-5
**CRITICAL: UTC Timezone Only**
---
interface ScheduledController {
readonly cron: string; // The cron expression that triggered this execution
readonly type: string; // Always "scheduled"
readonly scheduledTime: number; // Unix timestamp (ms) when scheduled
}The cron expression that triggered this execution.
export default {
async scheduled(controller: ScheduledController, env: Env): Promise<void> {
console.log(`Triggered by: ${controller.cron}`);
// Output: "Triggered by: 0 * * * *"
},
};**Use case:** Differentiate between multiple cron schedules (see Multiple Cron Triggers pattern).
Always returns `"scheduled"` for cron-triggered executions.
if (controller.type === 'scheduled') {
// This is a cron-triggered execution
}145 production-ready skills for Claude Code CLI 🔌 Platform / Harness Support These plugins ship as Claude Code marketplace plugins (.claude-plugin/ manifests) and Codex CLI plugins (.codex-plugin/ manifests).
100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or…
Secure API authentication with JWT, OAuth 2.0, API keys. Use for authentication systems, third-party integrations,…
Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use…
Verifies API contracts between services using consumer-driven contracts, schema validation, and tools like Pact. Use when testing…
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use…
Implements standardized API error responses with proper status codes, logging, and user-friendly messages. Use when building…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.