Skip to content

paulmonk/croninfo

Repository files navigation

Croninfo

PyPi Version PyPi License CI Tests Code style: black

Croninfo is a CLI which provides the functionality of parsing cron expressions and rendering an output to ease with understanding the schedule of the cron expression.

The Cron syntax supported is based on the definition provided by FreeBSD.

Getting Started

Python 3.7 to 3.10 supported

To get started, install with pip:

$ python -m pip install croninfo

Usage

CLI

To CLI is provided with one command parse as can be seen below. If any doubts you can run croninfo --help or croninfo <command> --help for further details.

$ croninfo parse "10 0 1,15 * 1-3 /usr/bin/find"
╭─ Cron Expression ──────────────────────────────────────────────────────────────────────────────╮
│ Minute               10                                                                        │
│ Hour                 0                                                                         │
│ Day of Month         1 15                                                                      │
│ Month                1 2 3 4 5 6 7 8 9 10 11 12                                                │
│ Day of Week          1 2 3                                                                     │
│ TZ                   UTC                                                                       │
│ Command              /usr/bin/find                                                             │
│ Next Scheduled Run   2022-08-15T00:10:00+00:00 (in 10 days, 2 hours, 3 minutes and 25 seconds) │
╰─ 10 0 1,15 * 1-3 /usr/bin/find ────────────────────────────────────────────────────────────────╯

This will output with consideration to UTC by default but you can pass --tz-type local to override to be your local timezone, E.G. Europe/London. As shown below:

$ croninfo parse "10 0 1,15 * 1-3 /usr/bin/find" --tz-type local
╭─ Cron Expression ──────────────────────────────────────────────────────────────────────────────╮
│ Minute               10                                                                        │
│ Hour                 0                                                                         │
│ Day of Month         1 15                                                                      │
│ Month                1 2 3 4 5 6 7 8 9 10 11 12                                                │
│ Day of Week          1 2 3                                                                     │
│ TZ                   Europe/London                                                             │
│ Command              /usr/bin/find                                                             │
│ Next Scheduled Run   2022-08-15T00:10:00+01:00 (in 10 days, 1 hour, 2 minutes and 25 seconds)  │
╰─ 10 0 1,15 * 1-3 /usr/bin/find ────────────────────────────────────────────────────────────────╯

Alternatively, you can use the Official Croninfo Docker Image