Event Resizing in the React Scheduler
Adjust appointment duration and timing by resizing from edge handlers. Resize handlers (top, bottom, left, right) are available across all Scheduler views. Enable event resizing by configuring the eventResize property to either a boolean value (true for default behavior) or an EventResizeProps configuration object for advanced customization. Vertical resizing adjusts duration (extends or shortens the time slot), while horizontal resizing shifts the appointment position in Week and WorkWeek views.
On mobile devices, long-press an appointment to reveal touch-friendly resize dot handlers for precise control. Handlers appear automatically on desktop.
Set eventResize to true to enable resizing with default configurations:
Configuration
Customize resize behavior by configuring the following properties in the eventResize object:
| Property | Type | Default | Description |
|---|---|---|---|
enable | Boolean | true | Enable or disable event resizing functionality. Set to true to allow users to resize events. |
interval | Number | 30 | Specifies the time interval (in minutes) for snapping resize operations. For example, interval: 15 snaps resizing to 15-minute increments. |
resizeToZero | Boolean | false | When true, allows resizing events to zero duration (making start and end times equal). Useful for point-in-time events. |
startResizable | Boolean | true | Enable or disable resizing from the top/left edge of events. When false, users cannot adjust the event start time. |
endResizable | Boolean | true | Enable or disable resizing from the bottom/right edge of events. When false, users cannot adjust the event end time. |
scroll.enable | Boolean | true | Enables auto-scrolling during resizing when the cursor reaches the scheduler edges. |
scroll.scrollBy | Number | 10 | Number of pixels to scroll per auto-scroll trigger during resize operations. |
scroll.timeDelay | Number | 100 | Delay in milliseconds before auto-scrolling begins during resizing. |
Resize lifecycle events
Three callbacks manage the resize lifecycle:
onResizeStart: Fires when the user begins resizing. Use it to validate or cancel the resize operation.onResizing: Fires continuously while resizing. Use it for real-time duration validation or preview updates.onResizeStop: Fires when resizing ends. Use it for final validation or persisting the new event duration.
Each resize callback receives a SchedulerResizeEvent object containing information about the event being resized. This object allows you to access and work with the appointment data and timing during the resize lifecycle.
| Property | Type | Description |
|---|---|---|
event | MouseEvent | TouchEvent | The mouse or touch event that triggered the resize action. |
cancel | Boolean | Set to true to cancel the resize operation and prevent the event from being resized. |
startTime | Date | The current start time of the event during the resize operation. |
endTime | Date | The current end time of the event during the resize operation. |
data | EventModel | The appointment object being resized, containing all event properties like id, subject, startTime, endTime, location, and custom fields. |