cron-time-converter
v1.0.0
Published
Convert natural language scheduling phrases into standard 5-field cron expressions
Maintainers
Readme
cron-time-converter
Convert natural language scheduling phrases into standard 5-field cron expressions.
Installation
npm install cron-time-converterUsage
import { parse } from "cron-time-converter";
parse("every minute"); // "* * * * *"
parse("every 5 minutes"); // "*/5 * * * *"
parse("every hour"); // "0 * * * *"
parse("every 6 hours"); // "0 */6 * * *"
parse("every day"); // "0 0 * * *"
parse("every day at 3pm"); // "0 15 * * *"
parse("every day at 11:30pm"); // "30 23 * * *"
parse("every day at 12pm"); // "0 12 * * *" (noon)
parse("every day at 12am"); // "0 0 * * *" (midnight)
parse("every weekday"); // "0 0 * * 1-5"
parse("every weekend"); // "0 0 * * 0,6"
parse("every sunday"); // "0 0 * * 0"
parse("every friday at 5:30pm"); // "30 17 * * 5"
parse("every month"); // "0 0 1 * *"
parse("every month on day 15"); // "0 0 15 * *"
// Unsupported / ambiguous input
parse("every fortnight"); // "ERROR"
parse("do something"); // "ERROR"API
parse(input: string): string
Converts a natural language phrase to a 5-field cron expression.
| Parameter | Type | Description |
|-----------|----------|--------------------------------|
| input | string | Natural language schedule phrase |
Returns the cron expression string, or "ERROR" if the input is unsupported or ambiguous.
Supported patterns
| Input pattern | Output |
|---------------------------------|---------------------|
| every minute | * * * * * |
| every X minutes | */X * * * * |
| every hour | 0 * * * * |
| every X hours | 0 */X * * * |
| every day | 0 0 * * * |
| every day at H(:MM)am/pm | MM HH * * * |
| every weekday | 0 0 * * 1-5 |
| every weekend | 0 0 * * 0,6 |
| every <dayname> | 0 0 * * N |
| every <dayname> at H(:MM)am/pm| MM HH * * N |
| every month | 0 0 1 * * |
| every month on day N | 0 0 N * * |
Time parsing rules
- Times use 12-hour am/pm format:
3pm,3:30pm,11:45am 12pm→ noon (12:00)12am→ midnight (00:00)0am→ midnight (00:00)- When no time is specified for a day-based schedule, midnight (00:00) is used
Day names
Full names (sunday, monday, …saturday) and 3-letter abbreviations (sun, mon, …sat) are both accepted. All input is case-insensitive.
