Vue-based FullCalendar Component

1.0.9 · abandoned · verified Sun Apr 19

The `vue-fullcalendar` package offers a pure Vue.js calendar component, specifically designed for Vue 2 applications. Unlike its inspiration, FullCalendar.io, it operates without the need for jQuery or the original FullCalendar.js library, making it a lightweight, Vue-native alternative. The current stable version is 1.0.9, which was last updated in July 2017. The project appears to be abandoned, with no significant updates or commits since late 2017, meaning it does not offer support for newer Vue versions (Vue 3+) or modern JavaScript ecosystem features. Its key differentiators include being a standalone Vue component and its minimal dependencies, though it is limited to month view only and is not a feature-for-feature clone of FullCalendar.io. Users should proceed with caution, understanding the implications of an unmaintained library.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to globally register the `full-calendar` component and use it within a Vue 2 application, including passing event data and handling emitted events like `eventClick` and `changeMonth`.

import Vue from 'vue';
import App from './App.vue';
import fullCalendar from 'vue-fullcalendar';

// Register globally
Vue.component('full-calendar', fullCalendar);

// Example Vue component usage (e.g., in App.vue)
const demoEvents = [
  {
    title: 'Birthday Party',
    start: '2016-08-25',
    cssClass: 'party-event' // Custom CSS class for styling
  },
  {
    title: 'Team Meeting',
    start: '2016-08-26',
    end: '2016-08-27',
    cssClass: ['work-event', 'important']
  }
];

export default {
  name: 'App',
  data() {
    return {
      fcEvents: demoEvents
    };
  },
  methods: {
    handleEventClick(event, jsEvent, pos) {
      console.log('Event clicked:', event.title, jsEvent, pos);
      // You can implement custom logic here
    },
    handleChangeMonth(start, end, current) {
      console.log('Month changed:', start, end, current);
      // Fetch new events for the displayed month
    }
  },
  template: `
    <div id="app">
      <full-calendar
        :events="fcEvents"
        lang="en"
        @eventClick="handleEventClick"
        @changeMonth="handleChangeMonth"
      ></full-calendar>
    </div>
  `
};

// Mount Vue instance
new Vue({
  el: '#app',
  render: h => h(App)
});

view raw JSON →