Why create a custom calendar yourself, if there are so many really great Vue.js components already?
We've collected our favourite calendars & datepickers based on whether they are well maintained, easy to use, look nice and provide a good UX. This list will grow over time, and it's in no particular order.
If you think I'm missing an essential entry on this list (or one of them is deprecated and I didn't notice!) - let me know via Twitter @MadeWithVueJS!
V-Calendar is a calendar component as well as a DatePicker. The calendar supports highlights and popovers, the DatePicker supports single dates, multiple dates and date range selections.
It's very customizable and lets you easily disable certain date patterns like weekends or the first Monday of every month.
A+ for style and animation! Oh, and the documentation is awesome, too. We use(d) it in a lot of projects, including madewithvuejs.com itself!
Vue Cal's motto is "no dependency, no bullshit", and that summarizes it pretty well. It does not only offer a flexible, feature-rich date picker, but full calendar views as well – so if you need both in your apps you should definitely check this out.
We are also watching this component evolve, as it offers a lot of options to use it. It supports picking (multiple) dates, date ranges and times, as well as marking dates. UX-wise, it has nice functionalities that help users pick their desired dates quickly, and it also comes with a dark theme out of the box!
vue-datetime is a mobile friendly DateTime Picker that supports date- and datetime mode. You can configure disabled dates and it supports localisation. Simple & functional!
This DatePicker is a great fit for booking platforms and goes one step further compared to the AirBnB DatePicker. It's a responsive component that displays the number of nights selected and has features for custom check-in/check-out rules, localisation, minimum/maximum nights selected and more.
It doesn't support single date selection, though and is crafted with a check-in / check-out-date use case in mind.
Date, Time and DateTime Selections, inline or as a popover. You can disable the selection of weekends, set an allowed date range (min and max dates displayed) and customize colors. The component also keeps improving for responsive views.
The calendar solution by Bryntum is a performance-optimized component for advanced use cases. It's a JS calendar that comes with a Vue wrapper and demos for Vue 2 and 3.
It's not a date picker at all, but more like a full-fledged event calendar application supporting recurring tasks, filtering, ICS export and lots of customization options. It also provides multiple view modes like agenda, day, week, month and year views.
Vue Simple Calendar is a lightweightevent calendar component available in a Vue 2 and Vue 3/Vite version. It's a themeable solution based on a flexbox layout, supporting drag-and-drop multi-day events.
While it offers a solid foundation, it is very clear about not trying to be a one-size-fits-all component that supports every specific use case. It does not f.ex. offer an interface for adding events to the calendar.