calendar_day_view 패키지는 Flutter 애플리케이션의 캘린더에 전용 일간 뷰를 제공합니다. 매일의 이벤트와 예약을 명확하고 상호작용 가능한 방식으로 표시함으로써 사용자 경험을 향상시킵니다. 보다 포괄적인 캘린더 솔루션의 보완으로 설계되어, 일별 스케줄링이 필요한 앱에 원활하게 통합됩니다. Android, iOS, Web, macOS, Windows, Linux 등 여러 플랫폼을 지원하며 장치 간 일관된 성능을 보장합니다. 사용자 정의 가능한 레이아웃과 이벤트 처리 기능을 통해 일별 캘린더 기능 구현을 간소화합니다.
사용 사례
일일 이벤트 계획
스케줄링 애플리케이션
시간 관리 도구
약속 트래커
캘린더 통합
작업 시각화
주요 기능
특정 날짜 이벤트 표시
크로스 플랫폼 호환성
사용자 지정 가능한 UI
이벤트 상호작용 지원
부드러운 스크롤
반응형 디자인
적합한 대상
캘린더 앱을 개발하는 개발자
자세한 일간 보기 필요 앱
생산성 및 일정 관리 도구
모바일 및 웹 애플리케이션
공유 일정을 관리하는 팀
고려 사항
주요 캘린더 패키지와의 통합이 필요합니다
일간 보기만 가능
브랜딩을 위해 추가적인 스타일링이 필요할 수 있습니다
플랫폼 전용 렌더링에 의존합니다
완전한 캘린더 기능과 함께 사용하는 것이 가장 좋습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Calendar Day View
A powerful and customizable Flutter library for displaying calendar events in day view format. Perfect for applications requiring detailed daily event visualization.
🚨 Breaking Changes in v6.0.0
Migration from v5.x
Renamed tap callbacks — all tap callbacks are now consistently named onTimeTap:
View
Before (v5)
After (v6)
CalendarDayView.category()
onTileTap
onTimeTap
CalendarDayView.categoryOverflow()
onTileTap
onTimeTap
CalendarDayView.inRow()
onTap
onTimeTap
CalendarDayView.overflow()
onTimeTap
onTimeTap (no change)
CategoryDayView()
onTileTap
onTimeTap
CategoryOverflowDayView()
onTileTap
onTimeTap
Removed parameters:
controlBarBuilder removed from CalendarDayView.category() and CalendarDayView.categoryOverflow()
backgroundTimeTileBuilder removed from CalendarDayView.categoryOverflow()
Typedefs now exported — all typedefs (e.g., CategoryDayViewEventBuilder, DayViewItemBuilder) are now accessible via the main import 'package:calendar_day_view/calendar_day_view.dart' import. No need to import src/models/typedef.dart directly.
Styling moved to DayViewDecoration — all visual customization is now grouped in a separate DayViewDecoration object, passed via config.decoration:
Properties moved to DayViewDecoration: timeColumnWidth, timeTextStyle, timeTextColor, dividerColor, currentTimeLineColor, timeLabel (was timeLabelBuilder), currentTimeLine (was currentTimeLineBuilder), rowBackground (was timeRowBackgroundBuilder), divider (was dividerBuilder). The same decoration can be reused across multiple views for consistent branding.
What's New in v6.0.0
Auto-scroll to current time — set scrollToCurrentTime: true in config to auto-scroll on load (overflow and in-row views)
Custom current time line — use currentTimeLineBuilder in config to fully customize the current time indicator
Show all events in category cell — set showAllEventsInCell: true in CategoryDavViewConfig to display all events horizontally instead of only the first
Empty tile builder — use emptyTileBuilder in category views to customize empty cells
Null end time safety — overflow views now default to 30 min duration for events without an end time instead of crashing
Multi-Column Day View — new Google Calendar-style layout where overlapping events are placed side-by-side in columns with smart column reuse
Config consolidation — currentTimeLineColor and cropBottomEvents moved to base DavViewConfig, available to all views without duplication
Time row background builder — use timeRowBackgroundBuilder in config to shade specific time ranges (lunch break, working hours, unavailable blocks) in overflow, multi-column, and in-row views
Divider builder — use divider in DayViewDecoration for custom dividers per row (dashed lines, per-row thickness, hide specific dividers)
DayViewDecoration — new visual decoration class groups all styling and builder callbacks. Reusable across view types for shared theming
Time column position — timeColumnPosition: TimeColumnPosition.left | .right | .none in decoration for flexible layouts
Header / footer builders — header and footer in decoration for custom widgets above/below the time grid
Custom overlap strategy — overlapStrategy on MultiColumnDayViewConfig<T> for custom multi-column layout algorithms
Google Calendar-style layout. Overlapping events are automatically placed side-by-side in columns. Column count is determined by the overlap pattern — solo events get full width.
We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Fork the repository
Create your feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add some amazing feature')
Format your code with dart format --line-length 200 lib/ test/ example/
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Thanks to all contributors who have helped improve this package
Special thanks to the Flutter team for creating such an amazing framework