Open source scheduling · Built for developers
Make room for
better scheduling.
A flexible Vue calendar for the way your product works. Move and resize events, build your own renderers, and control every detail with a typed API.
Interactions that feel natural
Drag, resize and validate changes. Keep your business rules in control with explicit callbacks.
Explore interactionsDesigned around your product
Bring your own event cards, colors and actions. Make the calendar feel like part of your application.
Customize your calendarA better developer experience
One data type across events, options and callbacks. Build confidently with a fully typed runtime API.
Meet the TypeScript APITry it yourself
A calendar you can make your own
Drag an event, adjust the range, or switch to the month view.
From idea to implementation
Built for real workflows
Practical recipes for your next scheduling experience.
Analytics & SLA Monitoring
Compute SLA breaches from events; live tags via renderer and API.
Read the guide →Sales Visit Routing
Time-box travel buffers, reassign visits between owners, keep grab offset.
Read the guide →Agency Resource Planning
Allocate roles, color by project, and show KPI chips in event template.
Read the guide →Clinic Appointments & Overbook Rules
15/30/45-min slots, soft overbook with reviewer, and EMR-friendly data pipes.
Read the guide →Manufacturing Scheduling (Gantt-like)
Sequence operations, resize for takt time, snap with thresholds.
Read the guide →IT Maintenance Windows
Blackout windows, night slots, and safe rollbacks on decline().
Read the guide →Project updates
Always moving forward
New capabilities, thoughtful improvements and fixes.
Flattened event storage
Removed 2D day-split event matrix in favor of a single flat reactive list (`calendarEvents`). Greatly simplifies data flow and improves large-set reactivity.
Per-instance context (`singletonId`)
All internal singletons and runtime options are now namespaced by `singletonId`. Pass your own id to share lifecycle; omit to get automatic isolation.
API in callbacks
Every event callback now receives the scheduler API as the second argument: (payload, api).