Find availability around events
npm install timeslot-availability
or
yarn add timeslot-availability
Given events, which it will merge, it will find availability in a timeframe.
const availability = require('.');
const start = new Date('2019-08-08T08:00:00.000Z');
const end = new Date('2019-08-08T16:00:00.000Z');
const timespan = 30 * 60; // 30 minutes
const siestas = [
{
start: '2019-08-08T09:00:00.000Z',
end: '2019-08-08T12:00:00.000Z',
},
{
start: '2019-08-08T10:00:00.000Z',
end: '2019-08-08T12:00:00.000Z',
},
{
start: '2019-08-08T13:00:00.000Z',
end: '2019-08-08T14:00:00.000Z',
},
];
const bookable = availability(start, end, timespan, siestas);
console.log(bookable);
[
{ start: 2019-08-08T08:00:00.000Z,
end: 2019-08-08T08:30:00.000Z },
{ start: 2019-08-08T08:30:00.000Z,
end: 2019-08-08T09:00:00.000Z },
{ start: 2019-08-08T12:00:00.000Z,
end: 2019-08-08T12:30:00.000Z },
{ start: 2019-08-08T12:30:00.000Z,
end: 2019-08-08T13:00:00.000Z },
{ start: 2019-08-08T14:00:00.000Z,
end: 2019-08-08T14:30:00.000Z },
{ start: 2019-08-08T14:30:00.000Z,
end: 2019-08-08T15:00:00.000Z },
{ start: 2019-08-08T15:00:00.000Z,
end: 2019-08-08T15:30:00.000Z },
{ start: 2019-08-08T15:30:00.000Z,
end: 2019-08-08T16:00:00.000Z }
]