Scheduler - Cells and Headers
Customize month cells, month headers, and mini-month cells.
#Choose a Surface
Use cell and header outlets when the month or year surface needs different content. Use data attributes when the content can stay the same and only state styling changes.
| Surface | Use |
|---|---|
Scheduler.MonthHeaderCell | Replace weekday labels, add compact abbreviations, or show calendar-specific weekday marks. |
Scheduler.MonthCellNumber | Replace the day-number chip while Scheduler keeps cell focus, range, disabled, and today state. |
Scheduler.MonthCell | Wrap the whole month cell when the cell background or date-level layout needs app-owned markup. |
Scheduler.MonthDayCell | Customize the day body beneath the number and above the event stack. |
Scheduler.MiniMonthHeader | Replace the month label in year view. |
Scheduler.MiniMonthCell | Replace year-view date cells with small indicators or status marks. |
| Data attributes | Style today, selected, weekend, other-month, disabled, drop-valid, or range state without replacing markup. |
Reserve a circular day-number treatment for today or the active day. Use the cell background, outline, or range fill for selected days so the user can distinguish selected state from the current date.
#Small Override
Start with the weekday header and day-number surfaces. The month cell root still owns focus, selection, range, disabled, other-month, event area, and more-link behavior.
<Scheduler.Content>
<Scheduler.Month>
<Scheduler.MonthHeaderCell>
<AvailabilityWeekday />
</Scheduler.MonthHeaderCell>
<Scheduler.MonthCellNumber>
<AvailabilityDayNumber />
</Scheduler.MonthCellNumber>
</Scheduler.Month>
</Scheduler.Content>The replacement component receives the month cell number payload as props and should stay compact.
<script setup lang="ts">
const props = defineProps<{
dayNumberLabel?: string;
isToday?: boolean;
isSelected?: boolean;
isDisabled?: boolean;
isOtherMonth?: boolean;
}>();
</script>
<template>
<span class="availability-day" :data-today="props.isToday || undefined">
{{ props.dayNumberLabel }}
</span>
</template>#Payload
Month and mini-month payloads carry date state rather than event-card state.
| Field | Surface | Use |
|---|---|---|
date | Month and mini-month cells | Bind tooltips, labels, or data lookups to the exact day. |
dayNumberLabel, dayOfMonthLabel | Day-number surfaces | Render localized day numbers. |
isToday | Month and mini-month cells | Mark the current day. |
isSelected | Month and mini-month cells | Style selected or range-selected days without changing today semantics. |
isDisabled | Month and mini-month cells | Dim dates outside min/max rules. |
isOtherMonth | Month day numbers | De-emphasize adjacent-month filler days. |
eventCount, hasEvents | Mini-month cells | Show dense year-view activity markers. |
events | Month day cells | Summarize visible date activity without rebuilding the event stack. |
Use the Data Attributes reference when state styling is enough. Use an outlet when a date needs different content, badges, labels, or mini-month markers.
#Month
Replace the month weekday header and day number with application-owned markup. The month grid still handles overflow state and event layout.
#Advanced Example
Customize month and mini-month cells with domain markers. The cell context still carries date ownership, disabled state, today state, and range behavior.
#Checklist
- Keep weekday labels aligned with the column grid and avoid multi-line labels unless the month header height is designed for them.
- Keep day-number badges small enough to avoid clipping in dense month cells.
- Use cell background or outline for selected cells, not the same circular treatment used for today.
- Preserve disabled and other-month states so adjacent-month days do not look active.
- Keep event count badges away from the more-link area.
- Keep mini-month cells compact and centered. Year view has less room than month view.
- Check weekend, today, range, drop-valid, and overflow states after styling.
#API
Public outlets include Scheduler.MonthCellNumber, Scheduler.MonthHeaderCell, Scheduler.MonthCell, Scheduler.MonthDayCell, Scheduler.MiniMonthHeader, and Scheduler.MiniMonthCell with the context fields listed in Slots and Contexts.