Convert Figma logo to code with AI

fullcalendar logofullcalendar-vue

The official Vue 3 component for FullCalendar

1,386
89
1,386
1

Top Related Projects

Full-sized drag & drop JavaScript event calendar with resource & timeline views

43,060

Quill is a modern WYSIWYG editor built for compatibility and extensibility

Quick Overview

FullCalendar Vue is an official Vue 3 component for FullCalendar, a powerful and customizable JavaScript event calendar. It provides a seamless integration of FullCalendar's features into Vue applications, allowing developers to create interactive and feature-rich calendars with ease.

Pros

  • Seamless integration with Vue 3 applications
  • Comprehensive set of features for event management and calendar customization
  • Excellent documentation and community support
  • Regular updates and maintenance

Cons

  • Learning curve for complex customizations
  • Large bundle size for small projects that don't need all features
  • Limited built-in theming options (though customizable with CSS)

Code Examples

  1. Basic calendar setup:
<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'

export default {
  components: {
    FullCalendar
  },
  data() {
    return {
      calendarOptions: {
        plugins: [dayGridPlugin],
        initialView: 'dayGridMonth'
      }
    }
  }
}
</script>
  1. Adding events to the calendar:
<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'

export default {
  components: {
    FullCalendar
  },
  data() {
    return {
      calendarOptions: {
        plugins: [dayGridPlugin],
        initialView: 'dayGridMonth',
        events: [
          { title: 'Event 1', date: '2023-05-01' },
          { title: 'Event 2', date: '2023-05-15' }
        ]
      }
    }
  }
}
</script>
  1. Handling calendar interactions:
<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'
import interactionPlugin from '@fullcalendar/interaction'

export default {
  components: {
    FullCalendar
  },
  data() {
    return {
      calendarOptions: {
        plugins: [dayGridPlugin, interactionPlugin],
        initialView: 'dayGridMonth',
        dateClick: this.handleDateClick
      }
    }
  },
  methods: {
    handleDateClick(arg) {
      alert('Date clicked: ' + arg.dateStr)
    }
  }
}
</script>

Getting Started

  1. Install the required packages:
npm install @fullcalendar/vue3 @fullcalendar/core @fullcalendar/daygrid
  1. Import and use the FullCalendar component in your Vue file:
<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'

export default {
  components: {
    FullCalendar
  },
  data() {
    return {
      calendarOptions: {
        plugins: [dayGridPlugin],
        initialView: 'dayGridMonth'
      }
    }
  }
}
</script>
  1. Add the FullCalendar CSS to your project:
import '@fullcalendar/core/main.css'
import '@fullcalendar/daygrid/main.css'

Competitor Comparisons

Full-sized drag & drop JavaScript event calendar with resource & timeline views

Pros of calendar

  • Lightweight and focused on core calendar functionality
  • Simple API and easy integration with Vue 3
  • Supports both Composition API and Options API

Cons of calendar

  • Less feature-rich compared to FullCalendar
  • Smaller community and fewer resources available
  • Limited customization options for advanced use cases

Code Comparison

calendar:

<template>
  <Calendar :events="events" />
</template>

<script>
import { Calendar } from 'v-calendar';
</script>

FullCalendar:

<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'
</script>

The calendar library offers a more straightforward implementation with fewer configuration options, while FullCalendar provides a more robust set of features and plugins for advanced calendar functionality. calendar is better suited for simpler calendar needs, while FullCalendar excels in complex, feature-rich calendar applications.

43,060

Quill is a modern WYSIWYG editor built for compatibility and extensibility

Pros of Quill

  • Rich text editing capabilities with a wide range of formatting options
  • Customizable and extensible through modules and themes
  • Active development and community support

Cons of Quill

  • Steeper learning curve for complex customizations
  • Larger file size compared to FullCalendar-Vue
  • May require additional setup for Vue.js integration

Code Comparison

FullCalendar-Vue:

<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script>
import FullCalendar from '@fullcalendar/vue'
import dayGridPlugin from '@fullcalendar/daygrid'

export default {
  components: { FullCalendar },
  data() {
    return {
      calendarOptions: {
        plugins: [dayGridPlugin],
        initialView: 'dayGridMonth'
      }
    }
  }
}
</script>

Quill:

<template>
  <div ref="editor"></div>
</template>

<script>
import Quill from 'quill'

export default {
  mounted() {
    this.quill = new Quill(this.$refs.editor, {
      theme: 'snow',
      modules: {
        toolbar: [['bold', 'italic'], ['link', 'image']]
      }
    })
  }
}
</script>

Summary

FullCalendar-Vue is specifically designed for calendar functionality in Vue.js applications, while Quill is a powerful rich text editor that can be integrated into Vue.js projects. FullCalendar-Vue offers easier integration for calendar-specific features, while Quill provides more extensive text editing capabilities but may require additional setup for Vue.js use.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

FullCalendar Vue 3 Component

The official Vue 3 component for FullCalendar

Installation

Install the Vue 3 connector, the core package, and any plugins (like daygrid):

npm install @fullcalendar/vue3 @fullcalendar/core @fullcalendar/daygrid

Usage

Render a FullCalendar component, supplying an options object:

<script>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'

export default {
  components: {
    FullCalendar // make the <FullCalendar> tag available
  },
  data: function() {
    return {
      calendarOptions: {
        plugins: [dayGridPlugin],
        initialView: 'dayGridMonth',
        weekends: false,
        events: [
          { title: 'Meeting', start: new Date() }
        ]
      }
    }
  }
}
</script>

<template>
  <h1>Demo App</h1>
  <FullCalendar :options='calendarOptions' />
</template>

You can even supply named-slot templates:

<template>
  <h1>Demo App</h1>
  <FullCalendar :options='calendarOptions'>
    <template v-slot:eventContent='arg'>
      <b>{{ arg.timeText }}</b>
      <i>{{ arg.event.title }}</i>
    </template>
  </FullCalendar>
</template>

Links

Development

You must install this repo with PNPM:

pnpm install

Available scripts (via pnpm run <script>):

  • build - build production-ready dist files
  • dev - build & watch development dist files
  • test - test headlessly
  • test:dev - test interactively
  • clean

NPM DownloadsLast 30 Days