# Event Dragging & Resizing

How to enable and control where the user can drag-n-drop and resize events. Start by setting the [editable](editable.md) setting to `true`. If you want to allow external elements to be dropped onto your calendar, visit the [droppable](droppable.md), [drop](drop.md), and [eventReceive](eventReceive.md) articles.

## Articles

- [External Event Dragging](external-dragging.md) - It's possible to take elements that live outside of a calendar and make them drag-and-droppable. When they are dropped on a specific date of a calendar, a new event might be created and certain callbacks might fire. It is possible to achieve this using FullCalendar alone, without any third party libraries.
- [Dragging Between Calendars](other-calendar-dragging.md) - It's possible to initialize two or more separate Calendars, and then allow the user to drag events between the calendars!
- [Third-Party Dragging Libraries](third-party-dragging.md) - It's possible to leverage a third-party library to do your external element drag-n-drop instead of using FullCalendar. You might want to do this if you prefer the visual effects of another library, need "sorting" functionality, or need the ability to drag-n-drop between multiple containers, functionality that FullCalendar does not have.

## Flags

- [editable](editable.md) - Determines whether the events on the calendar can be modified.
- [eventStartEditable](eventStartEditable.md) - Allow events' start times to be editable through dragging.
- [eventResizableFromStart](eventResizableFromStart.md) - Whether the user can resize an event from its starting edge.
- [eventDurationEditable](eventDurationEditable.md) - Allow events' durations to be editable through resizing.
- [eventResourceEditable](eventResourceEditable.md) - Determines whether the user can drag events between resources.
- [droppable](droppable.md) - Determines if external draggable elements or events from other calendars can be dropped onto the calendar.

## Effects

- [eventDragMinDistance](eventDragMinDistance.md) - How many pixels the user's mouse/touch must move before an event drag activates.
- [dragRevertDuration](dragRevertDuration.md) - Time it takes for an event to revert to its original position after an unsuccessful drag.
- [dragScroll](dragScroll.md) - Whether to automatically scoll the scroll-containers during event drag-and-drop and date selecting.
- [snapDuration](snapDuration.md) - The time interval at which a dragged event will snap to the time axis. Also affects the granularity at which selections can be made.
- [allDayMaintainDuration](allDayMaintainDuration.md) - Determines how an event's duration should be mutated when it is dragged from a timed section to an all-day section and vice versa.

## Control

- [eventOverlap](eventOverlap.md) - Determines if events being dragged and resized are allowed to overlap each other.
- [eventConstraint](eventConstraint.md) - Limits event dragging and resizing to certain windows of time.
- [eventAllow](eventAllow.md) - Exact programmatic control over where an event can be dropped.
- [dropAccept](dropAccept.md) - Provides a way to filter which external elements can be dropped onto the calendar.

## Callbacks

- [eventDragStart](eventDragStart.md) - Triggered when event dragging begins.
- [eventDragStop](eventDragStop.md) - Triggered when event dragging stops.
- [eventDrop](eventDrop.md) - Triggered when dragging stops and the event has moved to a different day/time.
- [drop](drop.md) - Called when an external draggable element or an event from another calendar has been dropped onto the calendar.
- [eventReceive](eventReceive.md) - Called when an external draggable element with associated event data was dropped onto the calendar. Or an event from another calendar.
- [eventLeave](eventLeave.md) - Triggered when on a calendar when one if its events is about to be dropped onto another calendar.
- [eventResizeStart](eventResizeStart.md) - Triggered when event resizing begins.
- [eventResizeStop](eventResizeStop.md) - Triggered when event resizing stops.
- [eventResize](eventResize.md) - Triggered when resizing stops and the event has changed in duration.

## See Also

- [validRange](validRange.md) - Limits which dates the user can navigate to and where events can go.
- [Touch Support](touch.md) - FullCalendar's Touch support includes smooth scrolling, time-range selection via long-press, and event drag-n-drop/resizing via long-press.

## Demos

- [Enable event dragging/resizing](event-dragging-resizing-demo)
- [Drag-n-drop external events](external-dragging-demo)
- [Constrain event dragging by certain criteria](event-constraint-demo)
