Plugins

Plugins are essentially a set of hooks, that receive an optional config object and a flatpickr instance.

Functionality requested by users that doesn’t make it to core usually ends up in a plugin. The flatpickr repo comes with a few plugins.

confirmDate

Provides a visual cue for users after selecting either:

  • date + time
  • multiple dates
{
    "enableTime": true,
    "plugins": [new confirmDatePlugin({})]
}

A spiffy SVG icon is included, along with sane defaults, but you can customize them.

Here are all the available options:

{
    confirmIcon: "<i class='fa fa-check'></i>", // your icon's html, if you wish to override
    confirmText: "OK ",
    showAlways: false,
    theme: "light" // or "dark"
}

weekSelect

For selecting a week.

flatpickr({
    "plugins": [new weekSelect({})],
    "onChange": [function(){
        // extract the week number
        // note: "this" is bound to the flatpickr instance
        const weekNumber = this.selectedDates[0]
            ? this.config.getWeek(this.selectedDates[0])
            : null;

        console.log(weekNumber);
    }]
});


rangePlugin (beta)

Range selection using two inputs.

flatpickr({
    "plugins": [new rangePlugin({ input: "#secondRangeInput"})]
});


MinMaxTimePlugin (beta)

Custom minTime and maxTime per date.

{
    enableTime: true,
    minDate: "2025",
    plugins: [
        new minMaxTimePlugin({
            table: {
                "2025-01-10": {
                    minTime: "16:00",
                    maxTime: "22:00"
                }
            }
        })
    ]
};

monthSelectPlugin

Show a month-only calendar view

{
    plugins: [
        new monthSelectPlugin({
          shorthand: true, //defaults to false
          dateFormat: "m.y", //defaults to "F Y"
          altFormat: "F Y", //defaults to "F Y"
          theme: "dark" // defaults to "light"
        })
    ]
};