What it does
Several accounts, one list
Each Google account brings in its visible calendars, and the day shows up in chronological order — not one tab per account.
Join in one click
Clicking the row opens the call: Meet, Zoom, Teams, Webex and friends, taken from the event's conference field or dug out of the invite description.
Under the right account
Google links carry authuser=<account>, so the meeting opens under the account that owns the invite even with several signed in to the browser.
No dependencies
The QML only draws; what talks to Google is a pure stdlib Python helper. No pip, no AUR, no daemon.
Install
# the plugin is a git repository with manifest.json at its root omarchy plugin add https://github.com/esasse/omarchy-agenda.git --enable --yes # the CLI in a terminal (the popup uses an absolute path and needs none of this) ln -sf ~/.config/omarchy/plugins/esasse.agenda/bin/omarchy-agenda ~/.local/bin/omarchy-agenda
The widget lands in the bar's right section; move it with omarchy bar move esasse.agenda --section left. Editing the QML afterwards needs omarchy restart shell.
Connect your accounts
The plugin uses an OAuth client of your own, created once in Google Cloud — no credential ships inside the code.
- Create a project and enable the Google Calendar API.
- Set the consent screen to External and create a credential of type Desktop app.
- Download the JSON and run
omarchy-agenda setup --from ~/Downloads/client_secret_*.json. - Run
omarchy-agenda loginonce per account.
While the app stays in Testing mode in the Console, Google expires the authorization every 7 days and login has to be repeated; publishing the app removes that expiry.
How to use it
| left click | opens and closes the agenda popup |
|---|---|
| middle click | joins the meeting in progress, or the next one |
| right click | refreshes now |
| ↑ ↓ | move through the events |
|---|---|
| enter | joins the selected meeting |
| j | jumps to the current meeting |
| r | refreshes |
| o | opens the event in Google Calendar |
Privacy
- Read-only scope
- The app asks for
calendar.readonlyand the account's e-mail. It never creates, changes or deletes events. - Everything stays on the machine
- Client secret, refresh tokens and the day's cache live in
~/.local/share/omarchy-agenda/, mode600inside a700directory. There is no server in between: the helper talks straight to Google's API. - Nothing is shared
- No calendar data is sent to third parties, and the project has no telemetry. To revoke, use
omarchy-agenda logout <account>or your Google Account's permissions page.