The event calendar works with local times by default, but ships with support for changing the timezone. The conversions and correct output relies on either of these three external libraries: luxon, moment-timezone and day.js. For installing and using these libraries check out this guide.
There are two angles regarding timezones:
dataTimezone- the calendar expects this format and returns this format. It is'local'by default if the date-times don't contain any timezone information. It can be set globally on the calendar using thedataTimezoneoption, or specifically for the event using thetimezoneproperty of the event data.displayTimezone- the calendar displays the events in this timezone. The date-times will be converted from thedataTimezoneand displayed accordingly. It is'local'by default
Demo
Data timezone is:
Display timezone is:
The local timezone your browser is in:
html<mbsc-eventcalendar
dataTimezone="utc"
displayTimezone="local "
[timezonePlugin]="myDayjsTimezone"
[data]="myEvents"
[view]="{ agenda: { type: 'week' }}"
></mbsc-eventcalendar>
tsimport { dayjsTimezone } from '@mobiscroll/angular';
import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';
// Extend Day.js with UTC and timezone plugins
dayjs.extend(utc);
dayjs.extend(timezone);
// Setup Mobiscroll Day.js plugin
dayjsTimezone.dayjs = dayjs;
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
myDayjsTimezone = dayjsTimezone;
myEvents = [{
start: '2026-11-05T07:00:00Z',
end: '2026-11-05T09:00:00Z',
title: 'Stakeholder mtg.',
color: '#d64646'
}, {
start: '2026-11-08T18:00:00Z',
end: '2026-11-08T19:30:00Z',
title: 'Wrapup mtg.',
color: '#ecbc72'
}, {
start: '2026-11-05T14:00:00Z',
end: '2026-11-05T18:00:00Z',
title: 'Business of Software Conference',
color: '#ff6d42'
}, {
start: '2026-11-06T20:00:00Z',
end: '2026-11-06T21:50:00Z',
title: 'Product Team mtg.',
color: '#913aa7'
}, {
start: '2026-11-04T13:00:00Z',
end: '2026-11-04T15:00:00Z',
title: 'Decision Making mtg.',
color: '#46c3d6'
}, {
start: '2026-11-06T13:00:00Z',
end: '2026-11-06T14:00:00Z',
title: 'Quick mtg. with Martin',
color: '#50b166'
}, {
start: '2026-11-08T12:00:00Z',
end: '2026-11-08T16:00:00Z',
color: '#5bb7c5',
title: 'Team-Building'
}];
}

import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import {
dayjsTimezone,
MbscCalendarEvent,
MbscEventcalendarView,
MbscModule,
MbscTimezonePlugin,
setOptions ,
} from '@mobiscroll/angular';
import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';
dayjs.extend(utc);
dayjs.extend(timezone);
dayjsTimezone.dayjs = dayjs;
setOptions({
locale: ,
theme: ' ',
themeVariant: ' '
});
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
standalone: true,
imports: [CommonModule, MbscModule],
})
export class AppComponent {
myEvents: MbscCalendarEvent[] = [
{
start: '2026-11-05T07:00',
end: '2026-11-05T09:00',
title: 'Stakeholder mtg.',
color: '#d64646',
},
{
start: '2026-11-08T18:00',
end: '2026-11-08T19:30',
title: 'Wrapup mtg.',
color: '#ecbc72',
},
{
start: '2026-11-05T14:00',
end: '2026-11-05T18:00',
title: 'Business of Software Conference',
color: '#ff6d42',
},
{
start: '2026-11-06T20:00',
end: '2026-11-06T21:50',
title: 'Product Team mtg.',
color: '#913aa7',
},
{
start: '2026-11-04T13:00',
end: '2026-11-04T15:00',
title: 'Decision Making mtg.',
color: '#46c3d6',
},
{
start: '2026-11-06T13:00',
end: '2026-11-06T14:00',
title: 'Quick mtg. with Martin',
color: '#50b166',
},
{
start: '2026-11-08T12:00',
end: '2026-11-08T16:00',
color: '#5bb7c5',
title: 'Team-Building',
},
];
myView: MbscEventcalendarView = { agenda: { type: 'week' } };
myTimezonePlugin: MbscTimezonePlugin = dayjsTimezone;
}
<mbsc-eventcalendar dataTimezone="utc" displayTimezone="local" [data]="myEvents" [timezonePlugin]="myTimezonePlugin" [view]="myView">
</mbsc-eventcalendar>