Calendar
Vue Bootstrap 5 Calendar plugin
MDB calendar is a plugin that allows you to efficiently manage tasks. Thanks to this extension you will be able to easily create new events, manage current events, move existing events between other days, and store all data in an easily readable array.
Responsive Calendar plugin built with the latest Bootstrap 5 and Vue 3. Various customization options like default view, event formats, customizable captions, and much more.
Note: Read the API tab to find all available options and advanced customization
Basic example
A few predefined events allowing you to see how the plugin looks like.
<template>
<MDBCalendar ref="basicCalendar" :events="basicEvents" />
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const basicCalendar = ref(null);
const basicEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
basicCalendar,
basicEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const basicCalendar = ref(null);
const basicEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Event formats
Calendar events can be added with time in two different formats - 12h or 24h. Optionally, you can also use external time libraries like moment or dayjs.
{
summary: 'Call',
start: {
date: '08/09/2020',
dateTime: '08/09/2020 10:00',
},
end: {
date: '08/09/2020',
dateTime: '08/09/2020 14:00',
},
color: {
background: '#292929',
foreground: '#f5f5f5',
},
}
{
summary: 'Call',
start: {
date: '08/09/2020',
dateTime: '08/09/2020 10:00 AM',
},
end: {
date: '08/09/2020',
dateTime: '08/09/2020 02:00 PM',
},
color: {
background: '#292929',
foreground: '#f5f5f5',
},
}
{
summary: 'Call',
start: {
date: dayjs().add(2, 'day').format('DD/MM/YYYY'),
dateTime: dayjs().add(2, 'day').format('DD/MM/YYYY') + ' 11:00',
},
end: {
date: dayjs().add(2, 'day').format('DD/MM/YYYY'),
dateTime: dayjs().add(2, 'day').format('DD/MM/YYYY') + ' 14:00',
},
color: {
background: '#292929',
foreground: '#f5f5f5',
},
}
Monday first
Set the mondayFirst
property to true so that Monday is
the first day of the week.
<template>
<MDBCalendar
ref="mondayFirstCalendar"
:events="mondayFirstEvents"
mondayFirst
/>
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const mondayFirstCalendar = ref(null);
const mondayFirstEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
mondayFirstCalendar,
mondayFirstEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const mondayFirstCalendar = ref(null);
const mondayFirstEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Default view
Set the defaultView
property to week
or
list
to change the start view. By default, it is a
month
.
<template>
<MDBCalendar
ref="defaultViewCalendar"
:events="defaultViewEvents"
defaultView="week"
/>
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const defaultViewCalendar = ref(null);
const defaultViewEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
defaultViewCalendar,
defaultViewEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const defaultViewCalendar = ref(null);
const defaultViewEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Twelve hour
By adding the twelveHour
property, you get a 12-hour
schedule.
<template>
<MDBCalendar
ref="twelveHourCalendar"
:events="twelveHourEvents"
defaultView="week"
twelveHour
/>
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const twelveHourCalendar = ref(null);
const twelveHourEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime:
dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00 AM",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 02:00 PM",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00 AM",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00 PM",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00 AM",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 02:00 PM",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
twelveHourCalendar,
twelveHourEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const twelveHourCalendar = ref(null);
const twelveHourEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime:
dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00 AM",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 02:00 PM",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00 AM",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00 PM",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00 AM",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 02:00 PM",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Default date
A starting day can be easily set using the
defaultDate
property.
<template>
<MDBCalendar
ref="defaultDateCalendar"
:events="defaultDateEvents"
defaultDate="01-12-2019"
/>
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const defaultDateCalendar = ref(null);
const defaultDateEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
defaultDateCalendar,
defaultDateEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const defaultDateCalendar = ref(null);
const defaultDateEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Readonly
The editable mode can be easily disabled using the
readonly
property.
<template>
<MDBCalendar ref="readonlyCalendar" :events="readonlyEvents" readonly />
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const readonlyCalendar = ref(null);
const readonlyEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
readonlyCalendar,
readonlyEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const readonlyCalendar = ref(null);
const readonlyEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Readonly events
The editable mode for any event can be easily disabled by adding
readonly
attribute in the event's dataset.
<template>
<MDBCalendar ref="readonlyCalendar" :events="readonlyEvents" />
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const readonlyCalendar = ref(null);
const readonlyEvents = ref([
{
summary: "Readonly event",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
readonly: true,
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Readonly event",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
readonly: true,
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Readonly event",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
readonly: true,
},
]);
return {
readonlyCalendar,
readonlyEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const readonlyCalendar = ref(null);
const readonlyEvents = ref([
{
summary: "Readonly event",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
readonly: true,
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Readonly event",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
readonly: true,
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Readonly event",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
readonly: true,
},
]);
</script>
Disabled modules
Some of the modules can be disabled via props. Here's an example without tooltips and some toolbar action elements:
<template>
<MDBCalendar
ref="modulesCalendar"
:events="modulesEvents"
:todayBtn="false"
:disableTooltip="true"
:addEventButton="false"
:navigation="false"
:viewSelect="false"
/>
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const modulesCalendar = ref(null);
const modulesEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
modulesCalendar,
modulesEvents
};
}
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const modulesCalendar = ref(null);
const modulesEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Blur
Past events can be blurred with the blur
prop.
<template>
<MDBCalendar ref="blurCalendar" :events="blurEvents" blur />
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const blurCalendar = ref(null);
const blurEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
blurCalendar,
blurEvents
};
}
};
</script>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const blurCalendar = ref(null);
const blurEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Custom attributes
You can add your own attributes to existing and new events. Below is an example
with the id
attribute.
<template>
<MDBCalendar ref="idCalendar" :events="idEvents" :newEventAtrributes="addAtrributes" />
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
export default {
components: {
MDBCalendar
},
setup() {
const idCalendar = ref(null);
const idEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
id: 1,
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
id: 2,
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
id: 3,
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
id: 4,
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
id: 5,
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
id: 6,
},
]);
let newEventId = idEvents.value.length;
const addAtrributes = (event) => {
newEventId++;
return {
...event,
id: newEventId,
};
};
return {
idCalendar,
idEvents,
addAtrributes,
};
}
};
</script>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { ref } from "vue";
const idCalendar = ref(null);
const idEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
id: 1,
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
id: 2,
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
id: 3,
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
id: 4,
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
id: 5,
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
id: 6,
},
]);
let newEventId = idEvents.value.length;
const addAtrributes = (event) => {
newEventId++;
return {
...event,
id: newEventId,
};
};
</script>
Calendar - API
Import
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
</script>
Properties
Property | Type | Default | Description |
---|---|---|---|
weekdays
|
Array | ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] |
Defines weekdays displayed names. |
months
|
Array |
['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
Defines months displayed names. |
monthsShort
|
Array | ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] |
Defines shortened months displayed names. |
mondayFirst
|
Boolean | false |
Changes first day of week to monday. |
defaultView
|
String | 'month' |
Defines default view. |
twelveHour
|
Boolean | false |
Changes time mode from 24h to 12h. |
defaultDate
|
Object / String | dayjs() |
Defines the default starting date. |
readonly
|
Boolean | false |
Disables event's edition. |
todayCaption
|
String | 'today' |
Defines caption for today. |
monthCaption
|
String | 'month' |
Defines caption for month button. |
weekCaption
|
String | 'week' |
Defines caption for week button. |
listCaption
|
String | 'list' |
Defines caption for list button. |
allDayCaption
|
String | 'All day event' |
Defines caption for all day event checkbox. |
noEventsCaption
|
String | No events |
Defines caption for empty list view. |
summaryCaption
|
String | Summary |
Defines caption for summary input label. |
descriptionCaption
|
String | Description |
Defines caption for description input label. |
startCaption
|
String | Start |
Defines caption for start input label. |
endCaption
|
String | End |
Defines caption for end input label. |
addCaption
|
String | Add |
Defines caption for add event button. |
deleteCaption
|
String | Remove |
Defines caption for remove event button. |
saveCaption
|
String | Save |
Defines caption for save event button. |
closeCaption
|
String | Close |
Defines caption for close button. |
addEventModalCaption
|
String | Add an event |
Defines caption for add event modal title. |
editEventModalCaption
|
String | Edit an event |
Defines caption for edit event modal title. |
events
|
Array of Objects | [] |
Defines calendar events. |
tag
|
String | "div" |
Defines component tag |
addEventCaption
|
String | Add event |
Defines caption for add event button. |
todayBtn
|
Boolean | true |
Enables today button. |
listOption
|
Boolean | true |
Enables list option in select. |
weekOption
|
Boolean | true |
Enables week option in select. |
monthOption
|
Boolean | true |
Enables month option in select. |
disableTooltip
|
Boolean | false |
Disables tooltip. |
blur
|
Boolean | false |
Enables blur for past events. |
navigation
|
Boolean | true |
Enables navigation. |
viewSelect
|
Boolean | true |
Enables viewSelect. |
addEventButton
|
Boolean | true |
Enables add event button. |
newEventAtrributes
|
Function | (event) => event |
Modifies new events attributes. |
timepickerConfig
|
Object | {} |
Allows to provide options for timepicker component |
datepickerConfig
|
Object | {} |
Allows to provide options for datepicker component |
dateFormat
|
String | 'DD/MM/YYYY' |
Allows to change the date format used in the calendar component |
Methods
Name | Description |
---|---|
prev |
Changes the period of time to previous. |
next |
Changes the period of time to next. |
today |
Changes the period of time to today. |
changeView
|
Changes the view. |
addEvents
|
Adds new events to the calendar. It receives 2 attributes - events and replace . The second one is by default set to false . If you decide to set it to true it will replace all the events instead of adding them. |
removeEvents
|
Removes all events from the calendar. |
<template>
<MDBBtn color="primary" @click="basicCalendar?.prev()">Go to prev month</MDBBtn>
<MDBCalendar ref="basicCalendar" :events="basicEvents" />
</template>
<script>
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { MDBBtn } from "mdb-vue-ui-kit";
import { ref } from "vue";
export default {
components: {
MDBCalendar,
MDBBtn,
},
setup() {
const basicCalendar = ref(null);
const basicEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
return {
basicCalendar,
basicEvents,
};
},
};
</script>
<script setup lang="ts">
import { MDBCalendar, dayjs } from "mdb-vue-calendar";
import { MDBBtn } from "mdb-vue-ui-kit";
import { ref } from "vue";
const basicCalendar = ref<InstanceType<typeof MDBCalendar> | null>(null);
const basicEvents = ref([
{
summary: "JS Conference",
start: {
date: dayjs().format("DD/MM/YYYY"),
},
end: {
date: dayjs().format("DD/MM/YYYY"),
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Vue Meetup",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
color: {
background: "#ebcdfe",
foreground: "#6e02b1",
},
},
{
summary: "Angular Meetup",
description:
"Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur",
start: {
date: dayjs().subtract(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().subtract(3, "day").format("DD/MM/YYYY") + " 10:00",
},
end: {
date: dayjs().add(3, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(3, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#c7f5d9",
foreground: "#0b4121",
},
},
{
summary: "React Meetup",
start: {
date: dayjs().add(5, "day").format("DD/MM/YYYY"),
},
end: {
date: dayjs().add(8, "day").format("DD/MM/YYYY"),
},
color: {
background: "#fdd8de",
foreground: "#790619",
},
},
{
summary: "Meeting",
start: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 8:00",
},
end: {
date: dayjs().add(1, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(1, "day").format("DD/MM/YYYY") + " 12:00",
},
color: {
background: "#cfe0fc",
foreground: "#0a47a9",
},
},
{
summary: "Call",
start: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 11:00",
},
end: {
date: dayjs().add(2, "day").format("DD/MM/YYYY"),
dateTime: dayjs().add(2, "day").format("DD/MM/YYYY") + " 14:00",
},
color: {
background: "#292929",
foreground: "#f5f5f5",
},
},
]);
</script>
Events
Name | Description |
---|---|
prev
|
Emitted when the prev method triggers. |
next
|
Emitted when the next method triggers. |
today
|
Emitted when the today method triggers. |
viewChange
|
Emitted when the changeView method triggers. |
addEvent
|
Emitted when a new event is added. Returns a new event object. |
editEvent
|
Emitted when any event is editted. Returns an editted event object. |
deleteEvent
|
Emitted when any event is deleted. Returns a deleted event object. |
<template>
<MDBCalendar ref="basicCalendar" :events="basicEvents" @addEvent="doSomething"/>
</template>