LogoRobo.js

Patterns

Readable presets and builder functions for cron expressions.

The Patterns helper provides named constants and builder functions so you don't have to write raw cron expressions. Import it alongside Cron and use it directly.

import { Cron, Patterns } from '@robojs/cron'

Cron(Patterns.EVERY_5_MINUTES, () => {
	console.log('Runs every 5 minutes')
})
import { Cron, Patterns } from '@robojs/cron'

Cron(Patterns.EVERY_5_MINUTES, () => {
	console.log('Runs every 5 minutes')
})

Constant presets

Pre-built cron expression strings for common schedules. Use them directly as the first argument to Cron().

Second intervals

NameExpressionSchedule
EVERY_SECOND* * * * * *Every second
EVERY_5_SECONDS*/5 * * * * *Every 5 seconds
EVERY_10_SECONDS*/10 * * * * *Every 10 seconds
EVERY_30_SECONDS*/30 * * * * *Every 30 seconds

Minute intervals

NameExpressionSchedule
EVERY_MINUTE*/1 * * * *Every minute
EVERY_5_MINUTES0 */5 * * * *Every 5 minutes
EVERY_10_MINUTES0 */10 * * * *Every 10 minutes
EVERY_30_MINUTES0 */30 * * * *Every 30 minutes

Hour intervals

NameExpressionSchedule
EVERY_HOUR0 0-23/1 * * *Every hour
EVERY_2_HOURS0 0-23/2 * * *Every 2 hours
EVERY_3_HOURS0 0-23/3 * * *Every 3 hours
EVERY_4_HOURS0 0-23/4 * * *Every 4 hours
EVERY_5_HOURS0 0-23/5 * * *Every 5 hours
EVERY_6_HOURS0 0-23/6 * * *Every 6 hours
EVERY_7_HOURS0 0-23/7 * * *Every 7 hours
EVERY_8_HOURS0 0-23/8 * * *Every 8 hours
EVERY_9_HOURS0 0-23/9 * * *Every 9 hours
EVERY_10_HOURS0 0-23/10 * * *Every 10 hours
EVERY_11_HOURS0 0-23/11 * * *Every 11 hours
EVERY_12_HOURS0 0-23/12 * * *Every 12 hours
EVERY_2ND_HOUR0 */2 * * *Every 2nd hour
EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM0 1-23/2 * * *Every 2nd hour, 1 AM to 11 PM

Daily at specific times

NameExpressionSchedule
EVERY_DAY_AT_MIDNIGHT0 0 * * *Daily at midnight
EVERY_DAY_AT_1AM0 01 * * *Daily at 1:00 AM
EVERY_DAY_AT_2AM0 02 * * *Daily at 2:00 AM
EVERY_DAY_AT_3AM0 03 * * *Daily at 3:00 AM
EVERY_DAY_AT_4AM0 04 * * *Daily at 4:00 AM
EVERY_DAY_AT_5AM0 05 * * *Daily at 5:00 AM
EVERY_DAY_AT_6AM0 06 * * *Daily at 6:00 AM
EVERY_DAY_AT_7AM0 07 * * *Daily at 7:00 AM
EVERY_DAY_AT_8AM0 08 * * *Daily at 8:00 AM
EVERY_DAY_AT_9AM0 09 * * *Daily at 9:00 AM
EVERY_DAY_AT_10AM0 10 * * *Daily at 10:00 AM
EVERY_DAY_AT_11AM0 11 * * *Daily at 11:00 AM
EVERY_DAY_AT_NOON0 12 * * *Daily at noon
EVERY_DAY_AT_1PM0 13 * * *Daily at 1:00 PM
EVERY_DAY_AT_2PM0 14 * * *Daily at 2:00 PM
EVERY_DAY_AT_3PM0 15 * * *Daily at 3:00 PM
EVERY_DAY_AT_4PM0 16 * * *Daily at 4:00 PM
EVERY_DAY_AT_5PM0 17 * * *Daily at 5:00 PM
EVERY_DAY_AT_6PM0 18 * * *Daily at 6:00 PM
EVERY_DAY_AT_7PM0 19 * * *Daily at 7:00 PM
EVERY_DAY_AT_8PM0 20 * * *Daily at 8:00 PM
EVERY_DAY_AT_9PM0 21 * * *Daily at 9:00 PM
EVERY_DAY_AT_10PM0 22 * * *Daily at 10:00 PM
EVERY_DAY_AT_11PM0 23 * * *Daily at 11:00 PM

Weekly, monthly, and yearly

NameExpressionSchedule
EVERY_WEEK0 0 * * 0Every Sunday at midnight
EVERY_WEEKDAY0 0 * * 1-5Monday through Friday at midnight
EVERY_WEEKEND0 0 * * 6,0Saturday and Sunday at midnight
EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT0 0 1 * *First of each month at midnight
EVERY_1ST_DAY_OF_MONTH_AT_NOON0 12 1 * *First of each month at noon
EVERY_2ND_MONTH0 0 1 */2 *Every 2 months
EVERY_QUARTER0 0 1 */3 *Every 3 months
EVERY_6_MONTHS0 0 1 */6 *Every 6 months
EVERY_YEAR0 0 1 1 *January 1 at midnight

Business hours

NameExpressionSchedule
EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM0 */30 9-17 * * *Every 30 min, 9 AM – 5 PM
EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM0 */30 9-18 * * *Every 30 min, 9 AM – 6 PM
EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM0 */30 10-19 * * *Every 30 min, 10 AM – 7 PM

Builder functions

Generate cron expressions dynamically from parameters. These return a cron string that you pass to Cron().

everySenconds(seconds?)

Runs every N seconds.

Cron(Patterns.everySenconds(15), () => {
	console.log('Every 15 seconds')
})
Cron(Patterns.everySenconds(15), () => {
	console.log('Every 15 seconds')
})
ParameterTypeDefaultDescription
secondsnumber1Interval in seconds

everyMinutes(minutes?)

Runs every N minutes.

Cron(Patterns.everyMinutes(15), () => {
	console.log('Every 15 minutes')
})
Cron(Patterns.everyMinutes(15), () => {
	console.log('Every 15 minutes')
})
ParameterTypeDefaultDescription
minutesnumber1Interval in minutes

everyHours(hours?)

Runs every N hours.

Cron(Patterns.everyHours(4), () => {
	console.log('Every 4 hours')
})
Cron(Patterns.everyHours(4), () => {
	console.log('Every 4 hours')
})
ParameterTypeDefaultDescription
hoursnumber1Interval in hours

everyHoursAt(hours, minutes?)

Runs every N hours at a specific minute offset.

Cron(Patterns.everyHoursAt(2, 30), () => {
	console.log('Every 2 hours at minute 30')
})
Cron(Patterns.everyHoursAt(2, 30), () => {
	console.log('Every 2 hours at minute 30')
})
ParameterTypeDefaultDescription
hoursnumberHour interval
minutesnumber0Minute offset within the hour

everyDayAt(time?)

Runs once per day at a specific time in HH:mm format.

Cron(Patterns.everyDayAt('14:30'), () => {
	console.log('Daily at 2:30 PM')
})
Cron(Patterns.everyDayAt('14:30'), () => {
	console.log('Daily at 2:30 PM')
})
ParameterTypeDefaultDescription
timestring'00:00'Time in HH:mm format

everyWeekOn(day, time?)

Runs once per week on a specific day and time. Use Patterns day constants for the day parameter.

Cron(Patterns.everyWeekOn(Patterns.MONDAY, '09:00'), () => {
	console.log('Every Monday at 9 AM')
})
Cron(Patterns.everyWeekOn(Patterns.MONDAY, '09:00'), () => {
	console.log('Every Monday at 9 AM')
})
ParameterTypeDefaultDescription
daynumberDay of week (0=Sunday through 6=Saturday)
timestring'00:00'Time in HH:mm format

everyWeekdayAt(time?)

Runs Monday through Friday at a specific time.

Cron(Patterns.everyWeekdayAt('08:00'), () => {
	console.log('Every weekday at 8 AM')
})
Cron(Patterns.everyWeekdayAt('08:00'), () => {
	console.log('Every weekday at 8 AM')
})
ParameterTypeDefaultDescription
timestring'00:00'Time in HH:mm format

everyWeekendAt(time?)

Runs Saturday and Sunday at a specific time.

Cron(Patterns.everyWeekendAt('10:00'), () => {
	console.log('Every weekend at 10 AM')
})
Cron(Patterns.everyWeekendAt('10:00'), () => {
	console.log('Every weekend at 10 AM')
})
ParameterTypeDefaultDescription
timestring'00:00'Time in HH:mm format

Aliases

Zero-parameter convenience functions that return common preset expressions.

FunctionReturnsEquivalent to
everySecond()'* * * * * *'EVERY_SECOND
everyMinute()'*/1 * * * *'EVERY_MINUTE
hourly()'0 0-23/1 * * *'EVERY_HOUR
daily()'0 0 * * *'EVERY_DAY_AT_MIDNIGHT
everyWeekday()'0 0 * * 1-5'EVERY_WEEKDAY
everyWeekend()'0 0 * * 6,0'EVERY_WEEKEND
weekly()'0 0 * * 0'EVERY_WEEK
monthly()'0 0 1 * *'EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT
everyQuarter()'0 0 1 */3 *'EVERY_QUARTER
yearly()'0 0 1 1 *'EVERY_YEAR
import { Cron, Patterns } from '@robojs/cron'

// These are equivalent:
Cron(Patterns.daily(), () => { /* ... */ })
Cron(Patterns.EVERY_DAY_AT_MIDNIGHT, () => { /* ... */ })
import { Cron, Patterns } from '@robojs/cron'

// These are equivalent:
Cron(Patterns.daily(), () => { /* ... */ })
Cron(Patterns.EVERY_DAY_AT_MIDNIGHT, () => { /* ... */ })

Day constants

Numeric constants for days of the week, useful with everyWeekOn().

NameValue
SUNDAY0
MONDAY1
TUESDAY2
WEDNESDAY3
THURSDAY4
FRIDAY5
SATURDAY6
import { Cron, Patterns } from '@robojs/cron'

// Run every Friday at 5 PM
Cron(Patterns.everyWeekOn(Patterns.FRIDAY, '17:00'), () => {
	console.log('Weekend starts now')
})
import { Cron, Patterns } from '@robojs/cron'

// Run every Friday at 5 PM
Cron(Patterns.everyWeekOn(Patterns.FRIDAY, '17:00'), () => {
	console.log('Weekend starts now')
})

Next Steps

On this page