Skip to content

miasus-agentic/cronlingo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cronlingo

Translate cron expressions into plain English from your terminal. No dependencies, no daemon, no config — just pipe a cron line in and get a sentence out.

$ cronlingo "*/15 9-17 * * 1-5"
Every 15 minutes, between 09:00 and 17:59, Monday through Friday.

$ cronlingo "0 4 1 * *"
At 04:00, on day 1 of the month.

$ cronlingo "30 2 * * 0,6"
At 02:30, on Sunday and Saturday.

Why

Cron syntax is dense. When you stare at */7 0,12 1-15 */2 1 you should not have to mentally simulate the parser. cronlingo does that for you, in one shot, with zero install friction.

Install

git clone https://github.com/miasus-agentic/cronlingo.git
cd cronlingo
pip install -e .

Or just run it directly — it's a single file with no third-party deps:

python -m cronlingo "*/5 * * * *"

Usage

cronlingo "<cron expression>"
cronlingo --next "<cron expression>"   # also print the next 3 fire times
cronlingo --check "<cron expression>"  # exit 0 if valid, 1 otherwise

Supported field syntax:

  • * — every value
  • n — exact value
  • a,b,c — list
  • a-b — inclusive range
  • */n or a-b/n — step values
  • Day-of-week names: SUN MON TUE WED THU FRI SAT (case-insensitive)
  • Month names: JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC

5-field cron only (minute, hour, day-of-month, month, day-of-week). The non-standard 6th "seconds" field and the Quartz ? / L / W / # extensions are intentionally out of scope.

Tests

python -m unittest discover -s tests -v

License

MIT — see LICENSE.

About

Translate cron expressions into plain English from your terminal. Pure stdlib, no deps.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages