Skip to content
Agentmart
Submit a tool

cron-scheduler

Use when the user says 'cron job', 'scheduled task', 'cron', 'scheduler', 'run every', 'periodic task', or needs a recurring background job with monitoring…

Skill by jtucker9

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jtucker9-cron-scheduler

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when the user says 'cron job', 'scheduled task', 'cron', 'scheduler', 'run every', 'periodic task', or needs a recurring background job with monitoring and failure handling.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/cron-scheduler

What's inside

Skill name
cron-scheduler
Description
Use when the user says 'cron job', 'scheduled task', 'cron', 'scheduler', 'run every', 'periodic task', or needs a recurring background job with monitoring and failure handling.
License
MIT
Instructions
351 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# ⏰ Cron Scheduler — Scheduled Job Design
*Design production-grade cron jobs with overlap prevention, monitoring, structured logging, and platform-specific deployment.*

## Activation

When this skill activates, output:

`⏰ Cron Scheduler — Designing your scheduled job...`

| Context | Status |
|---------|--------|
| **User says "cron job", "scheduled task", "run every"** | ACTIVE |
| **User wants a recurring background process** | ACTIVE |
| **User mentions cron expressions or scheduling** | ACTIVE |
| **User wants an n8n workflow with a schedule trigger** | DORMANT — see n8n-workflow-builder |
| **User wants an event-driven webhook (not time-based)** | DORMANT — see webhook-designer |

## Protocol

### Step 1: Gather Inputs

Ask the user for:
- **Task description**: What does the job do?
- **Frequency**: How often? (every 5 min, hourly, daily, weekly, monthly)
- **Runtime environment**: Where does it run? (Railway, Netlify, VPS, local server, n8n)
- **Expected duration**: How long does a typical run take?
- **Dependencies**: What does it need? (database, external APIs, file system)
- **Failure severity**: What happens if it doesn't run? (critical / important / low impact)

### Step 2: Write Cron Expression

```
── SCHEDULE ───────────────────────────────

Cron Expression: [expression]
Human Readable: "[description]"
Timezone: [timezone]

┌─── minute (0-59)
│ ┌─── hour (0-23)
│ │ ┌─── day of month (1-31)
│ │ │ ┌─── month (1-12)
│ │ │ │ ┌─── day of week (0-7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
```

**Common expressions:**

| Schedule | Expression | Notes |
|----------|-----------|-------|
| Every 5 minutes | `*/5 * * * *` | High frequency — ensure fast execution |
| Every 15 minutes | `*/15 * * * *` | Good for sync jobs |
| Every hour | `0 * * * *` | Runs at :00 |
| Every hour (offset) | `7 * * * *` | Runs at :07 — avoids peak traffic |
| Daily at 2 AM | `0 2 * * *` | Low-traffic window for heavy jobs |
| Weekdays at 9 AM | `0 9 * * 1-5` | Business hours only |
| Weekly Sunday midnight | `0 0 * * 0` | Weekly cleanup/reports |
| First of month 6 AM | `0 6 1 * *` | Monthly billing/reports |

### Step 3: Design the Job

Structure the job with clear phases:

```javascript
async function runJob() {
  const runId = crypto.randomUUID();
  const startTime = Date.now();

  console.log(JSON.stringify({
    event: 'job_started', runId, job: '[job_name]',
    timestamp: new Date().toISOString()
  }));

  try {
    // Phase 1: Acquire lock
    const lock = await acquireLock('[job_name]');
    if (!lock) {
      console.log(JSON.stringify({ event: 'job_skipped', runId, reason: 'lock_held' }));
      return;
    }

    // Phase 2: Gather data
    const data = await gatherData();

    // Phase 3: Process
    const results = await processData(data);

    // Phase 4: Report
    await reportResults(results);

    // Phase 5: Cleanup
    await releaseLock('[job_name]');

    const duration = Date.now() - startTime;
    console.log(JSON.stringify({
      event: 'job_completed', runId, job: '[job_name]',
      duration_ms: duration, items_processed: results.length
    }));
  } catch (err) {
    const duration = Date.now() - startTime;
    console.error(JSON.stringify({
      event: 'job_failed', runId, job: '[job_name]',
      duration_ms: duration, error: err.message
    }));

    await sendAlert('[job_name] failed', err.message);
    await releaseLock('[job_name]');
  }
}
```

### Step 4: Error Handling

Define what happens when the job fails:

| Failure Type | Detection | Response |
|-------------|-----------|----------|

From jtucker9/mystuff, MIT.

More from jtucker9/mystuff

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Mar 29, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jtucker9

Cite this page

cron-scheduler skill. Agent Mart. https://agentmart.dev/skills/jtucker9-cron-scheduler (last updated 2026-10-24)