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>
          
        
    

Customize captions

You can customize all captions very easily using data attributes. Detailed options are described in the API tab.

        
            
            <template>
              <MDBCalendar
                ref="customCaptionCalendar"
                :events="customCaptionEvents"
                :weekdays="['Nd', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sb']"
                :months="['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień']"
                :monthsShort="['Sty','Lut','Mar','Kwi','Maj','Cze','Lip','Sie','Wrz','Paź','Lis','Gru']"
                todayCaption="Dzisiaj"
                monthCaption="Miesiąc"
                weekCaption="Tydzień"
                listCaption="Lista"
                allDayCaption="Cały dzień"
                noEventsCaption="Brak wydarzeń"
                summaryCaption="Nazwa wydarzenia"
                descriptionCaption="Szczegółowy opis wydarzenia"
                startCaption="Początek"
                endCaption="Koniec"
                addEventModalCaption="Dodaj wydarzenie"
                editEventModalCaption="Edytuj wydarzenie"
                addCaption="Dodaj"
                saveCaption="Zapisz"
                deleteCaption="Usuń"
                closeCaption="Zamknij"
                addEventCaption="Dodaj wydarzenie"
              />
            </template>
          
        
    
        
            
            <script>
              import { MDBCalendar, dayjs } from "mdb-vue-calendar";
              import { ref } from "vue";
              export default {
                components: {
                  MDBCalendar
                },
                setup() {
                  const customCaptionCalendar = ref(null);
                  const customCaptionEvents = 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 {
                    customCaptionCalendar,
                    customCaptionEvents
                  };
                }
              };
            </script>
          
        
    
        
            
            <script setup lang="ts">
              import { MDBCalendar, dayjs } from "mdb-vue-calendar";
              import { ref } from "vue";

              const customCaptionCalendar = ref(null);
              const customCaptionEvents = 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 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>