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.
- 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 15 languages
cRonstrue is exported as an UMD module so it will work in an AMD, CommonJS or browser global context.
npm install cronstrue
var cronstrue = require('cronstrue');
The cronstrue.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.
<script src="cronstrue.min.js" type="text/javascript"></script>
<script>
var cronstrue = window.cronstrue;
</script>
cronstrue.toString("* * * * *");
> "Every minute"
cronstrue.toString("0 23 ? * MON-FRI");
> "At 11:00 PM, Monday through Friday"
cronstrue.toString("23 12 * * SUN#2");
> "At 12:23 PM, on the second Sunday of the month"
For more usage examples, including a demonstration of how cRonstrue can handle some very complex cron expressions, you can reference the unit tests.
A demo is available here: http://bradyholt.github.io/cRonstrue/
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" });
.
var cronstrue = require('cronstrue/i18n');
cronstrue.toString("*/5 * * * *", { locale: "fr" });
The cronstrue-i18n.min.js
file from the /dist
folder in the npm package should be served to the browser.
<script src="cronstrue-i18n.min.js" type="text/javascript"></script>
<script>
cronstrue.toString("*/5 * * * *", { locale: "fr" });
</script>
- en - English
- nl - Dutch
- fr - French
- de - German
- it - Italian
- nb - Norwegian
- pl - Polish
- pt_BR - Portuguese (Brazil)
- ro - Romanian
- ru - Russian
- es - Spanish
- sv - Swedish
- tr - Turkish
- uk - Ukrainian
- zh_CN - Chinese (Simplified)
cRonstrue is freely distributable under the terms of the MIT license.