1 YAML metadata
1.1 Full configuration
- Calendar renders with custom options
- Events load from file
- Initial date is applied
- Navigation controls are visible
- Timed events, time-grid labels, and detail popups use 24-hour format
Show code
---
toastui:
options-all:
defaultView: week
height: 660px
navigation: true
date: "2026-04-15"
file: data/events.tsv
file-sep: "\t"
isReadOnly: true
useDetailPopup: true
timeFormat: "24h"
usageStatistics: false
gridSelection:
enableClick: true
enableDblClick: false
month:
startDayOfWeek: 1
narrowWeekend: true
workweek: false
visibleWeeksCount: 0
isAlways6Weeks: true
visibleEventCount: 6
week:
startDayOfWeek: 1
narrowWeekend: false
workweek: false
showNowIndicator: true
showTimezoneCollapseButton: false
timezonesCollapsed: false
hourStart: 6
hourEnd: 22
eventView: true
taskView: true
collapseDuplicateEvents: false
timezone:
zones:
- timezoneName: Europe/Stockholm
displayLabel: Stockholm
- timezoneName: Europe/London
displayLabel: London
theme:
common:
backgroundColor: "#ffffff"
template:
milestone: "${title}"
calendars:
- id: cal1
name: Personal
color: "#ffffff"
backgroundColor: "#03bd9e"
dragBackgroundColor: "#03bd9e"
borderColor: "#03bd9e"
- id: cal2
name: Work
color: "#ffffff"
backgroundColor: "#00a9ff"
dragBackgroundColor: "#00a9ff"
borderColor: "#00a9ff"
---
{{< toastui options-all >}}1.4 Icon coverage schedule
- Milestone, task, all-day, private, and public events exercise the event icons
- Click a timed event to inspect all detail-popup icons
1.5 Long labels
Show code
---
toastui:
long-labels:
defaultView: week
date: "2026-04-17"
file: "data/events-long-labels.csv"
file-sep: ","
useDetailPopup: true
eventDetailItems:
- location
- attendees
- state
- arbitrary
- body
popupDetailItems:
- location
- attendees
- state
- arbitrary
- body
week:
eventView: true
taskView: false
calendars:
- id: cal1
name: Work
color: "#ffffff"
backgroundColor: "#087f8c"
dragBackgroundColor: "#087f8c"
borderColor: "#087f8c"
- id: cal2
name: Personal
color: "#ffffff"
backgroundColor: "#c44d58"
dragBackgroundColor: "#c44d58"
borderColor: "#c44d58"
---
{{< toastui long-labels >}}1.6 Timezone: naive timestamps (DST-aware)
---
toastui:
timezone-naive-dst:
defaultView: week
date: "2026-01-12"
useDetailPopup: true
timezone:
zones:
- timezoneName: Europe/Stockholm
events:
- title: "Winter session (CET, UTC+1)"
start: "2026-01-12T09:00:00"
end: "2026-01-12T10:00:00"
- title: "Summer session (CEST, UTC+2)"
start: "2026-07-13T09:00:00"
end: "2026-07-13T10:00:00"
---
{{< toastui timezone-naive-dst >}}- Both events use the same naive
09:00–10:00wall-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
1.7 Automatic hour range
Show code
---
toastui:
auto-hour-range-demo:
defaultView: week
date: "2026-04-15"
autoHourRange: true
events:
- title: "Standup"
start: "2026-04-15T09:00:00"
end: "2026-04-15T09:30:00"
- title: "Deep Work"
start: "2026-04-15T10:00:00"
end: "2026-04-15T12:00:00"
- title: "Code Review"
start: "2026-04-15T14:00:00"
end: "2026-04-15T15:30:00"
---
{{< toastui auto-hour-range-demo >}}- Events run 09:00–15:30
- Confirm the week time grid fits to exactly 09:00–15:30 instead of the full day, since
week.hourStart/week.hourEndare not set explicitly
2 Inline
2.1 Basic
- Inline configuration
- file-sep escape handling works
Show code
{{< toastui file="data/events.tsv" file-sep="\t" defaultView="month" height="480px" navigation="true" date="2026-04-12" >}}2.2 CSV file
- Events load from
data/events.csv - Comma-separated parsing works when
file-sepis set to,
Show code
{{< toastui file="data/events.csv" file-sep="," defaultView="month" date="2026-04-15" >}}2.3 Workshop week
- 20 workshop sessions load from
data/workshop-week.tsv - Calendar opens in week view
- Events span across a full training week
Show code
{{< toastui file="data/workshop-week.tsv" file-sep="\t" defaultView="week" date="2026-04-20" useDetailPopup="true" week='{"hourStart": 9, "hourEnd": 17, "eventView":["time"], "taskView": false}' >}}3 Failures
3.1 Missing critical column start
- A styled error box is shown in the output document
- Error reports missing required column
start - No terminal errors are shown
Show code
{{< toastui file="data/bad-missing-start.csv" file-sep="," defaultView="week" height="420px" >}}toastui: events file /home/runner/work/quarto-toastui/quarto-toastui/data/bad-missing-start.csv is missing required columns: start
3.2 Missing critical column title
- A styled error box is shown in the output document
- Error reports missing required column
title - No terminal errors are shown
Show code
{{< toastui file="data/bad-missing-title.tsv" file-sep="\t" defaultView="month" height="420px" >}}toastui: events file /home/runner/work/quarto-toastui/quarto-toastui/data/bad-missing-title.tsv is missing required columns: title
3.3 Empty file
- A styled error box is shown in the output document
- Error reports empty events file
- No terminal errors are shown
Show code
{{< toastui file="data/bad-empty.tsv" file-sep="\t" defaultView="week" height="420px" >}}toastui: events file is empty: /home/runner/work/quarto-toastui/quarto-toastui/data/bad-empty.tsv
3.4 File does not exist
- A styled error box is shown in the output document
- Error reports that the file cannot be opened
- No terminal errors are shown
Show code
{{< toastui file="data/does-not-exist.tsv" file-sep="\t" defaultView="week" height="420px" >}}toastui: cannot open events file: /home/runner/work/quarto-toastui/quarto-toastui/data/does-not-exist.tsv
3.5 Multiple bad rows (list output)
- A styled error box is shown in the output document
- Multiple validation messages are shown as a list
- No terminal errors are shown
Show code
{{< toastui file="data/bad-multiple-row-errors.csv" file-sep="," defaultView="week" height="420px" >}}- toastui: event #1 from /home/runner/work/quarto-toastui/quarto-toastui/data/bad-multiple-row-errors.csv is missing required field 'end'
- toastui: event #2 from /home/runner/work/quarto-toastui/quarto-toastui/data/bad-multiple-row-errors.csv is missing required field 'title'
- toastui: event #3 from /home/runner/work/quarto-toastui/quarto-toastui/data/bad-multiple-row-errors.csv is missing required field 'start'
3.6 File without header row
- A styled error box is shown in the output document
- Error reports missing required columns (
title,start,end) - No terminal errors are shown
Show code
{{< toastui file="data/bad-no-header.tsv" file-sep="\t" defaultView="week" height="420px" >}}toastui: events file /home/runner/work/quarto-toastui/quarto-toastui/data/bad-no-header.tsv is missing required columns: title, start, end