An applet to show your next meetings with Gnome Online Accounts
- Use Gnome Online Account for calendar sources.
- Make it easy to know how long you have until your next meeting.
- Detect video conference URLs allow to quickly click on it to join (Google Meet, Zoom, Bluejeans, supported).
- Shows the documents link attached to the current meeting.
- Change icons 5mn before and after meeting.
- Fully configurable.
sudo add-apt-repository ppa:chmouel/gnome-next-meeting-applet
sudo apt-get -y install gnome-next-meeting-applet
You first need to install this gnome extension to get appindicator-support, when this is installed you can simply do :
dnf copr enable chmouel/gnome-next-meeting-applet
dnf install gnome-next-meeting-applet
Just install the package from AUR with your favourite aur installer (ie: yay)
It depends on the
gnome-shell-extension-appindicator
extension package so you won't have to do a manual instal here. Just make sure to logout/relogin to your gnome desktop and enable the appindicator gnome-extension via the "gnome-extensions-app"
All calendars are configured directly in Gnome Online Account setting, it will grab the events from there. Here is some instructions on how to setup your online calendars in Gnome :
https://help.gnome.org/users/gnome-help/stable/accounts.html.en
By default it will get all events from all calendars you are subscribed to, unless you are configuring
the restrict_to_calendar
variable in the config.yaml
file. (see below).
The applet can be configured with a config.yaml yaml located in your
$XDG_CONFIG_HOME/gnome-next-meeting-applet/config.yaml
. It gets created
automatically with default value at startup if you don't have one already.
A sample file is located here: config.sample.yaml.
Settings:
- default_icon: The default icon when showing each meeting (default: ‣)
- event_organizers_icon: A map between a regexp matching the organizer to an icon. This allows you to easily differentiate certain type of meetings like the one from your team or colleagues.
- title_match_icon: A map between a regexp matching a tytle to an icon. This allows you to easily differentiate certain type of meetings by titles, like the recurring videogame break you are ought to deserve for your hard work.
- max_results: Max results to ask to google calendar api.
- skip_non_accepted: Skip the calendar events that you didn't accept, you
need to configure
my_emails
setting for that. - skip_non_confirmed: Skip calendar events that are not confirmed.
- skip_all_day: Skip all day events.
- starts_today_only: Skip all but today events.
- my_emails: A list of email addresses.
- restrict_to_calendar: Restrict to some calendar, by default it shows event from all calendars.
- title_max_char: The maximum length of the title
- change_icon_minutes: Before the meeting x minutes before the event we will change the icon to gently remind you to connect.
- calendar_day_prefix_url: The prefix URL for the day in the web calendar when clicking, by default this goes to google calendar URL.
- strip_title_emojis: wether removing the emojis from title when showing in the menubar, so to keep the panel clean
Default icons are customizatble too:
- icon_default_path: the default icon, it will use the icon "x-office-calendar-symbolic" from gnome theme by default.
- icon_in_event_path: the icon when in event, it will show a colored calendar icon by default.
- icon_before_event_path: an icon just before an event to show something is coming up.
If you install your application via Flatpak, you will need to create autostart entry manually. The easiest way to do this is to use gnome-tweaks and add the Next meeting applet in the "Startup Applications" tab.
If you have access to it, there is a setting menu in the applet to add an autostart file to autostart it when gnome launch or you can launch it manually from the Gnome overview application launcher thingy.
Works with Gnome as long you have this appindicator applet (which is by default on Ubuntu*)
If you don't run on Gnome you need to make sure to first run the goa-daemon, for example on my arch system :
/usr/lib/goa-daemon --replace &
(binary path may vary by distros, see this bugzilla bug as well #1340203)
If your "launcher/panel/bar" (like xfce, kde, polybar, waybar, i3bar etc..) supports trays icons then it would show the icon which you can click on it to see the full list of meetings. Usually you would not be able to see the text directly on the panel/bar, to do this you can use the dbus interface.
You have a dbus interface to integrate with a so called "panel" or bars that doesn't support the full appindicator specification like the gnome extensions does. Using the cli you can access that dbus interface to get to show your next meeting :
$ gnome-next-meeting-applet dbus get_event
1 hour, 5 minutes -- New Meeting
You can as well have it to open the next/current event url :
gnome-next-meeting-applet dbus open_event_url
which you can bind to a key in your Windows Manager or Gnome/KDE to quickly go to your meeting Video Conference URL.
An example of a custom module for Waybar :
"custom/gnma": {
"format": " {} ",
"interval": 5,
"exec": "gnome-next-meeting-applet dbus get_event",
"exec-if": "pgrep -f gnome-next-meeting-applet",
"max-length": 50,
"min-length": 1,
"on-click": "gnome-next-meeting-applet dbus open_event_url",
},
my sway/waybar config looks like this screenshot below and is located here :
there is more room to improvements here to integrate with other "bars".
- This package was created with
Cookiecutter
and theaudreyr/cookiecutter-pypackage
project template. - Originally inspired from the gnome next meeting argos based extension.
- Used for a while the OSX application gnome-next-meeting https://apps.apple.com/us/app/next-meeting/id1017470484?mt=12 and missed it on Linux.
- Originally used code from @GabLeRoux for evolution calendar integration - https://askubuntu.com/a/1371087
- Used code from cinnamon calendar server code https://github.com/linuxmint/cinnamon/blob/fc57426d44c0f5a31fe29f268a15e9928e8b6a14/calendar-server/cinnamon-calendar-server.py and adapted from gnome-shell calendar-server https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main/src/calendar-server