YAML Parameter Test

Each section below tests one parameter in isolation.

Extension Options

height (string)

Height set to 400px.

height (numeric)

Height set to 500 (coerced to 500px).

timegridHeight

Timegrid height set to 300%.

file (TSV)

Events loaded from data/events.tsv with tab separator.

file (CSV)

Events loaded from data/events.csv with comma separator.

date

Initial date set to 2026-04-16.

events (inline YAML)

Two inline events: one timed, one allday.

calendars

Two calendar definitions with distinct colors.

Pass-through TOAST UI Options

defaultView: week

defaultView: month

defaultView: day

useFormPopup: true

Click an empty time slot to see the create form popup (isReadOnly is false).

Detail items omitted

Timed events should show only time and title, and the time-grid axis should use 24-hour time. Click an event and confirm its popup shows only title and date. The fixture preserves same-day, cross-day, all-day, and outside-click dismissal checks.

timeFormat: 12h

Time labels should render in 12-hour format (e.g. “2:00 pm”) instead of the 24-hour default.

timeFormat: invalid value

An unsupported value should render a styled error block listing the accepted values.

toastui: timeFormat must be '12h' or '24h'

eventDetailItems and popupDetailItems: YAML lists

The event below should show location, attendees, and the arbitrary project field inside the event card, even though every optional field is present. Click it and confirm that its popup shows only state, body, and project.

This second calendar shows only body inside the event and only location in its popup. Neither selection should affect the first calendar.

Invalid detail items

Both options accept arbitrary field names but require each item to be a string, so these numeric items should produce styled error blocks.

toastui: eventDetailItems must contain only strings
toastui: popupDetailItems must contain only strings

Long labels

isReadOnly: true

Events cannot be dragged or edited.

isReadOnly: false

Events can be dragged and edited.

usageStatistics: true

Usage statistics enabled (network request to NHN).

gridSelection: false

Date grid click selection disabled.

gridSelection: object

Click enabled, double-click disabled.

timezone

Timezone set to America/New_York.

timezone: naive timestamps, DST-aware

Both events use the same naive 09:00–10:00 wall-clock time, with no UTC offset in the source data. Confirm both render at 09:00–10:00 in the grid: the January event resolves against Stockholm’s CET (+01:00) offset and the July event against CEST (+02:00), automatically, with no difference in the source data between the two.

timezone: explicit offsets are preserved

Confirm the first event (naive) renders at 09:00–10:00 (resolved against Stockholm). Confirm the second event, which already carries an explicit +05:00 offset deliberately different from Stockholm’s own offset, is not renormalized and renders at its own distinct time instead of also landing on 09:00.

timezone: no zones configured

No timezone key is set here. Confirm this naive event still renders using the previous (viewer-local-clock) behavior, unaffected by the timezone.zones normalization demonstrated above.

theme

Custom background color applied via theme. This calendar’s background should stay light grey regardless of other calendars on this page — see README Limitations for why that specifically needs reinforcing. Its custom saturday/sunday colors are not reinforced the same way, so they may not look consistent depending on other theme-using calendars elsewhere on the page.

template

Milestone task view with a custom template.milestone. Confirm the milestone title renders as “Custom: Template test” instead of the default “Template test”.

WeekOptions

week.startDayOfWeek

Start day set to Monday (1).

week.dayNames

Custom day name labels.

week.narrowWeekend

Weekend columns narrowed.

week.workweek

Weekends excluded.

week.showNowIndicator: false

Current time indicator hidden.

week.showTimezoneCollapseButton

Collapse button shown with two timezone zones.

week.timezonesCollapsed

Sub-timezones start collapsed.

week.hourStart

Time grid starts at hour 8.

week.hourEnd

Time grid ends at hour 18.

autoHourRange

Events at 09:00 and 16:00 (ending 17:00). Expect time grid exactly 09:00-17:00.

autoHourRange with explicit week.hourStart

Same events, but week.hourStart: 0 is set explicitly. Expect hourStart stays at 0 while hourEnd is still auto-fit to exactly 17:00.

autoHourRange with no timed events

Only an all-day event is present. Expect the full default day (00:00-24:00).

autoHourRange with a multi-day event

One event spans midnight (22:00-02:00 next day). Expect the full default day (00:00-24:00) rather than a clipped range.

autoHourRange with timezone.zones

Events at 09:00 and 14:00 (ending 15:00) Stockholm time, with timezone.zones[0]: Europe/Stockholm. Expect the time grid exactly 09:00-15:00, measured in Stockholm wall-clock time regardless of the viewer’s own browser timezone — not clipped or shifted for viewers in other zones.

autoHourRange with timezone.zones and a multi-day event

One event spans midnight in Stockholm time (22:00-02:00 next day), with timezone.zones[0]: Europe/Stockholm. Expect the full default day (00:00-24:00) — the “spans midnight” check must use Stockholm’s calendar date, not the viewer’s own, or this could wrongly measure as same-day for some viewers.

week.eventView: false

All event panels hidden.

week.eventView: [time]

Only time panel shown (allday hidden).

week.taskView: false

Task/milestone panels hidden.

week.taskView: [milestone]

Only milestone panel shown.

week.collapseDuplicateEvents

Two identical events collapsed.

MonthOptions

month.dayNames

Custom uppercase day labels.

month.startDayOfWeek

Start day set to Monday (1).

month.narrowWeekend

Weekend columns narrowed in month view.

month.visibleWeeksCount

Only 2 weeks visible.

month.isAlways6Weeks: false

Not forced to 6 rows.

month.workweek

Weekends excluded in month view.

month.visibleEventCount

Max 2 visible events per day (4 events on same day).