Multiple Timezones

If the context requires users being able to change the timezone on the fly, you can add a custom dropdown with the desired timezones to the event calendar header. This can be of course placed externally to the calendar as well, eg. setting page.

Set the timezone of the incoming data through the dataTimezone - eg. 'utc', and set the display timezone through the displayTimezone - eg. 'America/Los_Angeles'

Download and try example

Demo

Loading the live demo

Preview in full screen

Show the same events in multiple timezones in a event calendar — add a header dropdown so users can switch their display timezone on the fly.

Code

dayjs.extend(window.dayjs_plugin_utc);
dayjs.extend(window.dayjs_plugin_timezone);
mobiscroll.dayjsTimezone.dayjs = dayjs;

mobiscroll.setOptions({
  locale:  ,
  theme: ' ',
  themeVariant: ' '
});

var calendarInst = mobiscroll.eventcalendar('#demo-showing-events-timezone', {
  timezonePlugin: mobiscroll.dayjsTimezone,
  dataTimezone: 'utc',
  displayTimezone: 'utc',
  view: {
    calendar: {
      labels: true,
    },
  },
  dragToCreate: true,
  dragToMove: true,
  dragToResize: true,
  data: [
    {
      start: '2026-10-20T07:00',
      end: '2026-10-20T09:00',
      title: 'Stakeholder mtg.',
      color: '#408cff',
    },
    {
      start: '2026-10-21T18:00',
      end: '2026-10-21T19:30',
      title: 'Wrapup mtg.',
      color: '#ecbc72',
    },
    {
      start: '2026-10-22T14:00',
      end: '2026-10-22T18:00',
      title: 'Business of Software Conference',
      color: '#ff6d42',
    },
    {
      start: '2026-10-23T20:00',
      end: '2026-10-23T21:50',
      title: 'Product Team mtg.',
      color: '#913aa7',
    },
    {
      start: '2026-10-24T13:00',
      end: '2026-10-24T15:00',
      title: 'Decision Making mtg.',
      color: '#5bb7c5',
    },
    {
      start: '2026-10-25T13:00',
      end: '2026-10-25T14:00',
      title: 'Quick mtg. with Martin',
      color: '#fd002f',
    },
    {
      start: '2026-10-26T12:00',
      end: '2026-10-26T16:00',
      title: 'Team-Building',
    },
  ],
  renderHeader: function () {
    return (
      '<div mbsc-calendar-nav></div>' +
      '<div class="md-timezone-header">' +
      '<div mbsc-calendar-prev></div>' +
      '<div mbsc-calendar-toda></div>' +
      '<div mbsc-calendar-next></div>' +
      '<label><input id="md-timezone-input" mbsc-input data-dropdown="true" data-input-style="box" /></label>' +
      '<select id="md-timezone-select">' +
      '<option value="America/Los_Angeles">America/Los Angeles</option>' +
      '<option value="America/Chicago">America/Chicago</option>' +
      '<option value="America/New_York">America/New York</option>' +
      '<option value="utc" selected>UTC</option>' +
      '<option value="Europe/London">Europe/London</option>' +
      '<option value="Europe/Berlin">Europe/Berlin</option>' +
      '<option value="Europe/Bucharest">Europe/Bucharest</option>' +
      '<option value="Asia/Shanghai">Asia/Shanghai</option>' +
      '<option value="Asia/Tokyo">Asia/Tokyo</option>' +
      '</select>' +
      '</div>'
    );
  },
});

mobiscroll.select('#md-timezone-select', {
  inputElement: document.getElementById('md-timezone-input'),
  display: 'anchored',
  touchUi: false,
  onChange: function (ev) {
    calendarInst.setOptions({
      displayTimezone: ev.value,
    });
  },
});
  

Duplicate Session

You have signed in on a different machine. To keep everything in sync, you have been signed out of this session.

If you need to invite team members, manage seats and accounts you can do it from the licenses page.

Duplicate Session

We noticed you are logged in on a different machine and have closed your old session.

If you need to invite team members, manage seats and accounts you can do it from the licenses page.