A compact calendar for the GNOME panel, inspired by Itsycal for macOS. Click the panel badge for a small month calendar with an agenda of your upcoming events, using the calendars GNOME already knows about (GNOME Calendar and Online Accounts such as Google). - Create, edit, search and delete events right from the panel, including quick-add from a one-liner like "Lunch tomorrow 12pm at Cafe Nero" - One-click join buttons and an optional countdown for video meetings - Live world clocks with the offset from your home time zone - Week numbers, pinning, Itsycal-style keyboard shortcuts and plenty of appearance options Clipboard: an agenda event's right-click menu has a "Copy" action that copies the event's details to the clipboard.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-005 manual_review
extensions should not access the clipboard directly
Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.
calendarWidget.js:1554
St.Clipboard.get_default()
Here are the fix/updates for this submission: Fix: gnome-shell crashed on logout/shutdown while Litsycal was enabled The Shell doesn't disable extensions before it exits. That left the Evolution Data Server ESourceRegistry to be freed by the last garbage collection during GJS teardown. Freeing the registry drains the main context that was active when it was created. At that point the drain ran one of GJS's internal sources, which has no callback, and gnome-shell segfaulted. Fix: the registry is now created on its own private GLib.MainContext, so freeing it can only ever drain that context, never the Shell's. The private context is driven from the Shell's main loop by a timer. Both timers are removed in destroy(), and the handlers are disconnected on disable as usual. No run_dispose() is used. Updates - Event start and end times are typed instead of picked from a fixed half-hour list, so any minute works. This adds a new module, timeInput.js. - The event form's time zone preview shows each meeting's full start-to-end span in every zone. Small fixes - The event form could fail to close when nothing had keyboard focus. - The search panel now repositions itself when its results arrive, so they no longer run off the screen. - A pinned calendar is height-capped to the screen, so its footer stays reachable. - The dark and calendar-page badge styles are now visible on the default black top bar. - Events stored in plain UTC no longer show an "Originally scheduled in UTC" note. - A shortened Preferences subtitle, so the value next to it is no longer truncated. As always, thank you!
Timeout should be removed before creating a new one (line 120 `calendarManager.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources)