Skip to main content

SimpleGCalendarNotifier

A simple and lightweight GoogleCalendar notifier for Linux

This app is focused on giving versatility and simplicity, and present a very lightweight command-line application that reminds you of your events in Google Calendar.

The project was inspired by gcalcli, and looking for more bare-bones features and that could handle multiple Google accounts and calendars.

Installation

For now, this package is only available through PyPi

Install from PyPi

pip install gcal_notifier

Features

  • Fetch Google events from all accounts
  • Notify events
  • Uses Cron jobs to keep everything as minimal as possible

Usage

gcal_notifier --help
usage: gcal_notifier [-h] {get,notify,print} ...

A simple and lightweight GoogleCalendar notifier for Linux.

positional arguments:
  {get,notify,print}  Invoking a subcommand with --help prints subcommand usage.
    get               fetch events from Google Calendar and save them in cache.
    notify            run reminders with cached events.
    print             print events to the console.

options:
  -h, --help          show this help message and exit

Credentials

For all of this to work, you have to create your credentials for each account you want to use. (N.B. Multiple calendars in the same account can share the same credentials.)

Note: this section was copied and pasted from the gcsa README.

  1. Create a new Google Cloud Platform (GCP) project

  2. Enable the Google Calendar API

  3. Configure the OAuth consent screen

  4. Click on “Audience”, and add yourself as a test user.

  5. Create a OAuth client ID credential and download the credentials.json file

  6. Put downloaded credentials.json file into ~/.config/gcal_notifier/default

See more options in Authentication.

Note:

On the first run, your application will prompt you to the default browser to get permissions from you to use your calendar. This will create token.pickle file in the same folder.

Setting Up

After having your credentials.json file(s), and configuration in place (see below), you can run gcal_notifier get to see if everything works properly.

If it does, it's time to set up your cron jobs.

  1. Run crontab -e to edit your cron jobs.

  2. Choose the intervals that you want to run get and remind. This means that you can fetch events in a different interval that you check for reminders. My personal preference, for example, is:

*/10 * * * *  gcal_notifier get
* * * * *  gcal_notifier remind

So it runs every 10 minutes to fetch events, but looks for reminders every minute.

That's it! You're all set up!

Configuration

You can configure some things for now (and hopefully more later), and all the configurations are done in a file that sits in ~/.config/gcal_notifier/config.ini

A sample of every configuration supported is:

[GENERAL]
# Returns only one event for recurrent events. Default is true
single_events = true
# How to order the events. Default (and recommended) is startTime
order_by = startTime
# Flag to define if the python package should play sound when notifying
notification_sound = true
# Custom notification sound, if you would like to choose (it has to be a wav file).
notification_sound_path = ~/Music/my_notification.wav

[CALENDAR1]
# Name given to the calendar. Default is 'Calendar'
name = NAME1
# Name or ID of the calendar. Required.
calendar = example@gmail.com
# Reminders to your events, up to 5 integers separated by commas. Default is None
default_reminders = 10,0
# Path to the credentials file. Default is ~/.config/gcal_notifier/credentials.json
# credentials = ~/.config/gcal_notifier/credentials_file.json

[CALENDAR2]
name = NAME2
calendar = xxxxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com
default_reminders = 10,0
credentials = ~/.config/gcal_notifier/credentials_other_account.json

[CALENDAR3]
name = NAME3
calendar = other@gmail.com
.
.
.

Help wanted!

If you find this project useful, please feel free to contribute or report an issue. You can always email me as thalesaknunes22@gmail.com

Happy Coding!

Metadata

Release files for gcal_notifier 1.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gcal_notifier 1.1.8
File Size Uploaded
gcal_notifier-1.1.8.tar.gz 246.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gcal_notifier 1.1.8
File Interpreter ABI Platform
gcal_notifier-1.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 456.8 kB

Release files / gcal_notifier-1.1.8.tar.gz

Download URL gcal_notifier-1.1.8.tar.gz
Size 246.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0600ab9f648ea57275b12cf562e2d13660bd7b02489f6c66884c87b876c68cce
BLAKE2b-256 checksum
How to use checksums
16e39c03b3d86767bcdae31b967b4ab8c70d5eb68243e266645c432abdc7aa48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gcal_notifier-1.1.8-py3-none-any.whl

Download URL gcal_notifier-1.1.8-py3-none-any.whl
Size 209.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6e735896449173cc738bd235aa343569b3789b14d9956a09985037345aea36d5
BLAKE2b-256 checksum
How to use checksums
6d07f6355a87019c91afde96b57c363136a30614638df1f69f6253b2b303312d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.1.8 This release

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page