Skip to content
Human friendly cron for Node JS 💘
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

node-reel logo


node-reel logo

node-reel is a heavily inspired by laravel task scheduler syntax thanks to @taylorotwell and uses node-cron by merencia as the default cron driver to run cron tasks.

why node-reel ? 😉

const reel = require('node-reel')

reel().call(() => {
	// say hello on mondays

reel().command('npm run clean_trash').everyThirtyMinutes().run()


using the npm or yarn

npm i node-reel --save

Schedule Frequencies

Method Description
.cron('* * * * *'); Run the task on a custom Cron schedule
.everyMinute(); Run the task every minute
.everyFiveMinutes(); Run the task every five minutes
.everyTenMinutes(); Run the task every ten minutes
.everyFifteenMinutes(); Run the task every fifteen minutes
.everyThirtyMinutes(); Run the task every thirty minutes
.everyFortyFiveMinutes(); Run the task every forty five minutes
.hourly(); Run the task every hour
.hourlyAt(17); Run the task every hour at 17 mins past the hour
.daily(); Run the task every day at midnight
.dailyAt('13:00'); Run the task every day at 13:00
.twiceDaily(1, 13); Run the task daily at 1:00 & 13:00
.weekly(); Run the task every week
.weeklyOn(1, '8:00'); Run the task every week on Tuesday at 8:00
.monthly(); Run the task every month
.monthlyOn(4, '15:00'); Run the task every month on the 4th at 15:00
.quarterly(); Run the task every quarter
.yearly(); Run the task every year
.weekdays(); Limit the task to weekdays
.sundays(); Limit the task to Sunday
.mondays(); Limit the task to Monday
.tuesdays(); Limit the task to Tuesday
.wednesdays(); Limit the task to Wednesday
.thursdays(); Limit the task to Thursday
.fridays(); Limit the task to Friday
.saturdays(); Limit the task to Saturday

link to laravel task scheduler doc : task scheduler


Method Description
.call(function) pass a callback which will triggered
.command(string/array); pass cli commands as string or array of strings
.run(); call this at the end of the chain to initiate.


node-reel will use node-cron as default adapter. but you can pass your own adapter and return your own object.

const Reel = require('node-reel').Reel;

const reel = new Reel({
    adapter : (object) => {
    	// use your cron library or custom cron logic
    	// below are the available properties
    	let expression = object.expression;
    	let callback = object.callback;
    	let timezone = object.timezone;
    	return mycron.schedule(expression, callback);

// use it as follows
reel.command('npm run foo').hourly().run();


issues, pull request and feedback are welcome ! Happy Scheduling !!

You can’t perform that action at this time.