Day Marks, Colors & Labels
You can highlight days, mark them with colored dots, add labels or completely color the background of the days using the marked, colors and labels options. This offers means to add more information to the calendar that could be valuable to users. While you can use the colors along with marked and labels, the latter two are mutually exclusive because they get rendered in the same place on the UI.
You can add them as exact dates, ranges or specify recurring rules. The recurring object supports different ways to describe the rules.
The passed date-times can also contain timezone data which requires a timezonePlugin to be interpreted correctly. Check out how timezones work in the range.
Use the onPageLoading lifecycle event to load the data runtime. You can learn about lifecycle events and places where to drop logic to customize the experience.
Demo
<script setup>
import { MbscDatepicker, MbscPage, setOptions } from '@mobiscroll/vue'
setOptions({
locale: ,
theme: ' ',
themeVariant: ' '
})
const markedDays = [
{ recurring: { repeat: 'yearly', month: 5, day: 1 }, color: '#ffc400' },
{ recurring: { repeat: 'yearly', month: 12, day: 24 }, color: '#ffee00' },
{ recurring: { repeat: 'yearly', month: 12, day: 25 }, color: 'red' },
{ date: '2026-11-04T00:00' },
{ date: '2026-08-13T00:00' },
{ date: '2026-10-02T00:00', color: '#46c4f3' },
{ date: '2026-10-06T00:00', color: '#7e56bd' },
{ date: '2026-10-11T00:00', color: '#7e56bd' },
{ date: '2026-10-19T00:00', color: '#89d7c9' },
{ date: '2026-10-28T00:00', color: '#ea4986' },
{ date: '2026-10-13T00:00', color: '#7e56bd' },
{ date: '2026-10-13T00:00', color: '#f13f77' },
{ date: '2026-10-13T00:00', color: '#89d7c9' },
{ date: '2026-10-13T00:00', color: '#8dec7d' },
{ date: '2026-10-21T00:00', color: '#ffc400' },
{ date: '2026-10-21T00:00', color: '#8dec7d' },
{ start: '2026-11-15T00:00', end: '2026-11-18T00:00', color: '#f4511e' }
]
const coloredDays = [
{ recurring: { repeat: 'yearly', month: 12, day: 8 }, background: '#9ccc65' },
{ recurring: { repeat: 'yearly', month: 5, day: 1 }, background: 'red' },
{ recurring: { repeat: 'yearly', month: 12, day: 24 }, background: '#fff568' },
{ recurring: { repeat: 'yearly', month: 12, day: 25 }, background: '#e88080' },
{ date: '2026-11-04T00:00', background: '#cfd8dc' },
{ date: '2026-12-24T00:00', background: '#9575cd' },
{ date: '2026-08-13T00:00', background: '#d4e157' },
{ date: '2026-09-06T00:00', background: '#f4511e' },
{ date: '2026-11-06T00:00', background: '#46c4f3' },
{ date: '2026-11-22T00:00', background: '#7e56bd' },
{ date: '2026-09-11T00:00', background: '#46c4f3' },
{ date: '2026-09-29T00:00', background: '#7e56bd' },
{ date: '2026-10-02T00:00', background: '#46c4f3' },
{ date: '2026-10-03T00:00', background: '#7e56bd' },
{ date: '2026-10-11T00:00', background: '#f13f77' },
{ date: '2026-10-19T00:00', background: '#8dec7d' },
{ date: '2026-10-28T00:00', background: '#ea4986' },
{
start: '2026-11-15T00:00',
end: '2026-11-18T00:00',
text: 'Conference',
background: '#f4511e'
}
]
const labelDays = [
{ recurring: { repeat: 'yearly', month: 12, day: 25 }, title: 'Christmas', color: '#f48fb1' },
{ recurring: { repeat: 'yearly', month: 1, day: 1 }, title: 'New year' },
{ recurring: { repeat: 'yearly', month: 12, day: 1 }, title: 'Meeting', color: '#ffc400' },
{ date: '2026-11-04T00:00', text: 'Spa day', color: '#cfd8dc' },
{ date: '2026-12-24T00:00', text: 'BD Party', color: '#9ccc65' },
{ date: '2026-08-13T00:00', text: 'Exams', color: '#d4e157' },
{ date: '2026-09-06T00:00', text: 'Trip', color: '#f4511e' },
{ date: '2026-11-06T00:00', color: '#46c4f3', text: 'Pizza Night' },
{ date: '2026-11-22T00:00', color: '#7e56bd', text: 'Beerpong' },
{ date: '2026-09-11T00:00', color: '#46c4f3', text: 'Anniversary' },
{ date: '2026-09-29T00:00', color: '#7e56bd', text: 'Pete BD' },
{ date: '2026-10-02T00:00', color: '#46c4f3', text: 'Ana BD' },
{ date: '2026-10-03T00:00', color: '#7e56bd', text: 'Concert' },
{ date: '2026-10-11T00:00', color: '#f13f77', text: 'Trip' },
{ date: '2026-10-19T00:00', color: '#8dec7d', text: 'Math exam' },
{ date: '2026-10-28T00:00', color: '#ea4986', text: 'Party' },
{
start: '2026-11-15T00:00',
end: '2026-11-18T00:00',
text: 'Conference',
color: '#f4511e'
}
]
</script>
<template>
<MbscPage>
<div class="mbsc-grid">
<div class="mbsc-row">
<div class="mbsc-col-sm-12 mbsc-col-md-4">
<div class="mbsc-form-group">
<div class="mbsc-form-group-title">Marked days</div>
<MbscDatepicker
:controls="['calendar']"
:marked="markedDays"
:showRangeLabels="false"
select="range"
display="inline"
/>
</div>
</div>
<div class="mbsc-col-sm-12 mbsc-col-md-4">
<div class="mbsc-form-group">
<div class="mbsc-form-group-title">Colored days</div>
<MbscDatepicker
:controls="['calendar']"
:colors="coloredDays"
:showRangeLabels="false"
select="range"
display="inline"
/>
</div>
</div>
<div class="mbsc-col-sm-12 mbsc-col-md-4">
<div class="mbsc-form-group">
<div class="mbsc-form-group-title">Labels</div>
<MbscDatepicker
:controls="['calendar']"
:labels="labelDays"
:showRangeLabels="false"
select="range"
display="inline"
/>
</div>
</div>
</div>
</div>
</MbscPage>
</template>
<script setup lang="ts">
import { MbscDatepicker, MbscPage, setOptions } from '@mobiscroll/vue'
import type { MbscCalendarColor, MbscCalendarLabel, MbscCalendarMarked } from '@mobiscroll/vue'
setOptions({
locale: ,
theme: ' ',
themeVariant: ' '
})
const markedDays: MbscCalendarMarked[] = [
{ recurring: { repeat: 'yearly', month: 5, day: 1 }, color: '#ffc400' },
{ recurring: { repeat: 'yearly', month: 12, day: 24 }, color: '#ffee00' },
{ recurring: { repeat: 'yearly', month: 12, day: 25 }, color: 'red' },
{ date: '2026-11-04T00:00' },
{ date: '2026-08-13T00:00' },
{ date: '2026-10-02T00:00', color: '#46c4f3' },
{ date: '2026-10-06T00:00', color: '#7e56bd' },
{ date: '2026-10-11T00:00', color: '#7e56bd' },
{ date: '2026-10-19T00:00', color: '#89d7c9' },
{ date: '2026-10-28T00:00', color: '#ea4986' },
{ date: '2026-10-13T00:00', color: '#7e56bd' },
{ date: '2026-10-13T00:00', color: '#f13f77' },
{ date: '2026-10-13T00:00', color: '#89d7c9' },
{ date: '2026-10-13T00:00', color: '#8dec7d' },
{ date: '2026-10-21T00:00', color: '#ffc400' },
{ date: '2026-10-21T00:00', color: '#8dec7d' },
{ start: '2026-11-15T00:00', end: '2026-11-18T00:00', color: '#f4511e' }
]
const coloredDays: MbscCalendarColor[] = [
{ recurring: { repeat: 'yearly', month: 12, day: 8 }, background: '#9ccc65' },
{ recurring: { repeat: 'yearly', month: 5, day: 1 }, background: 'red' },
{ recurring: { repeat: 'yearly', month: 12, day: 24 }, background: '#fff568' },
{ recurring: { repeat: 'yearly', month: 12, day: 25 }, background: '#e88080' },
{ date: '2026-11-04T00:00', background: '#cfd8dc' },
{ date: '2026-12-24T00:00', background: '#9575cd' },
{ date: '2026-08-13T00:00', background: '#d4e157' },
{ date: '2026-09-06T00:00', background: '#f4511e' },
{ date: '2026-11-06T00:00', background: '#46c4f3' },
{ date: '2026-11-22T00:00', background: '#7e56bd' },
{ date: '2026-09-11T00:00', background: '#46c4f3' },
{ date: '2026-09-29T00:00', background: '#7e56bd' },
{ date: '2026-10-02T00:00', background: '#46c4f3' },
{ date: '2026-10-03T00:00', background: '#7e56bd' },
{ date: '2026-10-11T00:00', background: '#f13f77' },
{ date: '2026-10-19T00:00', background: '#8dec7d' },
{ date: '2026-10-28T00:00', background: '#ea4986' },
{
start: '2026-11-15T00:00',
end: '2026-11-18T00:00',
text: 'Conference',
background: '#f4511e'
}
]
const labelDays: MbscCalendarLabel[] = [
{ recurring: { repeat: 'yearly', month: 12, day: 25 }, title: 'Christmas', color: '#f48fb1' },
{ recurring: { repeat: 'yearly', month: 1, day: 1 }, title: 'New year' },
{ recurring: { repeat: 'yearly', month: 12, day: 1 }, title: 'Meeting', color: '#ffc400' },
{ date: '2026-11-04T00:00', text: 'Spa day', color: '#cfd8dc' },
{ date: '2026-12-24T00:00', text: 'BD Party', color: '#9ccc65' },
{ date: '2026-08-13T00:00', text: 'Exams', color: '#d4e157' },
{ date: '2026-09-06T00:00', text: 'Trip', color: '#f4511e' },
{ date: '2026-11-06T00:00', color: '#46c4f3', text: 'Pizza Night' },
{ date: '2026-11-22T00:00', color: '#7e56bd', text: 'Beerpong' },
{ date: '2026-09-11T00:00', color: '#46c4f3', text: 'Anniversary' },
{ date: '2026-09-29T00:00', color: '#7e56bd', text: 'Pete BD' },
{ date: '2026-10-02T00:00', color: '#46c4f3', text: 'Ana BD' },
{ date: '2026-10-03T00:00', color: '#7e56bd', text: 'Concert' },
{ date: '2026-10-11T00:00', color: '#f13f77', text: 'Trip' },
{ date: '2026-10-19T00:00', color: '#8dec7d', text: 'Math exam' },
{ date: '2026-10-28T00:00', color: '#ea4986', text: 'Party' },
{
start: '2026-11-15T00:00',
end: '2026-11-18T00:00',
text: 'Conference',
color: '#f4511e'
}
]
</script>
<template>
<MbscPage>
<div class="mbsc-grid">
<div class="mbsc-row">
<div class="mbsc-col-sm-12 mbsc-col-md-4">
<div class="mbsc-form-group">
<div class="mbsc-form-group-title">Marked days</div>
<MbscDatepicker
:controls="['calendar']"
:marked="markedDays"
:showRangeLabels="false"
select="range"
display="inline"
/>
</div>
</div>
<div class="mbsc-col-sm-12 mbsc-col-md-4">
<div class="mbsc-form-group">
<div class="mbsc-form-group-title">Colored days</div>
<MbscDatepicker
:controls="['calendar']"
:colors="coloredDays"
:showRangeLabels="false"
select="range"
display="inline"
/>
</div>
</div>
<div class="mbsc-col-sm-12 mbsc-col-md-4">
<div class="mbsc-form-group">
<div class="mbsc-form-group-title">Labels</div>
<MbscDatepicker
:controls="['calendar']"
:labels="labelDays"
:showRangeLabels="false"
select="range"
display="inline"
/>
</div>
</div>
</div>
</div>
</MbscPage>
</template>