
Vue Monthly Calendar Editions
DayPilot Lite (Open-Source)
The open-source DayPilot Lite for Vue package is available at @daypilot/daypilot-lite-vue.
npm install @daypilot/daypilot-lite-vue
DayPilot Pro
You can install the daypilot-pro-vue package using a link from npm.daypilot.org.
Tutorials
-
Vue Monthly Calendar/Scheduler (Open-Source)
How to create a monthly calendar/scheduler view for planning events, tasks, and reminders in Vue. -
Vue Calendar: Day/Week/Month Views (Open-Source)
Create a complex calendar UI in Vue.js with multiple views, view-switching buttons and an integrated date picker. Use a shared data source to make it fast and Vue templates to define event appearance.
How to Use the Vue Monthly Calendar Component
This is a basic example that displays the Vue calendar. It uses the open-source DayPilot Lite version (@daypilot/daypilot-lite-vue package).
<template>
<DayPilotMonth :startDate="startDate" />
</template>
<script setup>
import { DayPilot, DayPilotMonth } from '@daypilot/daypilot-lite-vue';
import { ref } from 'vue';
const startDate = ref('2025-05-01')
</script>
The :startDate prop specifies the month that will be displayed by the monthly calendar. You can use attributes of the <DayPilotMonth> tag to set the calendar properties and event handlers.
To load the calendar event data, you can use the :events attribute:
<template>
<DayPilotMonth :startDate="startDate" :events="events" />
</template>
<script setup>
import { DayPilot, DayPilotMonth } from '@daypilot/daypilot-lite-vue';
import { ref, onMounted } from 'vue';
const startDate = ref('2025-05-01');
const events = ref([]);
onMounted(() => {
events.value = [
{
id: 1,
start: '2025-05-04T00:00:00',
end: '2025-05-05T00:00:00',
text: 'Calendar Event',
},
];
});
</script>
Or you can use the direct API and load events using the update() method:
<template>
<DayPilotMonth :startDate="startDate" ref="calendar" />
</template>
<script setup>
import { DayPilot, DayPilotMonth } from '@daypilot/daypilot-lite-vue';
import { ref, onMounted, computed } from 'vue';
const startDate = ref('2025-05-01');
// Reference to the DayPilotMonth component
const calendarRef = ref(null);
// Computed property to access the control object
const calendar = computed(() => calendarRef.value?.control);
onMounted(() => {
const events = [
{
id: 1,
start: '2025-05-04T00:00:00',
end: '2025-05-05T00:00:00',
text: 'Calendar Event',
},
];
// Update the calendar with the events
if (calendar.value) {
calendar.value.update({ events });
}
});
</script>
Handling Drag and Drop Events
To handle drag and drop events (such as event moving), add the respective event handlers to the config object.
This example shows how to handle drag and drop event moving:
<template>
<DayPilotMonth
:startDate="startDate"
@eventMoved="onEventMoved"
/>
</template>
<script setup>
import { DayPilot, DayPilotMonth } from '@daypilot/daypilot-lite-vue';
import { ref } from 'vue';
const startDate = ref('2025-05-01');
function onEventMoved(args) {
const name = args.e.data.text;
console.log(`Event ${name} moved to ${args.newStart}`);
}
</script>
DayPilot