Customize the width of scheduler columns using the .mbsc-schedule-col-width CSS class. This allows you to define fixed or dynamic column widths to fit your layout needs.
When using resources, the defined width is applied to resource columns. If no resources are present, it applies to day columns instead.
Interested in individually adjusting resource widths? Discover how →
Demo
Set the column width:
Width applies to resources or days when off:
css.mbsc-schedule-col-width {
width: 50px;
}

JSXTSXCSS
import { Eventcalendar, Page, Segmented, SegmentedGroup, setOptions } from '@mobiscroll/react';
import { useCallback, useMemo, useState } from 'react';
setOptions({
locale: ,
theme: ' ',
themeVariant: ' '
});
function App() {
const [myWidth, setWidth] = useState('small');
const [showResources, setShowResources] = useState(true);
const myResources = useMemo(
() => [
{ id: 1, name: 'Bart', color: '#328E39' },
{ id: 2, name: 'Jake', color: '#00AABB' },
{ id: 3, name: 'Carl', color: '#EA72C0' },
{ id: 4, name: 'Dana', color: '#FF5733' },
{ id: 5, name: 'Evan', color: '#3366FF' },
{ id: 6, name: 'Faye', color: '#FFD700' },
],
[],
);
const myResEvents = useMemo(
() => [
{ start: '2026-11-09T07:00', end: '2026-11-09T09:00', title: 'Sync', resource: 1 },
{ start: '2026-11-10T08:00', end: '2026-11-10T10:00', title: 'Kickoff', resource: 1 },
{ start: '2026-11-11T09:00', end: '2026-11-11T12:00', title: 'Planning', resource: 1 },
{ start: '2026-11-12T09:00', end: '2026-11-12T12:00', title: 'Meeting', resource: 1 },
{ start: '2026-11-13T09:00', end: '2026-11-13T12:00', title: 'Review', resource: 1 },
{ start: '2026-11-14T08:00', end: '2026-11-14T10:00', title: 'Kickoff', resource: 1 },
{ start: '2026-11-15T10:00', end: '2026-11-15T12:00', title: 'Planning', resource: 1 },
{ start: '2026-11-09T16:00', end: '2026-11-09T18:00', title: 'Check-in', resource: 2 },
{ start: '2026-11-10T15:00', end: '2026-11-10T17:00', title: 'Talk', resource: 2 },
{ start: '2026-11-11T13:00', end: '2026-11-11T15:00', title: 'Discussion', resource: 2 },
{ start: '2026-11-12T11:00', end: '2026-11-12T13:00', title: 'Call', resource: 2 },
{ start: '2026-11-13T11:00', end: '2026-11-13T13:00', title: 'Integration', resource: 2 },
{ start: '2026-11-14T13:00', end: '2026-11-14T15:00', title: 'Demo', resource: 2 },
{ start: '2026-11-15T14:00', end: '2026-11-15T16:00', title: 'Fixing', resource: 2 },
{ start: '2026-11-09T09:00', end: '2026-11-09T11:00', title: 'Planning', resource: 3 },
{ start: '2026-11-10T11:00', end: '2026-11-10T13:00', title: 'Demo', resource: 3 },
{ start: '2026-11-11T10:00', end: '2026-11-11T12:00', title: 'Review', resource: 3 },
{ start: '2026-11-12T14:00', end: '2026-11-12T16:00', title: 'Review', resource: 3 },
{ start: '2026-11-13T15:00', end: '2026-11-13T17:00', title: 'Retrospective', resource: 3 },
{ start: '2026-11-14T11:00', end: '2026-11-14T13:00', title: 'Review', resource: 3 },
{ start: '2026-11-15T08:00', end: '2026-11-15T10:00', title: 'Onboarding', resource: 3 },
{ start: '2026-11-09T12:00', end: '2026-11-09T14:00', title: 'Collab', resource: 4 },
{ start: '2026-11-10T14:00', end: '2026-11-10T16:00', title: 'Retro', resource: 4 },
{ start: '2026-11-11T14:00', end: '2026-11-11T16:00', title: 'Feedback', resource: 4 },
{ start: '2026-11-12T10:00', end: '2026-11-12T13:00', title: 'Session', resource: 4 },
{ start: '2026-11-13T10:00', end: '2026-11-13T12:00', title: 'Testing', resource: 4 },
{ start: '2026-11-14T10:00', end: '2026-11-14T12:00', title: 'Stand-up', resource: 4 },
{ start: '2026-11-15T13:00', end: '2026-11-15T15:00', title: 'Rollout', resource: 4 },
{ start: '2026-11-09T11:00', end: '2026-11-09T13:00', title: 'Stand-up', resource: 5 },
{ start: '2026-11-10T10:00', end: '2026-11-10T12:00', title: 'Review', resource: 5 },
{ start: '2026-11-11T11:00', end: '2026-11-11T13:00', title: 'Design', resource: 5 },
{ start: '2026-11-12T15:00', end: '2026-11-12T17:00', title: 'Sprint', resource: 5 },
{ start: '2026-11-13T16:00', end: '2026-11-13T18:00', title: 'Demo', resource: 5 },
{ start: '2026-11-14T15:00', end: '2026-11-14T17:00', title: 'Retro', resource: 5 },
{ start: '2026-11-15T12:00', end: '2026-11-15T14:00', title: 'Review', resource: 5 },
{ start: '2026-11-09T14:00', end: '2026-11-09T16:00', title: 'Retro', resource: 6 },
{ start: '2026-11-10T13:00', end: '2026-11-10T15:00', title: 'Update', resource: 6 },
{ start: '2026-11-11T09:00', end: '2026-11-11T11:00', title: 'Meeting', resource: 6 },
{ start: '2026-11-12T08:00', end: '2026-11-12T10:00', title: 'Stand-up', resource: 6 },
{ start: '2026-11-13T14:00', end: '2026-11-13T16:00', title: 'Call', resource: 6 },
{ start: '2026-11-14T09:00', end: '2026-11-14T11:00', title: 'Update', resource: 6 },
{ start: '2026-11-15T16:00', end: '2026-11-15T18:00', title: 'Strategy', resource: 6 },
],
[],
);
const myEvents = useMemo(
() => [
{ start: '2026-11-13T09:00', end: '2026-11-13T11:00', title: 'Review' },
{ start: '2026-11-14T10:00', end: '2026-11-14T12:00', title: 'Demo' },
{ start: '2026-11-15T08:00', end: '2026-11-15T10:00', title: 'Kickoff' },
{ start: '2026-11-15T14:00', end: '2026-11-15T16:00', title: 'Strategy' },
{ start: '2026-11-16T09:00', end: '2026-11-16T11:00', title: 'Stand-up' },
{ start: '2026-11-16T13:00', end: '2026-11-16T15:00', title: 'Integration' },
{ start: '2026-11-17T10:00', end: '2026-11-17T12:00', title: 'Review' },
{ start: '2026-11-18T12:00', end: '2026-11-18T14:00', title: 'Planning' },
{ start: '2026-11-19T11:00', end: '2026-11-19T13:00', title: 'Review' },
{ start: '2026-11-20T15:00', end: '2026-11-20T17:00', title: 'Sync' },
{ start: '2026-11-20T10:00', end: '2026-11-20T12:00', title: 'Retro' },
{ start: '2026-11-21T10:00', end: '2026-11-21T12:00', title: 'Stand-up' },
{ start: '2026-11-22T14:00', end: '2026-11-22T16:00', title: 'Collab' },
{ start: '2026-11-23T08:00', end: '2026-11-23T10:00', title: 'Kickoff' },
{ start: '2026-11-24T09:00', end: '2026-11-24T11:00', title: 'Meeting' },
{ start: '2026-11-25T10:00', end: '2026-11-25T12:00', title: 'Retro' },
{ start: '2026-11-26T15:00', end: '2026-11-26T17:00', title: 'Review' },
{ start: '2026-11-11T10:00', end: '2026-11-11T12:00', title: 'Planning' },
{ start: '2026-11-10T15:00', end: '2026-11-10T17:00', title: 'Talk' },
{ start: '2026-11-09T09:00', end: '2026-11-09T11:00', title: 'Stand-up' },
{ start: '2026-11-08T14:00', end: '2026-11-08T16:00', title: 'Retrospective' },
{ start: '2026-11-07T08:00', end: '2026-11-07T10:00', title: 'Kickoff' },
{ start: '2026-11-06T15:00', end: '2026-11-06T17:00', title: 'Review' },
{ start: '2026-11-05T13:00', end: '2026-11-05T15:00', title: 'Collab' },
{ start: '2026-11-04T09:00', end: '2026-11-04T11:00', title: 'Retro' },
{ start: '2026-11-03T16:00', end: '2026-11-03T18:00', title: 'Discussion' },
{ start: '2026-11-02T14:00', end: '2026-11-02T16:00', title: 'Update' },
{ start: '2026-11-01T10:00', end: '2026-11-01T12:00', title: 'Sprint' },
{ start: '2026-10-31T13:00', end: '2026-10-31T15:00', title: 'Onboarding' },
{ start: '2026-10-30T09:00', end: '2026-10-30T11:00', title: 'Strategy' },
{ start: '2026-10-29T08:00', end: '2026-10-29T10:00', title: 'Meeting' },
],
[],
);
const myView = useMemo(
() => ({
scheduler: { type: 'month', startTime: '08:00', endTime: '20:00', allDay: false },
}),
[],
);
const handleWidthChange = useCallback((ev) => {
setWidth(ev.target.value);
}, []);
const handleResourceChange = useCallback((ev) => {
setShowResources(ev.target.value === 'on');
}, []);
return (
<Page className="mds-full-height">
<div className="mbsc-flex-col mds-full-height">
<SegmentedGroup className="mbsc-flex-none" value={myWidth} onChange={handleWidthChange}>
<Segmented value="small">50px</Segmented>
<Segmented value="medium">100px</Segmented>
<Segmented value="large">150px</Segmented>
</SegmentedGroup>
<SegmentedGroup className="mbsc-flex-none" value={showResources ? 'on' : 'off'} onChange={handleResourceChange}>
<Segmented value="on">With resources</Segmented>
<Segmented value="off">Without resources</Segmented>
</SegmentedGroup>
<Eventcalendar
cssClass={'mds-col-width-' + myWidth}
data={showResources ? myResEvents : myEvents}
resources={showResources ? myResources : []}
groupBy="date"
view={myView}
/>
</div>
</Page>
);
}
export default App;
import {
Eventcalendar,
MbscCalendarEvent,
MbscEventcalendarView,
MbscResource,
Page,
Segmented,
SegmentedGroup,
setOptions ,
} from '@mobiscroll/react';
import { ChangeEvent, FC, useCallback, useMemo, useState } from 'react';
setOptions({
locale: ,
theme: ' ',
themeVariant: ' '
});
const App: FC = () => {
const [myWidth, setWidth] = useState('small');
const [showResources, setShowResources] = useState(true);
const myResources = useMemo<MbscResource[]>(
() => [
{ id: 1, name: 'Bart', color: '#328E39' },
{ id: 2, name: 'Jake', color: '#00AABB' },
{ id: 3, name: 'Carl', color: '#EA72C0' },
{ id: 4, name: 'Dana', color: '#FF5733' },
{ id: 5, name: 'Evan', color: '#3366FF' },
{ id: 6, name: 'Faye', color: '#FFD700' },
],
[],
);
const myResEvents = useMemo<MbscCalendarEvent[]>(
() => [
{ start: '2026-11-09T07:00', end: '2026-11-09T09:00', title: 'Sync', resource: 1 },
{ start: '2026-11-10T08:00', end: '2026-11-10T10:00', title: 'Kickoff', resource: 1 },
{ start: '2026-11-11T09:00', end: '2026-11-11T12:00', title: 'Planning', resource: 1 },
{ start: '2026-11-12T09:00', end: '2026-11-12T12:00', title: 'Meeting', resource: 1 },
{ start: '2026-11-13T09:00', end: '2026-11-13T12:00', title: 'Review', resource: 1 },
{ start: '2026-11-14T08:00', end: '2026-11-14T10:00', title: 'Kickoff', resource: 1 },
{ start: '2026-11-15T10:00', end: '2026-11-15T12:00', title: 'Planning', resource: 1 },
{ start: '2026-11-09T16:00', end: '2026-11-09T18:00', title: 'Check-in', resource: 2 },
{ start: '2026-11-10T15:00', end: '2026-11-10T17:00', title: 'Talk', resource: 2 },
{ start: '2026-11-11T13:00', end: '2026-11-11T15:00', title: 'Discussion', resource: 2 },
{ start: '2026-11-12T11:00', end: '2026-11-12T13:00', title: 'Call', resource: 2 },
{ start: '2026-11-13T11:00', end: '2026-11-13T13:00', title: 'Integration', resource: 2 },
{ start: '2026-11-14T13:00', end: '2026-11-14T15:00', title: 'Demo', resource: 2 },
{ start: '2026-11-15T14:00', end: '2026-11-15T16:00', title: 'Fixing', resource: 2 },
{ start: '2026-11-09T09:00', end: '2026-11-09T11:00', title: 'Planning', resource: 3 },
{ start: '2026-11-10T11:00', end: '2026-11-10T13:00', title: 'Demo', resource: 3 },
{ start: '2026-11-11T10:00', end: '2026-11-11T12:00', title: 'Review', resource: 3 },
{ start: '2026-11-12T14:00', end: '2026-11-12T16:00', title: 'Review', resource: 3 },
{ start: '2026-11-13T15:00', end: '2026-11-13T17:00', title: 'Retrospective', resource: 3 },
{ start: '2026-11-14T11:00', end: '2026-11-14T13:00', title: 'Review', resource: 3 },
{ start: '2026-11-15T08:00', end: '2026-11-15T10:00', title: 'Onboarding', resource: 3 },
{ start: '2026-11-09T12:00', end: '2026-11-09T14:00', title: 'Collab', resource: 4 },
{ start: '2026-11-10T14:00', end: '2026-11-10T16:00', title: 'Retro', resource: 4 },
{ start: '2026-11-11T14:00', end: '2026-11-11T16:00', title: 'Feedback', resource: 4 },
{ start: '2026-11-12T10:00', end: '2026-11-12T13:00', title: 'Session', resource: 4 },
{ start: '2026-11-13T10:00', end: '2026-11-13T12:00', title: 'Testing', resource: 4 },
{ start: '2026-11-14T10:00', end: '2026-11-14T12:00', title: 'Stand-up', resource: 4 },
{ start: '2026-11-15T13:00', end: '2026-11-15T15:00', title: 'Rollout', resource: 4 },
{ start: '2026-11-09T11:00', end: '2026-11-09T13:00', title: 'Stand-up', resource: 5 },
{ start: '2026-11-10T10:00', end: '2026-11-10T12:00', title: 'Review', resource: 5 },
{ start: '2026-11-11T11:00', end: '2026-11-11T13:00', title: 'Design', resource: 5 },
{ start: '2026-11-12T15:00', end: '2026-11-12T17:00', title: 'Sprint', resource: 5 },
{ start: '2026-11-13T16:00', end: '2026-11-13T18:00', title: 'Demo', resource: 5 },
{ start: '2026-11-14T15:00', end: '2026-11-14T17:00', title: 'Retro', resource: 5 },
{ start: '2026-11-15T12:00', end: '2026-11-15T14:00', title: 'Review', resource: 5 },
{ start: '2026-11-09T14:00', end: '2026-11-09T16:00', title: 'Retro', resource: 6 },
{ start: '2026-11-10T13:00', end: '2026-11-10T15:00', title: 'Update', resource: 6 },
{ start: '2026-11-11T09:00', end: '2026-11-11T11:00', title: 'Meeting', resource: 6 },
{ start: '2026-11-12T08:00', end: '2026-11-12T10:00', title: 'Stand-up', resource: 6 },
{ start: '2026-11-13T14:00', end: '2026-11-13T16:00', title: 'Call', resource: 6 },
{ start: '2026-11-14T09:00', end: '2026-11-14T11:00', title: 'Update', resource: 6 },
{ start: '2026-11-15T16:00', end: '2026-11-15T18:00', title: 'Strategy', resource: 6 },
],
[],
);
const myEvents = useMemo<MbscCalendarEvent[]>(
() => [
{ start: '2026-11-13T09:00', end: '2026-11-13T11:00', title: 'Review' },
{ start: '2026-11-14T10:00', end: '2026-11-14T12:00', title: 'Demo' },
{ start: '2026-11-15T08:00', end: '2026-11-15T10:00', title: 'Kickoff' },
{ start: '2026-11-15T14:00', end: '2026-11-15T16:00', title: 'Strategy' },
{ start: '2026-11-16T09:00', end: '2026-11-16T11:00', title: 'Stand-up' },
{ start: '2026-11-16T13:00', end: '2026-11-16T15:00', title: 'Integration' },
{ start: '2026-11-17T10:00', end: '2026-11-17T12:00', title: 'Review' },
{ start: '2026-11-18T12:00', end: '2026-11-18T14:00', title: 'Planning' },
{ start: '2026-11-19T11:00', end: '2026-11-19T13:00', title: 'Review' },
{ start: '2026-11-20T15:00', end: '2026-11-20T17:00', title: 'Sync' },
{ start: '2026-11-20T10:00', end: '2026-11-20T12:00', title: 'Retro' },
{ start: '2026-11-21T10:00', end: '2026-11-21T12:00', title: 'Stand-up' },
{ start: '2026-11-22T14:00', end: '2026-11-22T16:00', title: 'Collab' },
{ start: '2026-11-23T08:00', end: '2026-11-23T10:00', title: 'Kickoff' },
{ start: '2026-11-24T09:00', end: '2026-11-24T11:00', title: 'Meeting' },
{ start: '2026-11-25T10:00', end: '2026-11-25T12:00', title: 'Retro' },
{ start: '2026-11-26T15:00', end: '2026-11-26T17:00', title: 'Review' },
{ start: '2026-11-11T10:00', end: '2026-11-11T12:00', title: 'Planning' },
{ start: '2026-11-10T15:00', end: '2026-11-10T17:00', title: 'Talk' },
{ start: '2026-11-09T09:00', end: '2026-11-09T11:00', title: 'Stand-up' },
{ start: '2026-11-08T14:00', end: '2026-11-08T16:00', title: 'Retrospective' },
{ start: '2026-11-07T08:00', end: '2026-11-07T10:00', title: 'Kickoff' },
{ start: '2026-11-06T15:00', end: '2026-11-06T17:00', title: 'Review' },
{ start: '2026-11-05T13:00', end: '2026-11-05T15:00', title: 'Collab' },
{ start: '2026-11-04T09:00', end: '2026-11-04T11:00', title: 'Retro' },
{ start: '2026-11-03T16:00', end: '2026-11-03T18:00', title: 'Discussion' },
{ start: '2026-11-02T14:00', end: '2026-11-02T16:00', title: 'Update' },
{ start: '2026-11-01T10:00', end: '2026-11-01T12:00', title: 'Sprint' },
{ start: '2026-10-31T13:00', end: '2026-10-31T15:00', title: 'Onboarding' },
{ start: '2026-10-30T09:00', end: '2026-10-30T11:00', title: 'Strategy' },
{ start: '2026-10-29T08:00', end: '2026-10-29T10:00', title: 'Meeting' },
],
[],
);
const myView = useMemo<MbscEventcalendarView>(
() => ({
scheduler: { type: 'month', startTime: '08:00', endTime: '20:00', allDay: false },
}),
[],
);
const handleWidthChange = useCallback((ev: ChangeEvent<HTMLInputElement>) => {
setWidth(ev.target.value);
}, []);
const handleResourceChange = useCallback((ev: ChangeEvent<HTMLInputElement>) => {
setShowResources(ev.target.value === 'on');
}, []);
return (
<Page className="mds-full-height">
<div className="mbsc-flex-col mds-full-height">
<SegmentedGroup className="mbsc-flex-none" value={myWidth} onChange={handleWidthChange}>
<Segmented value="small">50px</Segmented>
<Segmented value="medium">100px</Segmented>
<Segmented value="large">150px</Segmented>
</SegmentedGroup>
<SegmentedGroup className="mbsc-flex-none" value={showResources ? 'on' : 'off'} onChange={handleResourceChange}>
<Segmented value="on">With resources</Segmented>
<Segmented value="off">Without resources</Segmented>
</SegmentedGroup>
<Eventcalendar
cssClass={'mds-col-width-' + myWidth}
data={showResources ? myResEvents : myEvents}
resources={showResources ? myResources : []}
groupBy="date"
view={myView}
/>
</div>
</Page>
);
};
export default App;
.mds-full-height {
height: 100%;
}
.mds-col-width-small .mbsc-schedule-col-width {
width: 50px;
}
.mds-col-width-medium .mbsc-schedule-col-width {
width: 100px;
}
.mds-col-width-large .mbsc-schedule-col-width {
width: 150px;
}