DayFlow Calendar
repository·main·Indexed 21 days ago
https://github.com/dayflow-js/calendarA multi-framework calendar component library (React, Vue, Angular, Svelte) featuring a plugin-based architecture, drag-and-drop capabilities, and various view modes. It includes specialized sync packages such as @dayflow/caldav for CalDAV protocol integration (supporting Nextcloud, Radicale, iCloud, and Fastmail) and @dayflow/google-sync for Google Calendar integration, both utilizing a backend proxy architecture for secure credential management.
What's inside dayflow-js-calendar
- DayFlow is a flexible and feature-rich React calendar component library. It is designed with a plugin architecture and supports advanced interactions like drag-and-drop and multiple view types.
Overview of DayFlow Remote Sync Packages
mainDayFlow provides headless synchronization packages to connect calendars to remote servers. Depending on your target service, you should choose the appropriate provider package:
@dayflow/caldav: CalDAV synchronization engine. Compatible with iCloud Calendar, Nextcloud, Radicale, Fastmail, and any RFC 4791 compliant server.@dayflow/google-sync: Google Calendar REST API synchronization engine.@dayflow/outlook-sync: Microsoft Outlook Calendar synchronization engine via Microsoft Graph API.@dayflow/sync-core: A provider-agnostic coordination assistant for custom providers or backend-driven synchronization.
Recommendation: Most applications should start with a provider package (
@dayflow/caldav,@dayflow/google-sync, or@dayflow/outlook-sync). Use@dayflow/sync-coreonly if you are building a custom provider, coordinating remote data in backend jobs, or require provider-agnostic auditing/history.Overview of Remote Sync Packages
mainDayFlow provides headless synchronization packages to connect calendars to remote servers. Depending on your target service, you should choose the appropriate provider package:
@dayflow/caldav: CalDAV synchronization engine. Works with iCloud, Nextcloud, Radicale, Fastmail, and any RFC 4791 compliant CalDAV server.@dayflow/google-sync: Google Calendar REST API synchronization engine.@dayflow/outlook-sync: Microsoft Outlook calendar synchronization engine via Microsoft Graph API.@dayflow/sync-core: A provider-agnostic orchestration helper. Use this only if you are building a custom provider, performing backend-driven synchronization, or requiring provider-independent auditing/history tracking.
Most applications should start by using one of the specific provider packages (
@dayflow/caldav,@dayflow/google-sync, or@dayflow/outlook-sync).What is DayFlow?
mainDayFlow is a flexible and feature-rich React calendar component library. It is built with a plugin architecture and supports core calendar functionalities such as drag-and-drop interactions and multiple view types.Overview of DayFlow calendar view types
mainDayFlow provides five distinct view types designed for different scheduling needs. These views can be switched programmatically via the API or through a user interface. The available view types are:
- Day View: Optimized for single-day granularity.
- Week View: Optimized for weekly planning.
- Month View: Optimized for long-term monthly overviews.
- Year View: Optimized for yearly planning.
- Agenda View: Optimized for list-based event viewing.
Overview of DayFlow Calendar Library
mainDayFlow is a flexible and feature-rich calendar component library designed for modern web frameworks. It supports React, Vue, Angular, and Svelte. The library is built with a plugin architecture and includes native support for drag-and-drop interactions, multiple view types, and mobile responsiveness.Use @dayflow/sync-core for custom synchronization
mainThe
@dayflow/sync-corepackage provides provider-agnostic diff/apply utilities for DayFlow synchronization.Note: Most users should NOT import this package directly. Instead, use the specialized provider packages:
- For CalDAV:
@dayflow/caldav - For Google Calendar:
@dayflow/google-sync - For Outlook Calendar:
@dayflow/outlook-sync
When to use
@dayflow/sync-coredirectly:- Building a custom provider package.
- Performing synchronization via backend jobs.
- Maintaining product-specific calendar/event database records in sync with remote provider records.
- Implementing audit/history pipelines using standardized
SyncChangeobjects. - Migrating ID strategies while matching stable provider identifiers.
- For CalDAV:
Use @dayflow/sync-core for custom sync logic
main@dayflow/sync-core provides provider-agnostic diff/apply utilities for DayFlow synchronization.
Note: Most users should NOT import this directly. Instead, use the specialized provider packages:
- For CalDAV:
@dayflow/caldav - For Google Calendar:
@dayflow/google-sync - For Outlook:
@dayflow/outlook-sync
When to use
@dayflow/sync-coredirectly:- Building a custom provider package.
- Performing synchronization via backend jobs.
- Maintaining a product-specific calendar/event database in sync with remote provider records.
- Migrating ID strategies while matching stable provider identifiers.
- Implementing audit/history pipelines using standardized
SyncChangeobjects.
- For CalDAV:
Explore the website project structure
mainThe
website-newproject is built using Next.js and Fumadocs. Key files and routes include:lib/source.ts: Contains the code for the content source adapter. Use theloader()interface to access your content.lib/layout.shared.tsx: Contains shared layout options.app/(home): Route group for the landing page and other primary pages.app/docs: The documentation layout and pages.app/api/search/route.ts: The Route Handler used for search functionality.
Understand the scope of @dayflow/sync-core
main@dayflow/sync-core provides provider-neutral synchronization primitives for DayFlow calendar integrations. It is designed to be a lightweight core layer that handles shared sync types and snapshot reconciliation.
What is included:
- Shared sync types.
- Snapshot reconciliation helpers.
- Provider-neutral change emissions (e.g.,
calendar.created,event.updated,event.deleted).
What is NOT included:
- Provider adapters (e.g., Google, Outlook, CalDAV).
- Authentication logic.
- Credential storage.
- History recording or audit logs.
- Persistence implementations.
Supported view types in DayFlow
mainDayFlow supports five different view types, each optimized for specific use cases and user needs. Developers can programmatically switch between these views or provide a UI for users to toggle them. The available views are:
- Day View (日ビュー)
- Week View (週ビュー)
- Month View (月ビュー)
- Year View (Yearly View)
- Agenda View (Agenda ビュー)
Overview of the DayFlow plugin architecture
mainDayFlow uses a plugin architecture to provide modular functionality. This allows you to load features on demand (reducing bundle size), configure specific behaviors for your use case, and extend the core functionality with custom logic. You can access plugin services directly within your business logic using the application instance.