Plugins
Plugins add behavior to the scheduler without changing its core. Each one is a factory you call and drop into the plugins array; the app installs it once during construction and exposes its API through app.getPlugin(name).
The scheduler ships without interactivity by design: drag, resize, and drag-to-create only exist once the drag plugin is installed.
Available Plugins
| Plugin | Package | Adds |
|---|---|---|
| Drag & Drop | @dayflow-scheduler/plugin-drag | Moving, resizing, and drag-to-create events. |
| Keyboard Shortcuts | @dayflow-scheduler/plugin-keyboard-shortcuts | Global navigation, clipboard, and undo/redo shortcuts. |
| Localization | @dayflow/plugin-localization | UI strings in languages other than English. |
Installing a Plugin
Install the package, then pass the factory to plugins:
npm install @dayflow-scheduler/plugin-drag @dayflow-scheduler/plugin-keyboard-shortcutsimport { useSchedulerApp } from '@dayflow-scheduler/react';
import { createDragPlugin } from '@dayflow-scheduler/plugin-drag';
import { createSchedulerKeyboardShortcutsPlugin } from '@dayflow-scheduler/plugin-keyboard-shortcuts';
const app = useSchedulerApp({
resources,
events,
plugins: [createDragPlugin({}), createSchedulerKeyboardShortcutsPlugin({})],
});Both factories take a required config argument: pass {} to accept every default.
The plugins array is read once when the app instance is created. To change plugin behavior later, use app.updatePluginConfig(name, config) rather than rebuilding the array.
Licensing
Every Scheduler plugin accepts a license option:
createDragPlugin({ license: { token } });Omit it when you register a license globally with registerDayflowProLicense(); see Registry Access & License.
Accessing a Plugin at Runtime
if (app.hasPlugin('drag')) {
const drag = app.getPlugin('drag');
}| Method | Description |
|---|---|
app.hasPlugin(name) | Whether a plugin is installed. |
app.getPlugin(name) | The plugin's public API, or undefined. |
app.getPluginConfig(name) | Its current configuration. |
app.updatePluginConfig(name, config) | Updates configuration at runtime. |
Related Documentation
- useSchedulerApp: where the
pluginsarray lives. - Registry Access & License: the shared
licenseoption.