Skip to main content

cronspeak

Translate between human-readable schedules and cron expressions. Both directions.

pip install cronspeak

Usage

Human → Cron

$ cronspeak to-cron "every 5 minutes"
*/5 * * * *

$ cronspeak to-cron "every day at 3pm"
0 15 * * *

$ cronspeak to-cron "every monday at 9am"
0 9 * * 1

$ cronspeak to-cron "every weekday at 8:30am"
30 8 * * 1-5

Cron → Human

$ cronspeak explain "*/5 * * * *"
Every 5 minutes

$ cronspeak explain "0 15 * * *"
Every day at 3:00 PM

$ cronspeak explain "30 8 * * 1-5"
Every weekday at 8:30 AM

Next Run Times

$ cronspeak next "*/15 * * * *"
Schedule: Every 15 minutes

Next 5 runs:
  2026-02-03 00:15:00 (Tuesday)
  2026-02-03 00:30:00 (Tuesday)
  2026-02-03 00:45:00 (Tuesday)
  2026-02-03 01:00:00 (Tuesday)
  2026-02-03 01:15:00 (Tuesday)

JSON Output

All commands support --json for machine-readable output:

$ cronspeak to-cron "every tuesday at 3pm" --json --show-next 3
{
  "input": "every tuesday at 3pm",
  "cron": "0 15 * * 2",
  "explanation": "Every Tuesday at 3:00 PM",
  "next_runs": [
    "2026-02-03T15:00:00",
    "2026-02-10T15:00:00",
    "2026-02-17T15:00:00"
  ]
}

Interactive Mode

$ cronspeak interactive
Cronspeak interactive mode
Enter a schedule ('every 5 minutes') or cron expression ('*/5 * * * *')
Type 'quit' to exit

> every hour
   0 * * * *
  Next: 2026-02-03 01:00

> 0 9 * * 1-5
   Every weekday at 9:00 AM
  Next: 2026-02-03 09:00

Supported Patterns

Human Input

Pattern Example Cron
Every N minutes every 5 minutes */5 * * * *
Every hour every hour 0 * * * *
Every N hours every 2 hours 0 */2 * * *
Every day at time every day at 3pm 0 15 * * *
At time at 9:30am 30 9 * * *
Every weekday every monday 0 0 * * 1
Weekday at time every friday at 5pm 0 17 * * 5
Weekdays every weekday at 9am 0 9 * * 1-5
Weekends every weekend at 10am 0 10 * * 0,6
Monthly every month on the 1st 0 0 1 * *
Shortcuts noon, midnight 0 12 * * *, 0 0 * * *

Cron Input

Standard 5-field cron expressions are supported:

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

Python API

from cronspeak import parse_human, explain_cron, get_next_runs

# Human → Cron
expr = parse_human("every day at 3pm")
print(expr)  # "0 15 * * *"

# Cron → Human
explanation = explain_cron("0 15 * * *")
print(explanation)  # "Every day at 3:00 PM"

# Next runs
from datetime import datetime
runs = get_next_runs("*/5 * * * *", count=3)
for run in runs:
    print(run)

For AI Agents

See SKILL.md for agent-optimized documentation with command patterns and JSON output specs.

License

MIT

Release files for cronspeak 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cronspeak 0.1.0
File Size Uploaded
cronspeak-0.1.0.tar.gz 9.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cronspeak 0.1.0
File Interpreter ABI Platform
cronspeak-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 kB

Release files / cronspeak-0.1.0.tar.gz

Download URL cronspeak-0.1.0.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9db1b45bcc99b3e6a8ac5ef1c76160fd47957b17f1f7b3a8c2ad3a584f3da289
BLAKE2b-256 checksum
How to use checksums
7e022fae7d890d68104470c2c9249a197dce3b477cc90b05d1bf238bad84e404
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cronspeak-0.1.0-py3-none-any.whl

Download URL cronspeak-0.1.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24e6db9e780cb6b88b8268e5e1b401abd937fb4569d0d442b48dfc0172108d0d
BLAKE2b-256 checksum
How to use checksums
fe742ef38da81256d7727eb4aabe4512b1f8ed86df3ef0e0e4c2122cec38cd61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page