MCPInstall

cron-schedule-planner

Builds an overview of GitHub Actions schedule cron expressions across multiple repositories and helps spread CPU-intensive jobs (Docker Compose, Testcontainers, Kind/k3s, matrix builds) into less contended slots. Use when the user asks 'when do my cron actions run?', 'do my scheduled builds collide?', 'when should the Testcontainers build run?', or wants a cron schedule overview/distribution report across repos. Scans via gh (no local checkouts required) or local checkouts, converts UTC to a local timezone, classifies job intensity, and writes a Markdown report with an hourly histogram, collisions and concrete cron redistribution suggestions.

Installs
2K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/dboeckli/ai-agent-skills --skill cron-schedule-planner
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads cron-schedule-planner automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Cron Schedule Planner

Collects GitHub Actions on.schedule cron expressions across repositories, classifies how resource-intensive each workflow is, converts the UTC cron times to a local timezone, and produces a Markdown report with an hourly histogram, collisions and concrete redistribution suggestions.

Read-only: the script never edits workflows. Suggestions are applied only after the user confirms.

Instructions

Step 1: Decide the repository scope

  • Default: all repositories of the authenticated gh user (no local checkouts needed).
  • --owner <owner> to scan a different owner.
  • --repo <owner/repo> (repeatable) for an explicit list.
  • --local <dir> to scan local checkouts instead of the GitHub API.

Step 2: Run the script

bash scripts/cron-schedule-planner.sh

Common variants:

# Specific owner, Swiss local time, report in target/
bash scripts/cron-schedule-planner.sh --owner dboeckli --tz Europe/Zurich

# Local checkouts (no GitHub API)
bash scripts/cron-schedule-planner.sh --local ~/projects/referenzen

# A few explicit repos
bash scripts/cron-schedule-planner.sh --repo dboeckli/ai-agent-skills --repo dboeckli/camel-first

Step 3: Present the results

The script prints the hourly histogram, collisions and suggestions, and writes target/cron-schedule-overview.md. Summarise:

  • how many repos / scheduled entries were found,
  • the most crowded UTC hours (collisions),
  • which high-intensity jobs sit in crowded hours.

Step 4: Apply suggestions only after confirmation

The redistribution suggestions are heuristic (they move high-intensity jobs out of crowded hours into empty ones, keeping the minute and day fields). Present them as a diff and change workflow files only after explicit confirmation. Never edit automatically.

Options

OptionMeaning
--owner <owner>GitHub owner to scan (default: authenticated user)
--repo <owner/repo>explicit repo (repeatable); disables owner scan
--local <dir>scan local checkouts under <dir> instead of GitHub
--tz <zone>local timezone for the Local column (default Europe/Zurich)
--limit <n>max repos for the owner scan (default 200)
--out <file>Markdown report (default target/cron-schedule-overview.md)
--no-reportconsole only, no report file
--top <n>max redistribution suggestions (default 5)
--queue-statsadd observed queue time per UTC hour (via gh run list)
--runs <n>max runs per repo for queue stats (default 50)

Output

target/cron-schedule-overview.md:

  • Scheduled workflows table: repo, workflow, cron (UTC), UTC time, local time, frequency, intensity, evidence.
  • Runs per UTC hour histogram (bars).
  • Runs per frequency / weekday.
  • Collisions — UTC hours with two or more scheduled runs.
  • Observed queue time per UTC hour (with --queue-stats) — average and max wait between createdAt and startedAt across recent runs, as an empirical contention signal.
  • Redistribution suggestions — high-intensity jobs in crowded hours moved to empty ones; with --queue-stats the empty hours with the lowest observed queue are preferred.

Classification

Intensity is derived heuristically from the workflow content. See references/classification-and-timezones.md for the exact patterns and the UTC/timezone rules.

  • high — Docker Compose, Testcontainers, service containers (services:), Kind/k3s cluster, matrix builds.
  • medium — Maven/Gradle full builds, Docker image builds.
  • low — lint/format/validate and other meta workflows.

Examples

Example 1: Are my scheduled builds colliding?

User says: "Do my scheduled GitHub Actions builds collide?"

Actions:

  1. Run bash scripts/cron-schedule-planner.sh --owner <owner>
  2. Report the crowded UTC hours and the high-intensity jobs in them
  3. Point to target/cron-schedule-overview.md

Result: Collision overview across all repos with concrete evidence.

Example 2: When should the Testcontainers build run?

User says: "When should I schedule the Testcontainers build?"

Actions:

  1. Run the planner and locate the crowded hours (collisions)
  2. Recommend one of the empty hours from the suggestions
  3. Offer the concrete cron diff, apply only after confirmation

Result: A low-contention slot and a ready-to-apply cron change.

Troubleshooting

gh: not found or authentication error

The script needs an authenticated gh. Run gh auth status; if that fails, the user must authenticate. Alternatively use --local <dir> with local checkouts.

Empty report

No workflow in scope has an on.schedule entry. Check the repo scope (--owner, --repo, --local) and that the workflows actually define schedule: crons.

Times look off by one hour

Cron is always UTC. Local times are computed for the current date, so daylight-saving transitions can shift them by one hour. Re-run after a DST change or adjust manually.

--queue-stats shows little or no data

GitHub reports startedAt equal to createdAt for most runs (no recorded queue), so the signal is sparse. Increase --runs to include older runs. Treat large gaps with care: they can come from approval gates, concurrency limits or manual runs, not only runner contention.

FAQ

What does the cron-schedule-planner skill do?

Builds an overview of GitHub Actions schedule cron expressions across multiple repositories and helps spread CPU-intensive jobs (Docker Compose, Testcontainers, Kind/k3s, matrix builds) into less contended slots. Use when the user asks 'when do my cron actions run?', 'do my scheduled builds collide?', 'when should the Testcontainers build run?', or wants a cron schedule overview/distribution report across repos. Scans via gh (no local checkouts required) or local checkouts, converts UTC to a local timezone, classifies job intensity, and writes a Markdown report with an hourly histogram, collisions and concrete cron redistribution suggestions.

How do I install cron-schedule-planner?

Run npx skills add https://github.com/dboeckli/ai-agent-skills --skill cron-schedule-planner in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cron-schedule-planner/ (personal) or .claude/skills/cron-schedule-planner/ (project).

Which AI agents can use cron-schedule-planner?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is cron-schedule-planner safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains cron-schedule-planner?

It is published by dboeckli in dboeckli/ai-agent-skills. It has 2,014 recorded installs.

More from dboeckli/ai-agent-skills

View all →

project-references

dboeckli/ai-agent-skills

Look up conventions, patterns, and concrete implementations from your own GitHub repositories checked out locally under /projects/referenzen/. Use this skill whenever there is uncertainty about how something is done in your codebase family — e.g. Helm chart structure, Kubernetes manifests, framework configuration patterns, Docker Compose conventions, CI/CD pipeline setup, or any other recurring architectural decision. Invoke it proactively before guessing at a convention; always cite the source project and path when a pattern is adopted. Also use when the user asks to check out, update, or search reference repositories, or to generate an overview/report of GitHub Actions triggers (push, pullrequest, schedule/cron) across repositories.

DevOps & Cloud3.9K installs

cc-best-practices

dboeckli/ai-agent-skills

Guidance on how to use Claude Code effectively — covering context management, verification strategies, the explore-plan-implement workflow, prompting techniques, session management, parallel sessions, and common failure patterns. Use this skill whenever the user asks how to get the most out of Claude Code, how to write better prompts, how to manage context, when to use plan mode, how to automate tasks, or when they describe a frustrating pattern like Claude repeating mistakes or losing track of instructions.

skill-best-practices

dboeckli/ai-agent-skills

Guide for creating, structuring, and improving Claude skills (SKILL.md). Use when building a new skill, reviewing an existing skill, writing SKILL.md frontmatter, defining trigger conditions, troubleshooting skill problems (not triggering, over-triggering, instructions not followed), or planning skill distribution. When working on any skill in this repository: also load the cc-best-practices skill, and always update both CLAUDE.md and README.md skill tables after any skill change. Do NOT use for general Claude Code configuration or hook setup.

camel-matrix

dboeckli/ai-agent-skills

Generates a Markdown compatibility matrix for Apache Camel Spring Boot, Spring Boot, and Apache CXF versions by running the camel-springboot-matrix.sh script. Use when the user asks to generate or update the Camel compatibility matrix, check Camel Spring Boot version compatibility, or run the camel-springboot-matrix script. Supports optional version range arguments (min max).

Backend & APIs3.5K installs

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs