diff --git a/config/dot/quickshell/services/CalendarAgenda.qml b/config/dot/quickshell/services/CalendarAgenda.qml index a9e334d..0d49db2 100644 --- a/config/dot/quickshell/services/CalendarAgenda.qml +++ b/config/dot/quickshell/services/CalendarAgenda.qml @@ -169,7 +169,9 @@ Singleton { function openCalendar(date: date): void { const target = date && !Number.isNaN(date.getTime()) ? date : root.selectedDate; - Quickshell.execDetached(["gnome-calendar", "--date", root.dateKey(target)]); + // GNOME Calendar passes this value to g_date_time_new_from_iso8601(), + // which requires a time and timezone rather than a bare YYYY-MM-DD. + Quickshell.execDetached(["gnome-calendar", "--date", target.toISOString()]); } function join(event: var): void { diff --git a/tests/quickshell/calendar-agenda-contract.sh b/tests/quickshell/calendar-agenda-contract.sh index 2677681..21e7e2a 100755 --- a/tests/quickshell/calendar-agenda-contract.sh +++ b/tests/quickshell/calendar-agenda-contract.sh @@ -48,6 +48,8 @@ for component in AgendaPane AgendaEvent NotificationSummary; do rg -q "${component} 1.0 ${component}.qml" config/dot/quickshell/modules/datemenu/qmldir \ || fail "$component is not registered" done +rg -q 'gnome-calendar.*--date.*toISOString' config/dot/quickshell/services/CalendarAgenda.qml \ + || fail 'GNOME Calendar date handoff is not a complete ISO-8601 timestamp' qs ipc call calendar-agenda fixture upcoming >/dev/null jq -e '.capsuleVisible == true and .capsuleText == "12m"' \