Yoman – A KDE Calendar Widget Inspired by Calendr

hparadiz1 pts0 comments

GitHub - hparadiz/yoman: Menu bar calendar for KDE Plasma · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

hparadiz

yoman

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>1 Commit<br>1 Commit

plasma/org.yoman.Yoman

plasma/org.yoman.Yoman

screenshots

screenshots

scripts

scripts

.gitignore

.gitignore

CMakeLists.txt

CMakeLists.txt

LICENSE

LICENSE

README.md

README.md

View all files

Repository files navigation

yoman

יומן (yomán) = diary, journal, planner, agenda.

A KDE Plasma 6 calendar panel widget. It lives in the panel showing the date, and opens a<br>popup with a month grid and the day's events. It reads your existing calendars - Google<br>Calendar (through KDE Online Accounts) and anything KOrganizer already syncs - and brings<br>upcoming events to your attention with notifications and an optional full-screen alert.

yoman is view-only by design: it shows what is coming up and links out to where each event<br>actually lives. It does not create, edit, or delete events - those changes happen at the<br>source (Google Calendar's own apps, KOrganizer, etc.) and show up here on the next refresh.

Features

Panel widget with a configurable date/icon and an optional next-event status display.

Popup with a month grid, per-day event dots colored per calendar, and day navigation.

Scrollable event list with all-day and timed events, recurrence indicators, declined and<br>past-event filtering, and in-progress state.

Event details popup: time, location, description, attendees with response status, and<br>Join / Open actions for meeting and event links.

Desktop notifications a fixed lookahead before an event starts (via notify-send).

Optional full-screen alert for an in-progress event (opt-in in settings).

Right-click "Calendars" menu to toggle the visibility of individual calendars.

Settings window: General, Appearance, Calendars, Shortcuts, and About tabs. Settings<br>expose only controls that are actually wired.

Localized and locale-aware, designed for longer translated strings and RTL layouts.

Calendar sources

Both sources are read-only (pull-only).

Google Calendar - added through KDE's own System Settings > Online Accounts, which<br>handles the browser consent and stores credentials in KWallet via<br>libsignon-qt6 / accounts-qt6. yoman never runs its own OAuth flow; the bundled<br>google-token helper silently asks signond for an access token from the<br>already-authorized identity. Every calendar the account can see (primary, shared,<br>holidays, etc.) is discovered automatically.

KOrganizer / Akonadi - optional. The bundled korganizer-calendar helper reads<br>events directly out of Akonadi, so whatever KOrganizer is already set up to sync (local<br>.ics, CalDAV, Exchange, and so on, via its own resources) shows up here without yoman<br>needing a client for any of those protocols.

Google in a restricted organization

yoman relies entirely on KDE's OAuth2 integration for Google. It asks signond for a token<br>from the account you added in System Settings > Online Accounts and never requests scopes of<br>its own. KDE requests one bundled set of scopes for the whole Google provider, defined in the<br>provider file:

/usr/share/accounts/providers/kde/google.provider

That same file also defines the OAuth2 ClientId - the application identity Google sees on<br>the consent screen and in an admin's app-access controls. It is KDE's own registered Google<br>client, shared by every KDE app that uses a Google account; yoman neither has nor registers a<br>client id of its own, so whichever client id is in this file is the one yoman authenticates<br>under. Changing it (or the scopes) here changes it for yoman too.

By default that bundle is broad - alongside basic profile/email it currently asks for<br>calendar, tasks, contacts, and YouTube...

yoman calendar google event settings accounts

Related Articles