Skip to content
cccskills
FreePublished on GitHub

cron-parser

Read, write, and debug cron expressions with field reference, scheduling logic, and common patterns.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Overview

Cron expressions are write-only for most people — everyone copies them, few can read them. But misreading a schedule means backups that never run or jobs that fire 60x too often. This skill makes cron legible: the five fields, special strings, the day-of-month/day-of-week gotcha, and debugging techniques for "why didn't it run?"

When to use

  • Writing cron schedules for jobs and automation

  • Reading and understanding existing cron expressions

  • Debugging jobs that run at wrong times (or not at all)

  • Choosing between cron and modern schedulers

  • Documenting schedules for teams

Core concepts

    • The five fields. minute hour day-of-month month day-of-week — in that order. 30 2 * * * = 2:30 AM daily. Memorize the order with: "my happy dog makes dinner" (minute, hour, dom, month, dow) or just drill it until it's reflex.
    • Field syntax. * (every), */15 (every 15), 1,15 (list), 1-5 (range, Mon-Fri for dow), 9-17/2 (every 2 hours 9-5). Ranges and steps compose; lists don't take steps in classic cron.
    • The DOM/DOW trap. When both day-of-month and day-of-week are restricted (not *), cron runs when EITHER matches — not both. 0 0 1 * 1 runs on the 1st of the month AND every Monday. This surprises everyone once.
    • Special strings. @reboot, @yearly, @monthly, @weekly, @daily, @hourly — readable shorthands. Note: @reboot behavior varies (and doesn't exist in all cron implementations).
    • Environment minimalism. Cron runs with a sparse environment: minimal PATH, no shell profile. The #1 "works manually, fails in cron" cause is PATH — use absolute paths for everything or set PATH explicitly in the crontab.
    • Cron flavors differ. Vixie cron (classic Linux), cronie, systemd timers (the modern Linux alternative — more features, logging built in), and cloud schedulers (CloudWatch Events, Cloud Scheduler) all have quirks. @reboot, seconds fields, and timezone handling vary — check your implementation.

Practical workflow

    1. Write it plainly first. "Every weekday at 9:30 AM" → then translate: 30 9 * * 1-5. Describe in words before encoding — the words are the spec you'll verify against.
  1. Use the field table. Build expressions field by field:

    • minute (0-59), hour (0-23), dom (1-31), month (1-12), dow (0-7, both 0 and 7 = Sunday)

    • Verify each field independently before combining.

  2. Common patterns (verify against your cron flavor):

    • */5 * * * * — every 5 minutes

    • 0 * * * * — hourly

    • 0 2 * * * — daily 2 AM

    • 0 9 * * 1 — Mondays 9 AM

    • 0 0 1 * * — first of month midnight

    • 30 9 * * 1-5 — weekdays 9:30 AM

    • 0 0 * * 0 — Sundays midnight

    1. Debug non-running jobs. Checklist: is the cron daemon running? Is the crontab installed for the right user (crontab -l)? Absolute paths everywhere? Environment variables set? Permissions on the script (executable)? Output captured (redirect stdout/stderr to a log — silent failures are cron's default)? Timezone correct (system vs expected)?
    1. Log everything. 30 2 * * * /opt/job.sh >> /var/log/job.log 2>&1 — without output capture, failures vanish. Better: have the job log itself with timestamps.
    1. Consider alternatives. Need seconds precision, dependencies, retries, or observability? Cron is the wrong tool — use systemd timers, or a proper scheduler (Airflow/Temporal for workflows, cloud schedulers for cloud). Cron is for simple, independent, minute-granularity jobs.

Common pitfalls

    • The DOM/DOW OR trap. 0 0 1 * 1 doesn't mean "first Monday" — it means "1st AND Mondays." For "first Monday," you need wrapper logic in the script.
    • Timezone confusion. Cron uses system local time (usually). DST transitions cause skipped or doubled runs. For UTC-critical jobs, set CRON_TZ (where supported) or run the system in UTC.
    • Environment assumptions. python resolving via PATH, ~ expansion, locale settings — all differ under cron. Absolute paths, explicit env vars, tested in a clean shell.
    • Overlapping runs. A job that takes 70 minutes on an hourly schedule stacks up. Use file locks (flock) to prevent concurrent runs.
    • Silent failures. No output redirection = no evidence. Every cron job should log somewhere you'll actually check — or alert on failure.
    • Editing the wrong crontab. User crontab vs system /etc/crontab (which has an extra user field) vs /etc/cron.d/. The 6-field system format in a 5-field user crontab breaks mysteriously.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.

The English summary is being prepared. Showing the original description.

aicodedecode/awesome-muse-skills24Updated Oct 10, 2026

Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.

The English summary is being prepared. Showing the original description.

aicodedecode/awesome-muse-skills24Updated Oct 10, 2026

Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.

The English summary is being prepared. Showing the original description.

aicodedecode/awesome-muse-skills24Updated Oct 10, 2026

Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.

The English summary is being prepared. Showing the original description.

aicodedecode/awesome-muse-skills24Updated Oct 10, 2026

Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.

The English summary is being prepared. Showing the original description.

aicodedecode/awesome-muse-skills24Updated Oct 10, 2026

Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.

The English summary is being prepared. Showing the original description.

aicodedecode/awesome-muse-skills24Updated Oct 10, 2026

See all skills by aicodedecode

Report a problem with this skill