logo

FullCalendar

dropAccept

Provides a way to filter which external elements can be dropped onto the calendar.

String/Function, default: "*"

By default, after setting a calendar’s droppable option to true, the calendar will accept any draggables that are dropped onto the calendar. The dropAccept option makes the calendar more selective about which elements can/can’t be dropped.

The value of dropAccept can be a string CSS selector. It can also be a function that accepts the draggable item as a single argument, and returns true if the element can be dropped onto the calendar.

In the following example, the first draggable (with id "draggable1") can be dropped on the calendar, while the second draggable (with id "draggable2") cannot:

<div id='calendar'></div>

<div id='draggable1' class='cool-event'></div>
<div id='draggable2'></div>

and here is the JavaScript:

import { Calendar } from '@fullcalendar/core';
import interactionPlugin, { Draggable } from '@fullcalendar/interaction';
import dayGridPlugin from '@fullcalendar/daygrid';

document.addEventListener('DOMContentLoaded', function() {
  var calendarEl = document.getElementById('calendar');
  var draggableEl1 = document.getElementById('draggable1');
  var draggableEl2 = document.getElementById('draggable2');

  var calendar = new Calendar(calendarEl, {
    plugins: [ interactionPlugin, dayGridPlugin ],
    droppable: true,
    dropAccept: '.cool-event',
    drop: function() {
      alert('dropped!');
    }
  });

  calendar.render();

  new Draggable(draggableEl1);
  new Draggable(draggableEl2);
});