cRonstrue
cRonstrue is a JavaScript library that parses a cron expression and outputs a human readable description of the cron schedule. For example, given the expression "*/5 * * * *" it will output "Every 5 minutes".
This library was ported from the original C# implemenation called cron-expression-descriptor and is also available in a few other languages.
Features
- Zero dependencies
- Supports all cron expression special characters including * / , - ? L W, #
- Supports 5, 6 (w/ seconds or year), or 7 (w/ seconds and year) part cron expressions
- Supports Quartz Job Scheduler cron expressions
- i18n support with 24 languages
Installation
cRonstrue is exported as an UMD module so it will work in an AMD, CommonJS or browser global context.
First, install the module:
npm i cronstrue-zh_cn
Then, depending upon your usage context, add a reference to it:
Node
var cronstrue = ;
ES6/TypeScript
;
Browser
The cronstrue-zh_cn.min.js
file from the /dist
folder in the npm package should be served to the browser. There are no dependencies so you can simply include the library in a <script>
tag.
CDN
A simple way to load the library in a browser is by using the unpkg CDN, which is a "fast, global content delivery network for everything on npm". To use it, include a script tag like this in your file:
<script src="https://unpkg.com/cronstrue@latest/dist/cronstrue.min.js" async></script>
Using the "latest" tag will result in a 302 redirect to the latest version tag so it is highly recommended to use a specific version tag such as https://unpkg.com/cronstrue@1.48.0/dist/cronstrue.min.js to avoid this redirect.
Usage
cronstrue;> "Every minute" cronstrue;> "At 11:00 PM, Monday through Friday" cronstrue;> "At 12:23 PM, on the second Sunday of the month" cronstrue;> "At 14:23, on the second Sunday of the month" cronstrue;> "Every second, every 2 days of the week, Monday through Friday"
For more usage examples, including a demonstration of how cRonstrue can handle some very complex cron expressions, you can reference the unit tests.
Demo
A demo is available here here.
i18n
To use the i18n support cRonstrue provides, you must use the packaged library that contains the locale transalations. Once you do this, you can pass the name of a supported locale as an option to cronstrue.toString()
. For example, for the es (Spanish) locale, you would use: cronstrue.toString("* * * * *", { locale: "es" });
.
Node
var cronstrue = ;cronstrue;
Browser
The cronstrue-i18n.min.js
file from the /dist
folder in the npm package should be served to the browser.
Supported Locales
- en - English
- cs - Czech
- es - Spanish
- da - Danish
- de - German
- fi - Finnish
- fr - French
- he - Hebrew
- it - Italian
- ja - Japanese
- nb - Norwegian
- nl - Dutch
- pl - Polish
- pt_BR - Portuguese (Brazil)
- ro - Romanian
- ru - Russian
- sk - Slovakian
- sl - Slovenian
- sw - Swahili
- sv - Swedish
- tr - Turkish
- uk - Ukrainian
- zh_CN - Chinese (Simplified)
- zh_TW - Chinese (Traditional)
License
cRonstrue is freely distributable under the terms of the MIT license.