Omahub
← All plugins
A

Calendar Agenda

by Alex Inslee

A private, read-only Google Calendar agenda with guided account setup.

Security review

Potentially dangerous behavior detected · 2 findings

Deterministic scan — not a security guarantee

High
Risk level
High
Analyzed commit
4460c2e
Scanned
1 month ago

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
4460c2e
Reviewed
1 month ago

The plugin bundles systemd user units for periodic calendar sync, which is a legitimate feature rather than hidden persistence. The code is well-structured, uses standard library only, no shell execution, and follows security best practices (PKCE, Secret Service, hardened units). The deterministic scan flagged the systemd units as high risk, but they are a normal part of a calendar widget's functionality.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/alexinslc/omarchy-calendar-agenda --enable
Productivity #bar #quickshell

Calendar Agenda

A read-only Google Calendar agenda for the Omarchy bar. Click the calendar icon to see your day, week, or month without opening a browser. The panel follows your active Omarchy theme.

Tokyo Night · Week Catppuccin Latte · Day Matte Black · Month
<img src="https://omarchy.alexinslc.com/assets/tokyo-night-week.png" alt="Calendar Agenda showing the week under Tokyo Night" width="280"> <img src="https://omarchy.alexinslc.com/assets/catppuccin-latte-day.png" alt="Calendar Agenda showing the day under Catppuccin Latte" width="280"> <img src="https://omarchy.alexinslc.com/assets/matte-black-month.png" alt="Calendar Agenda showing the month under Matte Black" width="280">

Watch the 13-second demo · Plugin website · Privacy policy

Install

omarchy plugin add https://github.com/alexinslc/omarchy-calendar-agenda.git --enable

Open the new calendar icon and choose Connect Google Calendar. Approve read-only access in your browser, then return to the panel. The first sync runs automatically and refreshes every 15 minutes.

Calendar Agenda uses only components already included with Omarchy. It does not install third-party Python modules, npm packages, or privileged services.

Features

  • Day, week, and month agenda views
  • Multiple Google accounts and calendar filters
  • All-day and timed events with optional calendar and location details
  • 12- or 24-hour time
  • Theme-aware colors, borders, and typography
  • Keyboard shortcuts: D, W, M, T, [ and ]
  • Clear sync status and reconnect controls

The synchronized window covers today through the next 28 days.

Accounts

Add another account from Settings → Add account.

To disconnect one, choose Remove beside the account. Calendar Agenda revokes its Google access, removes its stored credential, and purges that account's local events. If Google is unavailable, Remove locally anyway cleans up the local credential and cache without remote revocation.

Remove connected accounts before uninstalling the plugin.

Privacy

  • Google access is limited to openid/email identity plus calendar-list and event read-only scopes.
  • Sign-in happens in the system browser using PKCE.
  • Refresh tokens are stored in Linux Secret Service.
  • Calendar data stays in private local files on your computer.
  • The project does not operate a server that receives your Google account, calendars, events, authorization codes, or tokens.

See the Privacy Policy and Security Policy for details.

Diagnostics

Run these from the installed plugin directory:

python3 calendar_agenda.py --status
python3 calendar_agenda.py --doctor
python3 calendar_agenda.py --sync --json

Uninstall

After removing connected accounts:

omarchy plugin remove io.github.alexinslc.calendar-agenda

Development

omarchy plugin validate .
python3 -m unittest discover -s tests -v
timeout 5s env QT_QPA_PLATFORM=offscreen quickshell -p model_test.qml

The Quickshell test is successful when it prints agenda model tests passed; the timeout is expected because the test configuration has no quit handler.

For local OAuth development, copy oauth-client.example.json to ~/.config/omarchy/calendar-agenda/config.json, add credentials from a private Google Cloud Desktop client, and set the file mode to 0600.

License

MIT