Skip to main content

A simple and lightweight GoogleCalendar notifier for Linux

Project description

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. Note: this section was copied and pasted from the gcsa README.

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

  2. Configure the OAuth consent screen

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

  4. 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), 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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcal_notifier-1.1.7.tar.gz (209.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gcal_notifier-1.1.7-py3-none-any.whl (210.1 kB view details)

Uploaded Python 3

File details

Details for the file gcal_notifier-1.1.7.tar.gz.

File metadata

  • Download URL: gcal_notifier-1.1.7.tar.gz
  • Upload date:
  • Size: 209.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.7 Linux/6.16.8-arch3-1

File hashes

Hashes for gcal_notifier-1.1.7.tar.gz
Algorithm Hash digest
SHA256 2365869a5d3fd572e3cedc05deeac2d4c764cd6ab82d95c8a5496e48a040c343
MD5 32d10ad32eba7d71eac79a9c0843eefd
BLAKE2b-256 f1be56796fe13170bd14d69c3e2239876162e6304dedaabe968d653e76a0c5d8

See more details on using hashes here.

File details

Details for the file gcal_notifier-1.1.7-py3-none-any.whl.

File metadata

  • Download URL: gcal_notifier-1.1.7-py3-none-any.whl
  • Upload date:
  • Size: 210.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.7 Linux/6.16.8-arch3-1

File hashes

Hashes for gcal_notifier-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 62887bdcf8e00da085a8d49aa19464402d10c0afd687044f3da7b7e72e772d27
MD5 dfb75d2872c18a9b43a08292c48f401c
BLAKE2b-256 37a3839ee60a574b896a877c6db94657a0beb3501a2d9d2fbe5abbfead6b3130

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page