Skip to content
alexjoedtPublic

About

Simple google calendar daemon

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Meetbar

Google Calendar meeting reminders for Noctalia shell, backed by a small Go daemon.

  • Daemon (meetbard) OAuth, Calendar API sync, alert thresholds, Unix socket IPC
  • CLI (meetbarctl) status, login, upcoming, today, sync, alerts
  • Plugin bar countdown, agenda panel, Noctalia notifications

Install (daemon + CLI)

go build -o ~/.local/bin/meetbarctl ./cmd/meetbarctl
go build -o ~/.local/bin/meetbard ./cmd/meetbard

mkdir -p ~/.config/systemd/user
cp systemd/meetbard.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now meetbard

Google OAuth credentials

Create a Desktop OAuth client in Google Cloud (enable Calendar API), then either:

mkdir -p ~/.config/meetbar
cp credentials.example.json ~/.config/meetbar/credentials.json
# edit client_id / client_secret

or build with embedded credentials:

go build -ldflags "-X github.com/alex/meetbar/internal/auth.embeddedClientID=... -X github.com/alex/meetbar/internal/auth.embeddedClientSecret=..." \
  -o ~/.local/bin/meetbarctl ./cmd/meetbarctl

Env overrides: MEETBAR_CLIENT_ID, MEETBAR_CLIENT_SECRET, MEETBAR_CREDENTIALS.

Login

meetbarctl login
meetbarctl upcoming
meetbarctl status --json

Config

~/.config/meetbar/config.toml (all optional):

warn_minutes     = [15, 5, 0]
sync_interval    = "2m"
horizon          = "24h"
notify_path      = "noctalia"   # noctalia | daemon | both
calendar_filter  = "primary"    # primary | owned | all
# calendars      = ["primary"]  # optional explicit IDs; ["*"] = all

calendar_filter default is primary (only your main calendar). Use owned for calendars you own/write, or all for every subscribed calendar (holidays, shared, etc.).

  • Token: ~/.local/share/meetbar/token.json (0600)
  • Socket: $XDG_RUNTIME_DIR/meetbar/meetbar.sock

Noctalia plugin

The plugin ships two builds:

Path Shell
plugin/v4/ Noctalia v3/v4 (QML + manifest.json)
plugin/v5/ Noctalia v5 (Luau + plugin.toml)

v4 (current Noctalia / Quickshell)

mkdir -p "$HOME/.config/noctalia/plugins"
ln -sfn "$(pwd)/plugin/v4" "$HOME/.config/noctalia/plugins/meetbar"

Enable Meetbar in Noctalia settings, place the bar widget, open the panel to connect (or use meetbarctl login).

v5

mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/noctalia/plugins"
ln -sfn "$(pwd)/plugin/v5" "${XDG_DATA_HOME:-$HOME/.local/share}/noctalia/plugins/meetbar"

CLI

meetbarctl serve                 # foreground daemon
meetbarctl status [--json]
meetbarctl login | logout
meetbarctl upcoming [--hours 12]
meetbarctl today                     # today's meetings, including finished ones
meetbarctl sync                      # force Google Calendar pull
meetbarctl alerts poll | ack <key>...
meetbarctl calendars

Development

go test ./...
go run ./cmd/meetbarctl serve

About

Simple google calendar daemon

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages