# API reference


**Site index:** [https://muischeduler.2plot.dev/llms.txt](https://muischeduler.2plot.dev/llms.txt) — every page on this site, as Markdown.  
**Network index:** [https://2plot.dev/llms.txt](https://2plot.dev/llms.txt) — The 2plot network; start here to discover sibling sites.  
**Sibling sites:** 13 more in The 2plot network — listed in the site index above.  
**Sitemap:** https://muischeduler.2plot.dev/sitemap.xml  

## dash_mui_scheduler

### EventCalendar

EventCalendar is a day / week / month / agenda calendar for displaying and
editing events, wrapping the MUI X `EventCalendar` (Community, MIT). Events
cross the Dash boundary as plain dicts with ISO-string dates; user edits
(create / move / resize / delete) round-trip back through the `events` prop.

| prop | type | default | description |
|---|---|---|---|
| `id` | string |  | The id used to identify this component in Dash callbacks. |
| `areEventsDraggable` | bool |  | Allow drag-to-reschedule. Default true. |
| `areEventsResizable` | bool \| one of 'start', 'end' |  | Allow resize (bool, or restrict to "start"/"end"). Default true. |
| `canDragEventsFromTheOutside` | bool |  | Allow external events to be dragged in. Default false. |
| `canDropEventsToTheOutside` | bool |  | Allow events to be dragged out of the calendar. Default false. |
| `className` | string |  | CSS class applied to the wrapping div. |
| `defaultPreferences` | dict |  | Uncontrolled initial preferences (same shape as `preferences`). |
| `defaultView` | one of 'day', 'week', 'month', 'agenda' |  | Uncontrolled initial view. Default "week". |
| `defaultVisibleDate` | string |  | Uncontrolled initial visible date (ISO string). Default today. |
| `defaultVisibleResources` | object |  | Uncontrolled initial resource visibility map. Default {} (all visible). |
| `displayTimezone` | string |  | Timezone used to render events: an IANA name ("America/New_York"), or "default" / "locale" / "UTC". Render-only — events keep their own data timezone. Default "default". |
| `eventColor` | one of 'red', 'pink', 'purple', 'indigo', 'blue', 'teal', 'green', 'lime' … |  | The default color palette used for all events. Overridden per resource (`eventColor`) and per event (`color`). Default "teal". |
| `eventCreation` | bool \| dict |  | Configures event creation. `false` disables it; `true` enables it with defaults; an object sets the interaction and default duration (minutes). |
| `eventDialogTopOffset` | number |  | On desktop, inset the event drawer this many px from the top — e.g. set it to your fixed app header's height so the drawer lines up with a sidebar instead of covering the header. Default 0. |
| `eventDialogVariant` | one of 'drawer', 'dialog' | 'drawer' | How the event editor is presented. "drawer" (default) restyles the built-in dialog into a responsive drawer — right-anchored on desktop, an 80%-height bottom sheet on mobile (below `mobileBreakpoint`), with a scrollable body and pinned header/actions. "dialog" keeps the library's default floating, draggable dialog. |
| `events` | list of dict |  | The events to render. Each event is a dict with at least `id`, `title`, `start` and `end` (ISO strings). This is BOTH an input and an output: the calendar writes the full array back on every create / edit / move / resize / delete. |
| `height` | number \| string | 600 | Height of the wrapping container (the calendar fills it). Default 600. |
| `lastAction` | dict |  | Convenience OUTPUT describing the most recent change to `events`: {type: "create"\|"update"\|"delete"\|"move"\|"resize"\|"change",  event: the affected event (or null), event_timestamp}. |
| `localeText` | object |  | Override UI label strings (a partial map of translation keys). |
| `mobileBreakpoint` | number | 768 | Width (px) below which the UI switches to its mobile layout. Default 768. |
| `preferences` | dict |  | Controlled user preferences. Also an OUTPUT. {ampm, weekStartsOn (0=Sun..6=Sat), showWeekends, showWeekNumber,  isSidePanelOpen, showEmptyDaysInAgenda}. |
| `preferencesMenuConfig` | one of false \| dict |  | Which items appear in the preferences menu, or `false` to hide the menu. |
| `readOnly` | bool |  | Global read-only mode (disables create / drag / resize / dialog). |
| `resources` | list of object |  | Resources events can be assigned to (supports nested `children`). |
| `responsiveSidePanel` | bool | true | When true (default), the side panel starts open on wide screens and collapsed below `mobileBreakpoint` on first render — unless you pin `isSidePanelOpen` via `preferences` / `defaultPreferences`. |
| `scrollToCurrentTime` | bool | false | In the day / week views, scroll the time grid on first render (and on view change) so the current-time indicator is centered in view. Pairs with `showCurrentTimeIndicator`. Default false. |
| `shouldEventRequireResource` | bool |  | Require every event to be assigned to a resource. Default false. |
| `showCurrentTimeIndicator` | bool |  | Show the current-time indicator line in time views. Default true. |
| `sx` | object |  | MUI `sx` styling object applied to the calendar (object form only). |
| `view` | one of 'day', 'week', 'month', 'agenda' |  | Controlled active view. Also an OUTPUT (updated on view change). |
| `views` | list of one of 'day', 'week', 'month', 'agenda' |  | Which views are offered. Default ["day","week","month","agenda"]. |
| `visibleDate` | string |  | Controlled visible date (ISO string). Drives which date range is shown. Also an OUTPUT — written back (ISO string) when the user navigates. |
| `visibleResources` | object |  | Controlled resource visibility map {resourceId: bool}. Also an OUTPUT. |

### EventCalendarPremium

EventCalendarPremium is the Event Calendar with the MUI X Premium recurrence
engine: events can carry an `rrule` (RFC-5545 string or object) and
`exDates`, and the edit dialog gains a Recurrence tab. Requires a MUI X
Premium license key (the `licenseKey` prop) to render without a watermark.

| prop | type | default | description |
|---|---|---|---|
| `id` | string |  | The id used to identify this component in Dash callbacks. |
| `areEventsDraggable` | bool |  | Allow drag-to-reschedule. Default true. |
| `areEventsResizable` | bool \| one of 'start', 'end' |  | Allow resize (bool, or restrict to "start"/"end"). Default true. |
| `canDragEventsFromTheOutside` | bool |  | Allow external events to be dragged in. Default false. |
| `canDropEventsToTheOutside` | bool |  | Allow events to be dragged out of the calendar. Default false. |
| `className` | string |  | CSS class applied to the wrapping div. |
| `defaultPreferences` | dict |  | Uncontrolled initial preferences. |
| `defaultView` | one of 'day', 'week', 'month', 'agenda' |  | Uncontrolled initial view. Default "week". |
| `defaultVisibleDate` | string |  | Uncontrolled initial visible date (ISO string). Default today. |
| `defaultVisibleResources` | object |  | Uncontrolled initial resource visibility map. Default {} (all visible). |
| `displayTimezone` | string |  | Render timezone: IANA name, or "default"/"locale"/"UTC". Default "default". |
| `eventColor` | one of 'red', 'pink', 'purple', 'indigo', 'blue', 'teal', 'green', 'lime' … |  | Default color palette for all events (overridable). Default "teal". |
| `eventCreation` | bool \| dict |  | Configures event creation. `false` disables it; `true` enables defaults; an object sets {interaction, duration (minutes)}. |
| `eventDialogTopOffset` | number |  | On desktop, inset the event drawer this many px from the top — e.g. set it to your fixed app header's height so the drawer lines up with a sidebar instead of covering the header. Default 0. |
| `eventDialogVariant` | one of 'drawer', 'dialog' | 'drawer' | How the event editor is presented. "drawer" (default) restyles the built-in dialog into a responsive drawer — right-anchored on desktop, an 80%-height bottom sheet on mobile (below `mobileBreakpoint`), with a scrollable body and pinned header/actions. "dialog" keeps the library's default floating, draggable dialog. |
| `events` | list of dict |  | The events to render. Each event is a dict with at least `id`, `title`, `start`, `end` (ISO strings). Premium events may also carry `rrule` (recurrence) and `exDates`. INPUT + OUTPUT (round-trips on every change). |
| `height` | number \| string | 600 | Height of the wrapping container (the calendar fills it). Default 600. |
| `lastAction` | dict |  | Convenience OUTPUT describing the most recent change to `events`: {type, event, event_timestamp}. |
| `licenseKey` | string |  | MUI X Premium license key. Set once to remove the watermark and unlock Premium features (recurrence). Read from an environment variable on the server and pass it in. |
| `localeText` | object |  | Override UI label strings (a partial map of translation keys). |
| `mobileBreakpoint` | number | 768 | Width (px) below which the UI switches to its mobile layout. Default 768. |
| `preferences` | dict |  | Controlled user preferences. Also an OUTPUT. |
| `preferencesMenuConfig` | one of false \| dict |  | Which items appear in the preferences menu, or `false` to hide it. |
| `readOnly` | bool |  | Global read-only mode (disables create / drag / resize / dialog). |
| `resources` | list of object |  | Resources events can be assigned to (supports nested `children`). |
| `responsiveSidePanel` | bool | true | When true (default), the side panel starts open on wide screens and collapsed below `mobileBreakpoint` on first render — unless you pin `isSidePanelOpen` via `preferences` / `defaultPreferences`. |
| `scrollToCurrentTime` | bool | false | In the day / week views, scroll the time grid on first render (and on view change) so the current-time indicator is centered in view. Pairs with `showCurrentTimeIndicator`. Default false. |
| `shouldEventRequireResource` | bool |  | Require every event to be assigned to a resource. Default false. |
| `showCurrentTimeIndicator` | bool |  | Show the current-time indicator line in time views. Default true. |
| `sx` | object |  | MUI `sx` styling object applied to the calendar (object form only). |
| `view` | one of 'day', 'week', 'month', 'agenda' |  | Controlled active view. Also an OUTPUT. |
| `views` | list of one of 'day', 'week', 'month', 'agenda' |  | Which views are offered. Default ["day","week","month","agenda"]. |
| `visibleDate` | string |  | Controlled visible date (ISO string). Also an OUTPUT. |
| `visibleResources` | object |  | Controlled resource visibility map {resourceId: bool}. Also an OUTPUT. |

### EventTimeline

EventTimeline is a resource-row, Gantt-style timeline that places events on
the row of the resource they are assigned to, across configurable zoom
presets, wrapping the MUI X `EventTimelinePremium`. Requires a MUI X Premium
license key (the `licenseKey` prop) to render without a watermark.

| prop | type | default | description |
|---|---|---|---|
| `id` | string |  | The id used to identify this component in Dash callbacks. |
| `areEventsDraggable` | bool |  | Allow drag-to-reschedule allocations. Default true. |
| `areEventsResizable` | bool \| one of 'start', 'end' |  | Allow resize (bool, or restrict to "start"/"end"). Default true. |
| `canDragEventsFromTheOutside` | bool |  | Allow external events to be dragged in. Default false. |
| `canDropEventsToTheOutside` | bool |  | Allow events to be dragged out of the timeline. Default false. |
| `className` | string |  | CSS class applied to the wrapping div. |
| `defaultPreferences` | dict |  | Uncontrolled initial preferences {ampm, weekStartsOn}. Default {ampm: true}. |
| `defaultPreset` | one of 'dayAndHour', 'dayAndMonth', 'dayAndWeek', 'monthAndYear', 'year' |  | Uncontrolled initial preset. Default "dayAndHour". |
| `defaultVisibleDate` | string |  | Uncontrolled initial visible date (ISO string). Default today. |
| `defaultVisibleResources` | object |  | Uncontrolled initial resource visibility map. Default {} (all visible). |
| `displayTimezone` | string |  | Render timezone: IANA name, or "default"/"locale"/"UTC". Default "default". |
| `eventColor` | one of 'red', 'pink', 'purple', 'indigo', 'blue', 'teal', 'green', 'lime' … |  | Default color palette for all events (overridable). Default "teal". |
| `eventCreation` | bool \| dict |  | Configures event creation. `false` disables it; `true` enables defaults; an object sets {interaction, duration (minutes)}. |
| `eventDialogTopOffset` | number |  | On desktop, inset the event drawer this many px from the top — e.g. set it to your fixed app header's height. Default 0. |
| `eventDialogVariant` | one of 'drawer', 'dialog' | 'drawer' | How the event editor is presented. "drawer" (default) restyles the built-in dialog into a responsive frosted-glass drawer — right-anchored on desktop, an 88%-height bottom sheet on mobile (below `mobileBreakpoint`). "dialog" keeps the library's floating dialog. |
| `events` | list of dict |  | Allocation bars. Each event needs `id`, `title`, `start`, `end` (ISO strings) and usually a `resource` (the row it sits on). INPUT + OUTPUT. |
| `height` | number \| string | 400 | Height of the wrapping container (the timeline fills it). Default 400. |
| `lastAction` | dict |  | Convenience OUTPUT describing the most recent change to `events`. |
| `licenseKey` | string |  | MUI X Premium license key (removes the watermark). |
| `localeText` | object |  | Override UI label strings (a partial map of translation keys). |
| `mobileBreakpoint` | number | 768 | Width (px) below which the editor uses its mobile layout. Default 768. |
| `preferences` | dict |  | Controlled preferences {ampm, weekStartsOn}. Also an OUTPUT. |
| `preset` | one of 'dayAndHour', 'dayAndMonth', 'dayAndWeek', 'monthAndYear', 'year' |  | Controlled zoom preset. Also an OUTPUT. One of "dayAndHour" \| "dayAndMonth" \| "dayAndWeek" \| "monthAndYear" \| "year". |
| `presets` | list of one of 'dayAndHour', 'dayAndMonth', 'dayAndWeek', 'monthAndYear', 'year' |  | The presets available (zoom levels offered). Default is all five, from most zoomed-in to most zoomed-out. |
| `readOnly` | bool |  | Global read-only mode. |
| `resourceColumnLabel` | string |  | Label shown in the resource column header. |
| `resources` | list of object |  | The resource rows. Each event's `resource` points to one of these ids. |
| `shouldEventRequireResource` | bool |  | Require every event to be assigned to a resource. Default true (timeline). |
| `showCurrentTimeIndicator` | bool |  | Show the current-time indicator line. Default true. |
| `sx` | object |  | MUI `sx` styling object applied to the timeline (object form only). |
| `visibleDate` | string |  | Controlled visible date (ISO string) — centers the window. Also OUTPUT. |
| `visibleResources` | object |  | Controlled resource visibility map {resourceId: bool}. Also an OUTPUT. |

### RadialBarChart

RadialBarChart compares values along periodic categories using polar bars.
Series accept `stack` and `layout` ("vertical" = radius encodes the value,
"horizontal" = rotation encodes it); the band rotation axis accepts
`categoryGapRatio` / `barGapRatio`. Clicking reports the hit item via the
`clickData` output. Premium (preview) — set `licenseKey`.

| prop | type | default | description |
|---|---|---|---|
| `id` | string |  | The id used to identify this component in Dash callbacks. |
| `axisHighlight` | dict |  | Axis highlight behavior: {rotation, radius} where each is one of "none" \| "line" \| "band". Default depends on the layout. |
| `className` | string |  | CSS class applied to the wrapping div. |
| `clickData` | object |  | OUTPUT — set when the user clicks the chart. The clicked axis item and its series values, e.g. {dataIndex, axisValue, seriesValues, event_timestamp}. |
| `colors` | list of string |  | Color palette (list of CSS colors) used for the series. |
| `dataset` | list of object |  | Row-oriented data; series reference columns via `dataKey`. |
| `grid` | dict |  | Show background grid lines: {rotation: bool, radius: bool}. |
| `height` | number \| string | 400 | Chart height in px. Default 400. |
| `hideLegend` | bool |  | Hide the legend. |
| `licenseKey` | string |  | MUI X Premium license key (removes the watermark). |
| `margin` | number \| object |  | Margin around the plot — a number or {top,right,bottom,left}. |
| `radiusAxis` | list of object |  | Radius axis config — replaces the cartesian y-axis. A list of axis dicts. |
| `rotationAxis` | list of object |  | Rotation (angular) axis config — replaces the cartesian x-axis. A list of axis dicts. A band axis accepts `categoryGapRatio` / `barGapRatio`, e.g. [{scaleType:"band", data:["2020","2021"], categoryGapRatio:0.3, barGapRatio:0.1}]. |
| `series` | list of object |  | The bar series to plot. Each item is a dict, e.g. {dataKey, label, stack, layout:"vertical"\|"horizontal", color} or {data: [...], label, ...}. |
| `showToolbar` | bool |  | Show the default chart toolbar. |
| `skipAnimation` | bool |  | Skip the entrance animation. |
| `slotProps` | object |  | MUI X charts `slotProps` (plain-object form only), e.g. {"tooltip": {"trigger": "item"}}. |
| `sx` | object |  | MUI `sx` styling object (object form only). |
| `width` | number \| string |  | Chart width in px (defaults to filling the container). |

### RadialLineChart

RadialLineChart shows trends along periodic values using a polar line (or
area) plot. Pass `series` plus `rotationAxis` / `radiusAxis` to map your data
into polar coordinates; clicking the chart reports the hit axis item via the
`clickData` output. Premium (preview) — set `licenseKey` to remove the
watermark.

| prop | type | default | description |
|---|---|---|---|
| `id` | string |  | The id used to identify this component in Dash callbacks. |
| `axisHighlight` | dict |  | Axis highlight behavior: {rotation, radius} where each is one of "none" \| "line" \| "band". Default {rotation: "line"}. |
| `className` | string |  | CSS class applied to the wrapping div. |
| `clickData` | object |  | OUTPUT — set when the user clicks the chart. The clicked rotation-axis item and its series values, e.g. {dataIndex, axisValue, seriesValues, event_timestamp}. |
| `colors` | list of string |  | Color palette (list of CSS colors) used for the series. |
| `dataset` | list of object |  | Row-oriented data; series reference columns via `dataKey`. |
| `disableLineItemHighlight` | bool |  | Disable the per-item line highlight indicator. |
| `grid` | dict |  | Show background grid lines: {rotation: bool, radius: bool}. |
| `height` | number \| string | 400 | Chart height in px. Default 400. |
| `hideLegend` | bool |  | Hide the legend. |
| `licenseKey` | string |  | MUI X Premium license key (removes the watermark). |
| `margin` | number \| object |  | Margin around the plot — a number or {top,right,bottom,left}. |
| `radiusAxis` | list of object |  | Radius axis config — replaces the cartesian y-axis. A list of axis dicts, e.g. [{disableLine:true, minRadius:10, min:0, position:"none"}]. |
| `rotationAxis` | list of object |  | Rotation (angular) axis config — replaces the cartesian x-axis. A list of axis dicts, e.g. [{scaleType:"point", dataKey:"month", disableLine:true}]. |
| `series` | list of object |  | The line/area series to plot. Each item is a dict, e.g. {dataKey, label, curve, showMark, shape, area, closePath, stack,  highlightScope, color} or {data: [...], label, ...}. |
| `showToolbar` | bool |  | Show the default chart toolbar. |
| `skipAnimation` | bool |  | Skip the entrance animation. |
| `slotProps` | object |  | MUI X charts `slotProps` (plain-object form only). For example {"tooltip": {"trigger": "item"}} makes the tooltip follow the hovered mark/line instead of the whole rotation axis. |
| `sx` | object |  | MUI `sx` styling object (object form only). |
| `width` | number \| string |  | Chart width in px (defaults to filling the container). |
