cron-converter
Cron string parser and scheduler for Python
What it is and what it does
Cron-converter is a Python cron expression parser and scheduler that converts between cron string syntax and structured representations, then generates execution times. It parses standard 5-field cron expressions (minute, hour, day, month, weekday) into lists of valid values or back to string form, and provides an iterator to find the next or previous execution time relative to any datetime. The package supports timezone-aware scheduling via python-dateutil, optional output formatting with month and weekday names, and can validate whether a given datetime matches a cron schedule.
The package implements Python's iterator protocol, so you can use standard iteration patterns like islice() or for-loops to walk through scheduled execution times. It also supports comparing cron schedules by frequency and can work with both naive and timezone-aware datetime objects. The main constraint is that the schedule iterator is infinite by design, so you must always apply a limit (islice, break condition, or date check) to avoid infinite loops.
Use it for:
- Build a job scheduler that finds the next N execution times for a cron-defined task without external dependencies.
- Validate user-provided cron expressions and check if a specific datetime falls within the schedule.
- Convert between cron string syntax and human-readable formats (e.g., '0 9 * * 1-5' → '9 AM weekdays').
- Compare scheduling frequencies to determine which cron expression runs more or less often.
- Generate execution time sequences for reporting or UI display, respecting timezone and DST rules.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses cron schedule strings into structured formats and generates next/previous execution times for datetime objects using cron-like scheduling rules.
Yes. Low install friction, active maintenance, no known vulnerabilities, and a permissive MIT license make this a safe choice. Install it if you need to parse cron expressions, iterate over scheduled times, or validate datetimes against cron rules. The single dependency on python-dateutil is stable and widely used. Avoid it only if you need sub-minute scheduling (cron-converter does not support seconds).
Install
cron-converter on PyPI
pip
pip install cron-converteruv
uv add cron-converterpoetry
poetry add cron-converterInstalling cron-converter
Before you install
Low friction: pure Python wheel with a single runtime dependency on python-dateutil. Actively maintained with recent commits and stable production status.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in commercial and private projects without restriction.
Quickstart
from cron_converter import Cron
from datetime import datetime
cron = Cron('*/5 * * * *')
schedule = cron.schedule(datetime.now())
next_time = schedule.next()
print(next_time.isoformat())
Requires Python 3.8 or later; schedule iterator is infinite—always use itertools.islice() or explicit break conditions to avoid hanging.
Verify before relying
- Whether timezone handling works correctly with all dateutil-supported timezone formats beyond the documented examples.
- Performance characteristics when iterating over large numbers of schedule occurrences.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — python-dateutil |
| Maintenance | actively maintained — 255 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,390,119/month — #3,089 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cron_converter-1.3.1-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
cron-validatorValidates Unix cron expressions, matches them…
permissive · top 5,000 on PyPI
local-crontabConverts crontab expressions from a local…
permissive · top 15,000 on PyPI
pycronParses cron-style schedule strings and…
permissive · top 5,000 on PyPI
cronitercroniter iterates over datetime objects using…
permissive · top 1,000 on PyPI
cron-schedule-triggersDetermines the next execution times of a…
permissive · top 15,000 on PyPI
tzcronParse and iterate over cron/quartz schedule…
permissive · top 15,000 on PyPI
cronsimParses and evaluates cron expressions to find…
permissive · top 5,000 on PyPI
aws-croniterParses, validates, and calculates occurrences…
permissive · top 15,000 on PyPI
cron-descriptorConverts cron expressions into human-readable…
permissive · top 1,000 on PyPI
crontabParses crontab schedule expressions and…
copyleft · top 5,000 on PyPI