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!

  • Check out the features or bugs others have reported and vote on your favorites. Feedback will be prioritized based on popularity.
  • If you have feedback that’s not listed yet, submit your own.

Thanks for joining our community and helping improve Syncfusion products!

6
Votes

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.