Linux Mint add Google Calendar on your desktop

There is no doubt that Google Calendar is one of the most popular calendars. If you don't like the idea to open it each time in order to get information for your events for the week then you can simply add it to your desktop. It can be done in 5 minutes. You can see the steps in this article:

Video tutorial

This is the official page of the desklet:

Google Calendar

This is the description of this desklet:

View your upcoming calendar events on your Cinnamon Desktop. This desklet uses google-api-python-client to pull events from Google Calendar. You can configure every aspect of the desklet using the configure dialog.

Add google calendar to desktop

How to add google calendar to your Linux Mint desktop follow next steps (Tested it with Linux Mint 19, 20 , 21)

add google calendar desktop by terminal

sudo add-apt-repository ppa:slgobinath/gcalendar
sudo apt update
sudo apt install gcalendar

Note from the author:

Disclaimer: ppa:slgobinath/gcalendar and AUR gcalendar are my (the developer of this desklet) own repositories that are not monitored by the Linux Mint team, and user installs it at their own discretion.

Install from Python

We can install Google calendar desklet from Python pip command:

sudo apt install python3-pip python3-setuptools python3-dateutil python3-oauth2client python3-googleapi
pip3 install gcalendar

add google calendar desktop by UI

  1. Add Google Calendar desklet

    • Right click on your desktop
    • Add desklets
    • Download
    • Download "Google Calendar"
  2. Install dependencies using the following command:

sudo apt install python3-pip python3-setuptools python3-dateutil python3-oauth2client python3-googleapi
  1. Install Python modules using the following command(python-dateutil, google-api-python-client and oauth2client):
sudo pip3 install --upgrade python-dateutil google-api-python-client oauth2client

Authorize gcalendar on Linux

To Authorize Google calendar desklet on your Linux you need to run:

gcalendar

This will send a request to your default browser where you need to authorize the Google account. The link will be something like:

http://localhost:50815/?code=4/...

In case of success you should see this message:

The authentication flow has completed.

different Google account

You can copy the link from the default browser and use it to another one.
The browser should get a Google Authentication page asking for reading permission. Allow the "Cinnamon Google Calendar Desklet" to read your Google Calendar events.

List Google calendars

To list all Google calendar accounts on current Linux machine use:

gcalendar --list-calendars

Or list all calendars for a given account:

gcalendar --list-calendars --account username

You can find the user name on the image below:

multiple Google calendar accounts

To use multiple Google calendar accounts follow this steps:

  1. Type command:
gcalendar --account username
  1. Authorize the calendar
  2. Add new instance from the plus sign in Google Desklets
  3. Change the username on the newly added calendar
  4. You can manage the accounts from the top left arrows
  5. You can filter calendars by: "Fill in the list below with the names of all my calendars"

error on Calendar authorization

Note: If nothing happens(the screen just blinks) or there is a warning sign in the "Desklets" dialog, try to remove and add the desklet again.

If it doesn't work, a system restart may help the desklet to detect google-api-python-client.

Another way to solve the not working desklet is by running this command in terminal:

python3 ~/.local/share/cinnamon/desklets/googleCalendar@javahelps.com/py/google_calendar.py --list-calendars

If you see message like this:

Falling back to --noauth_local_webserver and continuing with
authorization.


Go to the following link in your browser:

	https://accounts.google.com/o/oauth2/auth?client_id=XXXXXX

Then you can visit the link in order to authorize the app to read events from your Google Calendar.

In case of success you will see your calendars like:

mymail@gmail.com
Contacts
Holidays in Bulgaria