Skip to content

A lightweight and elegant React full calendar component for the web, easily integrated with shadcn-ui or any Tailwind-based UI library.

License

Notifications You must be signed in to change notification settings

dayflow-js/calendar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

44 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DayFlow

A flexible and feature-rich calendar component library for React applications with drag-and-drop support, multiple views, and plugin architecture.

npm PRs Welcome License Discord

๐Ÿ—“๏ธ Features

โœจ Monthly, Weekly, Daily and Various View Types

Monthly Weekly
image image
Daily Event Stack Level
image image

๐Ÿคฉ Default Panel (with multiple Event Detail Panel options available)

Detail Popup Detail Dialog
image image

๐ŸŽฏ Easy to resize and drag

Resize.Edit.Date.Range.mp4
Drag.Drop.mp4

โšก For more features and interactive experience, visit our live demo.

โœจ Core Features

  • ๐Ÿ—“๏ธ 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

๐Ÿš€ Additional Features

๐Ÿ“… Advanced Calendar Capabilities

  • 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

๐ŸŽจ Customization & Theming

  • Custom Event Renderers: Full control over event appearance with custom components
  • Color Coding: Multiple calendar types with color-coded events (calendarId support)
  • Custom Detail Panels: Three display modes - Dialog, Popup, or custom panel
  • Custom Headers: Fully customizable ViewHeader component with switcher modes
  • Drag Indicators: Customizable drag indicator renderers for different event types

๐ŸŽฏ Event Interaction

  • Event Callbacks: onEventCreate, onEventUpdate, onEventDelete lifecycle 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

โšก Performance & Developer Experience

  • 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

๐Ÿ“ฆ Installation

npm install @dayflow/core lucide-react
# or
yarn add @dayflow/core lucide-react
# or
pnpm add @dayflow/core lucide-react

Peer Dependencies

  • react >= 18.0.0
  • react-dom >= 18.0.0
  • lucide-react >= 0.400.0

๐Ÿš€ Quick Start

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} />;
}

๐Ÿ“– View Full Documentation โ†’

๐ŸŽฏ Use Cases

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

๐ŸŒŸ Key Highlights

  • โœ… 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

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ› Bug Reports

If you find a bug, please file an issue on GitHub Issues.

๐Ÿ“ฎ Support

For questions and support, please open an issue on GitHub or go to discord.


Made with โค๏ธ by Jayce Li

About

A lightweight and elegant React full calendar component for the web, easily integrated with shadcn-ui or any Tailwind-based UI library.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published