omarchy-shell plugin

omarchy-agenda

Today's agenda from several Google accounts in the Omarchy bar — and one click to join the meeting that is starting.

1 2 3 4 5 Product team daily · 21 min
Rendering of the interface, with example events. The highlighted row is the meeting in progress; the icon on the right joins the call.

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.

  1. Create a project and enable the Google Calendar API.
  2. Set the consent screen to External and create a credential of type Desktop app.
  3. Download the JSON and run omarchy-agenda setup --from ~/Downloads/client_secret_*.json.
  4. Run omarchy-agenda login once 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

In the bar
left clickopens and closes the agenda popup
middle clickjoins the meeting in progress, or the next one
right clickrefreshes now
In the popup
↑ ↓move through the events
enterjoins the selected meeting
jjumps to the current meeting
rrefreshes
oopens the event in Google Calendar

Privacy

Read-only scope
The app asks for calendar.readonly and 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/, mode 600 inside a 700 directory. 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.