A flexible and feature-rich calendar component library for React applications with drag-and-drop support, multiple views, and plugin architecture.
| Monthly | Weekly |
|---|---|
![]() |
![]() |
| Daily | Event Stack Level |
|---|---|
![]() |
![]() |
| Detail Popup | Detail Dialog |
|---|---|
![]() |
![]() |
Resize.Edit.Date.Range.mp4
Drag.Drop.mp4
โก For more features and interactive experience, visit our live demo.
- ๐๏ธ Multiple Views: Day, Week, Month, and Year views
- ๐จ Customizable Styling: Built with Tailwind CSS for easy customization
- ๐ฑ Responsive Design: Works seamlessly on desktop, tablet, and mobile
- ๐ Plugin Architecture: Extensible plugin system for custom functionality
- ๐ฏ Drag & Drop Support: Intuitive event management with drag and drop
- โก TypeScript Support: Fully typed for better developer experience
- ๐จ Event Management: Create, update, delete, and organize events
- ๐ Virtual Scrolling: High performance with large datasets
- ๐ญ Custom Renderers: Customize event appearance and behavior
- Multi-Day Events: Seamlessly span events across multiple days with visual continuity
- All-Day Events: Support for full-day events with dedicated header section
- Event Stacking: Intelligent event overlap detection with customizable stack levels
- Sidebar Support: Built-in sidebar component for calendar management
- Custom Event Renderers: Full control over event appearance with custom components
- Color Coding: Multiple calendar types with color-coded events (
calendarIdsupport) - Custom Detail Panels: Three display modes - Dialog, Popup, or custom panel
- Custom Headers: Fully customizable
ViewHeadercomponent with switcher modes - Drag Indicators: Customizable drag indicator renderers for different event types
- Event Callbacks:
onEventCreate,onEventUpdate,onEventDeletelifecycle hooks - Click Events: Handle event clicks with custom callbacks
- Drag & Drop: Resize and move events with visual feedback
- Color Picker: Built-in color selection component for calendar types
- Virtual Scrolling: High-performance rendering for large datasets in Month and Year views
- TypeScript First: Complete type definitions for all APIs
- Plugin System: Extensible architecture with Events Plugin and Drag Plugin
- Temporal API: Modern date/time handling with Temporal polyfill
npm install @dayflow/core lucide-react
# or
yarn add @dayflow/core lucide-react
# or
pnpm add @dayflow/core lucide-reactreact>= 18.0.0react-dom>= 18.0.0lucide-react>= 0.400.0
import { useCalendarApp, DayFlowCalendar } from '@dayflow/core';
import { createMonthView, createWeekView, createDayView } from '@dayflow/core';
import '@dayflow/core/dist/styles.css';
function App() {
const calendar = useCalendarApp({
views: [createMonthView(), createWeekView(), createDayView()],
initialDate: new Date(),
});
return <DayFlowCalendar calendar={calendar} />;
}DayFlow is perfect for:
- ๐ Scheduling Applications: Employee scheduling, appointment booking, class timetables
- ๐ซ Event Management: Conference schedules, event calendars, festival planners
- ๐ข Project Management: Timeline views, task scheduling
- ๐ผ Business: Meeting rooms, resource booking, availability management
- โ TypeScript Support: Full type definitions included
- โ Drag & Drop: Built-in drag and resize functionality
- โ Virtual Scrolling: Optimized rendering for large datasets
- โ Plugin System: Extensible with Events and Drag plugins
- โ Modern React: Hooks-based architecture (React 18+)
- โ Tailwind CSS: Easy styling customization
Contributions are welcome! Please feel free to submit a Pull Request.
If you find a bug, please file an issue on GitHub Issues.
For questions and support, please open an issue on GitHub or go to discord.
Made with โค๏ธ by Jayce Li





