Welcome to the Flutter feedback portal. We’re happy you’re here! If you have feedback on how to improve the Flutter, we’d love to hear it!>
Thanks for joining our community and helping improve Syncfusion products!
In the current implementation of the Flutter SfCalendar widget, the drag-and-drop functionality for appointments can only be controlled globally using the allowDragAndDrop property. There is no built-in way to conditionally enable or disable dragging for individual appointments based on their data or state.
In practical applications, this is a significant limitation. Developers often need to enforce custom business logic, such as:
Allow dragging only for unprocessed or pending appointments
Disallow dragging for appointments in the past
Restrict dragging based on user permissions, appointment type, or other custom fields
Currently, it's an all-or-nothing switch, which is too limiting for real-world usage where only a subset of appointments should be editable.
Notably, the web version of Syncfusion's calendar does offer the ability to cancel dragging at drag start, which is a step in the right direction. However, a more robust and efficient solution would be to prevent dragging from being initiated at all for appointments that shouldn't be moved - rather than allowing it and then cancelling it mid-process.
We kindly request that you consider adding a mechanism in the Flutter SfCalendar to allow developers to define per-appointment dragging conditions, giving us full control over which appointments are draggable and which are not.
This would significantly enhance the flexibility and usability of the calendar component in professional mobile applications.