Test

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.3 Week view no navigation

  • Calendar opens in week view
  • Milestone/task/allday panels are hidden (taskView: false, eventView: [time])
  • Month/week/day buttons are hidden (custom navigation disabled)
Show code
---
toastui:
  options-week-time-only-no-buttons:
    defaultView: week
    navigation: false
    isReadOnly: false
    date: "2026-04-17"
    file: data/events.csv
    file-sep: ","
    week:
      eventView:
        - time
      taskView: false
    calendars:
      - id: cal1
        name: Personal
        backgroundColor: "#03bd9e"
      - id: cal2
        name: Work
        backgroundColor: "#00a9ff"
---

{{< toastui options-week-time-only-no-buttons >}}

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

Title Location Date State Private Public Close Attendees Edit Delete Arrow up Milestone Arrow left Arrow right Vertical handle Unchecked Checked Dropdown Dropdown open Detail location Detail state Recurrence Resize handle

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: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

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.hourEnd are 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-sep is 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