Improved, human friendly calendar for Gnome Shell
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
human.experience ff294295e6 add error handling from disconnect methods 2 months ago
docs clean up popover 4 months ago
media update screenshot 4 months ago
sbin clean up popover 4 months ago
src add error handling from disconnect methods 2 months ago
.editorconfig complete extension at version 1 8 months ago
.eslintrc.json linting: enforce line length to 79 chars 7 months ago
.gitignore project structure: move extension under src/ folder 8 months ago
LICENSE complete extension at version 1 8 months ago
Makefile prefs: show version from metadata 4 months ago clean up popover 4 months ago

Calendar Improved

Improved, human friendly calendar



  • Show event time labels in “human”, with past and future verbiage. Supported languages include:
    • English
    • Translations welcome
  • Events
    • Disabling of event deletion [default]
    • Dimming past events [default]
      • configurable opacity [default]
    • Collapsed past event, only showing the title [default]
  • Badges
    • Show “In progress” badge for current events [default]
      • configurable background colour and text colour
      • optional theme support for colours
    • Show “Upcoming” badge for upcoming event [default]
      • configurable “minute before” interval [default: 30]
      • configurable background colour and text colour
      • optional theme support for colours
  • Icons
    • Show icons [default]
      • Show configurable contextual icons for different types of events [default]
        • In progress event
        • Today’s all day event
        • Todays past event
        • Past event
        • Past all day event
        • Future event
        • Future all day event


Gnome Shell

  • 3.28
  • 3.30
  • 3.32
  • 3.34


Gnome Extensions Site:


Click on the calendar.


Most features are configurable from the standard gnome extension preferences dialog.

Debugging and Development

If you encounter a problem you can enable the debug logs with:

dbus-send \
  --session \
  --type=method_call \
  --dest=org.gnome.Shell \
  /org/gnome/Shell \
  org.gnome.Shell.Eval string:"
  window.calendarImproved.debug = true;
  " \

Then tail the logs using:

journalctl \
  /usr/bin/gnome-shell \
  --follow \
  --output=cat \
| grep "\[calendar-improved\]" \

Development tool-chain

Most development tasks can be performed use included Makefile.

System prerequisites

Development can be done using nested Xorg Xephyr session + gnome-shell or directly forked off gnome-shell in Wayland.

Xephyr is available in most distributions, please use your package manager to install it.

Additionally Python 3 (>3.6) and NodeJS >= 11.x are used during development. Make sure they are installed as well using your package manager and available in the PATH


A handy Makefile bootstrap capable of handling most development, once above system prerequisites are installed. It’s strongly suggested you use the Makefile as it sets up a sandboxed Gnome Shell Extension development environment.

Set up development tooling using:

make develop

Now you can make the installed tooling available in your PATH by sourcing the generated This will also prepend your terminals BASH prompt with project name for easier recognition.

Activate the development environment:


Note: to restore your environment run:


To test extension in X use:

make x11

To test extension in Wayland use:

make wayland

To build the extension use:

make build

To build a distribution (zip archive) use:

make dist


Any code submission will need to be linted against standards in the repository. Project ESLint specifications are located in .eslintrc.json.

To lint code use:

make lint