Run it here.
The library compiled to JavaScript and running in this page. Change an input and the answer updates — parsed and formatted, or the next firings of a schedule. Nothing is pre-computed; it is the same code the guide prints from.
Parse & format
The shape line is read from the text: an offset makes an instant, a date and time without one is a wall clock.
Next firings
How next finds the answer.
next starts one second after the given moment, floors to a whole second, then walks forward one second at a time until the six bit sets all agree. The search is bounded at four years — past any leap-year cycle a real schedule turns on — so an expression naming a day that does not exist returns None instead of looping.
Both 0 and 7 are Sunday. ? reads as *, which is how a day field that is not in use is usually written.
0 9 * * MON-FRI every weekday at 09:00
*/15 9-17 * * MON-FRI quarter hours, 09:00-17:45
0 0 1 * * the first of the month
0 0 29 2 * the leap day, when it exists