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

PluginPackageAdds
Drag & Drop@dayflow-scheduler/plugin-dragMoving, resizing, and drag-to-create events.
Keyboard Shortcuts@dayflow-scheduler/plugin-keyboard-shortcutsGlobal navigation, clipboard, and undo/redo shortcuts.
Localization@dayflow/plugin-localizationUI 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-shortcuts
import { 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');
}
MethodDescription
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.

On this page