@chatwoot/business-hours
v0.0.3
Published
Compute business hours like a pro
Downloads
22
Readme
Installation
pnpm install @chatwoot/business-hours
npm install @chatwoot/business-hours
yarn add @chatwoot/business-hours
Usage
You need to initialize the scheduler using the following options, the hours defines the schedule for each day of the week, and the holidays is an array of Date
objects.
import { Scheduler } from '@chatwoot/business-hours'
const scheduler = new Scheduler({
hours: {
0: null,
1: [
{ start: "09:00", end: "12:00" },
{ start: "13:00", end: "18:00" },
],
2: [
{ start: "09:00", end: "12:00" },
{ start: "13:00", end: "18:00" },
],
3: [{ start: "09:00", end: "12:00" }],
4: [{ start: "09:00", end: "18:00" }],
5: [{ start: "09:00", end: "18:00" }],
6: null,
},
holidays: [
new Date("2024-03-08"),
new Date("2024-03-09"),
new Date("2024-03-10"),
],
});
Methods available
nextWorkingTime
This method takes a date and returns the next working time. If the date is a holiday, it will return the next working day. If the date is a working day, it will return the next working time.
scheduler.nextWorkingTime(new Date("2024-03-08"));
nextWorkingDay
This method takes a date and returns the next working day. If the date is a holiday, it will return the next working day. If the date is a working day, it will return the same day.
scheduler.nextWorkingDay(new Date("2024-03-08"));
isWorkingDay
This method takes a date and returns a boolean. If the date is a holiday, it will return false. If the date is a working day, it will return true.
scheduler.isWorkingDay(new Date("2024-03-08"));
isWorkingTime
This method takes a date and returns a boolean. If the date is a holiday, it will return false. If the date is a working day, it will return true.
scheduler.isWorkingTime(new Date("2024-03-08"));
isHoliday
This method takes a date and returns a boolean. If the date is a holiday, it will return true. If the date is a working day, it will return false.
scheduler.isHoliday(new Date("2024-03-08"));
addTime
This method takes a datetime, along with the time to add in seconds and returns the new date. If the date is outside working hours, it will add it to the working hours, suppose the working hours is between 8AM to 5PM, and I pass it 7:30 PM and ask it to add 10 mins, it will return 8:10 AM.
scheduler.addTime(new Date("2024-03-08"), 3600);