0.1.7 • Published 6d ago
react-editable-calendar
Licence
MIT
Version
0.1.7
Deps
0
Size
177 kB
Vulns
1
Weekly
0
Install scriptsThis package runs scripts during installation (preinstall/install/postinstall)
schedulaforge
Smart, editable calendar scheduling engine for JavaScript. Headless, zero runtime dependencies, with recurrence, conflict resolution, drag-resize semantics, and slot suggestions.
Use it in Node.js backends, React/Vue/Angular frontends, or any environment that needs a programmable schedule layer beneath your calendar UI.
Features
- Headless core (no UI lock-in)
- Editable move / resize / split / merge
- Recurrence expansion
- Conflict and buffer detection
- Auto-resolve overlaps
- Smart slot suggestions
- Month / week / day / agenda grids
- Resource lanes and capacity
- Working-hours constraints
- JSON import/export
- Zero dependencies
Install
npm install schedulaforge
Quick start
import { SchedulaForge } from "schedulaforge";
const forge = new SchedulaForge({
constraints: {
snapMinutes: 15,
bufferMinutes: 5,
workingHours: {
byWeekday: {
1: [[540, 1020]],
2: [[540, 1020]],
3: [[540, 1020]],
4: [[540, 1020]],
5: [[540, 1020]],
},
},
},
resources: [
{ id: "room-a", label: "Conference A", capacity: 1 },
{ id: "room-b", label: "Conference B", capacity: 1 },
],
});
forge.addEvent({
id: "standup",
title: "Team standup",
start: "2026-06-26T09:00:00.000Z",
end: "2026-06-26T09:30:00.000Z",
resourceId: "room-a",
});
forge.dragEvent("standup", { deltaMs: 60 * 60 * 1000 });
const grid = forge.getCalendarGrid("month", "2026-06-26T00:00:00.000Z");
const slots = forge.suggestSlots(45, "2026-06-26T08:00:00.000Z", "2026-06-26T18:00:00.000Z", "room-a");
Publishing to npm
cd schedulaforge
npm login
npm publish --access public
License
MIT