- β¨ Live now-line and progress bars β see what's happening at a glance
- π Weekly view with all 7 days and 24 hours, smooth scrolling
- π Recurring events β daily, weekly, weekdays, custom RRULE
- π Native GNOME notifications with configurable lead time
- βοΈ Two-way Google Calendar sync
- π¨ Native libadwaita design β looks at home on GNOME
- β‘ Lightweight β ~60 MB RAM idle (vs. 300+ MB for Electron alternatives)
- β¨οΈ Full keyboard shortcuts
- π Light and dark mode support
Coming soon. Track progress in issue #1.
This is the cleanest way to run WeekPlan. It installs into an isolated sandbox with all dependencies bundled.
1. Install prerequisites
Ubuntu / Debian
sudo apt install flatpak flatpak-builder
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//49 org.gnome.Sdk//49Fedora
sudo dnf install flatpak flatpak-builder
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//49 org.gnome.Sdk//49Arch
sudo pacman -S flatpak flatpak-builder
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//49 org.gnome.Sdk//492. Clone, build, and run
git clone https://github.com/sssurendra99/weekplan.git
cd weekplan
make flatpak-build # builds and installs locally (~2 min first time)
make flatpak-runSubsequent builds are cached β only changed modules are rebuilt.
To uninstall:
flatpak uninstall com.weekplan.appUse this if you want to hack on the code. PyGObject must come from your system package manager β it cannot be installed via pip.
1. Install system dependencies
Ubuntu / Debian
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 \
python3-full libgirepository1.0-devFedora
sudo dnf install python3-gobject python3-gobject-devel gtk4 libadwaita \
gobject-introspection-develArch
sudo pacman -S python-gobject gtk4 libadwaita2. Create a venv that can see system packages
PyGObject is installed system-wide, so the venv needs --system-site-packages:
git clone https://github.com/sssurendra99/weekplan.git
cd weekplan
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
pip install -e ".[dev]"3. Run
.venv/bin/python -m weekplanOr with the venv active:
python -m weekplan- Press Ctrl+N to add an event.
- Use β β to navigate weeks, Ctrl+T to jump to today.
- Press F5 to sync with Google Calendar.
- Connect your Google account in Settings to enable sync (see docs/GOOGLE_SETUP.md).
| Action | Shortcut |
|---|---|
| New event | Ctrl+N |
| Today | Ctrl+T |
| Previous week | β |
| Next week | β |
| Sync | F5 |
| Quit | Ctrl+Q |
| Open shortcuts dialog | Ctrl+? |
| Light mode | Dark mode |
|---|---|
![]() |
![]() |
Contributions of all sizes are welcome β bug reports, feature suggestions, documentation, translations, and code. Start with CONTRIBUTING.md, or browse good first issues if you're looking for a place to start. Have a question or idea? Open a Discussion.
- Week view
- Recurring events
- Notifications
- Google Calendar sync
- Month view
- Multiple calendars with toggleable visibility
- iCal import/export
- CalDAV support (Nextcloud, Fastmail)
- Natural language quick-add ("lunch with Sara tomorrow 1pm")
- Translations (i18n)
Python Β· GTK4 Β· libadwaita Β· SQLite Β· python-dateutil Β· Google Calendar API Β· β€οΈ for the GNOME desktop
MIT Β© 2026 Sumal Surendra. See LICENSE for details.
Inspired by GNOME Calendar. Built on the shoulders of the libadwaita and PyGObject teams. Thanks to every contributor who files an issue or sends a PR.

