Determine free blocks from a list of events.
It returns the free block within scope when you enter a list of events.
Redesign raineorshine/freebusy with TypeScript.
yarn add @kamiazya/freebusy
npm install @kamiazya/freebusy
Determine free blocks from a list of events.
Format result by luxon.
In this case, it detects free block when there are three events from 9 o'clock to 17 o'clock in 2019-01-10.
import { getFree, BlockLike, ScopeTime } from '@kamiazya/freebusy';
const events: BlockLike[] = [
{
start: '2019-01-10T09:30',
end: '2019-01-10T10:00',
},
{
start: '2019-01-10T12:00',
end: '2019-01-10T13:00',
},
{
start: '2019-01-10T15:00',
end: '2019-01-10T16:00',
},
];
const freeBlocks = getFree({
scope: {
start: '2019-01-10',
end: '2019-01-11',
time: new ScopeTime({
defaultStart: 9,
defaultEnd: 17,
}),
},
events,
});
freeBlocks.blocks
.forEach((block) => {
const start = block.start.toFormat('DDD T');
const end = block.end.toFormat('T');
console.log(`${start} - ${end}`);
});
// Output:
// 2019年1月10日 9:00 - 9:30
// 2019年1月10日 10:00 - 12:00
// 2019年1月10日 13:00 - 15:00
// 2019年1月10日 16:00 - 17:00
See this link.
It generated by TypeDoc.
This software is released under the MIT License, see LICENSE.