{"id":15442782,"url":"https://github.com/thalesnunes/gcal_notifier","last_synced_at":"2025-03-28T07:25:49.012Z","repository":{"id":44771185,"uuid":"391645597","full_name":"thalesnunes/gcal_notifier","owner":"thalesnunes","description":"A Google Calendar notification service, focused on Linux desktops.","archived":false,"fork":false,"pushed_at":"2024-02-29T16:52:34.000Z","size":309,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T09:37:55.671Z","etag":null,"topics":["calendar","google","notification","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thalesnunes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-01T14:11:54.000Z","updated_at":"2024-12-27T17:21:48.000Z","dependencies_parsed_at":"2024-12-07T12:40:46.814Z","dependency_job_id":"2ba4ee68-1460-4a49-945e-2cceaa1f550c","html_url":"https://github.com/thalesnunes/gcal_notifier","commit_stats":{"total_commits":112,"total_committers":1,"mean_commits":112.0,"dds":0.0,"last_synced_commit":"dd81537e572d9cbbb9380b864692533007ac5236"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thalesnunes%2Fgcal_notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thalesnunes%2Fgcal_notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thalesnunes%2Fgcal_notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thalesnunes%2Fgcal_notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thalesnunes","download_url":"https://codeload.github.com/thalesnunes/gcal_notifier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245986672,"owners_count":20705247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar","google","notification","python"],"created_at":"2024-10-01T19:30:04.763Z","updated_at":"2025-03-28T07:25:48.993Z","avatar_url":"https://github.com/thalesnunes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SimpleGCalendarNotifier\n\n### A simple and lightweight GoogleCalendar notifier for Linux\n\nThis app is focused on giving versatility and simplicity, and present a\nvery lightweight command-line application that reminds you of your events\nin Google Calendar.\n\nThe project was inspired by [gcalcli](https://github.com/insanum/gcalcli),\nand looking for more bare-bones features and that could handle multiple\nGoogle accounts and calendars.\n\nInstallation\n------------\n\nFor now, this package is only available through [PyPi](https://pypi.org/)\n\n### Install from PyPi\n```sh\npip install gcal_notifier\n```\n\nFeatures\n--------\n\n- Fetch Google events from all accounts\n- Notify events\n- Uses Cron jobs to keep everything as minimal as possible\n\nUsage\n-----\n\n```sh\ngcal_notifier --help\nusage: gcal_notifier [-h] {get,notify,print} ...\n\nA simple and lightweight GoogleCalendar notifier for Linux.\n\npositional arguments:\n  {get,notify,print}  Invoking a subcommand with --help prints subcommand usage.\n    get               fetch events from Google Calendar and save them in cache.\n    notify            run reminders with cached events.\n    print             print events to the console.\n\noptions:\n  -h, --help          show this help message and exit\n```\n\n### Credentials\n\nFor all of this to work, you have to create your credentials for each account\nyou want to use.\nNote: this section was copied and pasted from the [gcsa](https://google-calendar-simple-api.readthedocs.io/en/latest/getting_started.html) README.\n\n1. Create a new [Google Cloud Platform (GCP) project](https://developers.google.com/workspace/guides/create-project)\n\n2. Configure the [OAuth consent screen](https://developers.google.com/workspace/guides/create-credentials#configure_the_oauth_consent_screen)\n\n3. [Create a OAuth client ID credential](https://developers.google.com/workspace/guides/create-credentials#create_a_oauth_client_id_credential)\nand download the `credentials.json` file\n\n4. Put downloaded `credentials.json` file into `~/.config/gcal_notifier/default`\n\nSee more options in [Authentication](https://google-calendar-simple-api.readthedocs.io/en/latest/authentication.html#authentication).\n\nNote:\n\nOn the first run, your application will prompt you to the default browser to get permissions from you to use your calendar.\nThis will create token.pickle file in the same folder.\n\nSetting Up\n----------\n\nAfter having your `credentials.json` file(s), you can run `gcal_notifier get`\nto see if everything works properly.\n\nIf it does, it's time to set up your cron jobs.\n\n1. Run `crontab -e` to edit your cron jobs.\n\n2. Choose the intervals that you want to run `get` and `remind`. This means\nthat you can fetch events in a different interval that you check for reminders.\nMy personal preference, for example, is:\n```sh\n*/10 * * * *  gcal_notifier get\n* * * * *  gcal_notifier remind\n```\nSo it runs every 10 minutes to fetch events, but looks for reminders every minute.\n\nThat's it! You're all set up!\n\nConfiguration\n-------------\n\nYou can configure some things for now (and hopefully more later), and all the\nconfigurations are done in a file that sits in `~/.config/gcal_notifier/config.ini`\n\nA sample of every configuration supported is:\n```ini\n[GENERAL]\n# Returns only one event for recurrent events. Default is true\nsingle_events = true\n# How to order the events. Default (and recommended) is startTime\norder_by = startTime\n# Custom notification sound, if you would like to choose (it has to be a wav file).\nnotification_sound = ~/Music/my_notification.wav\n\n[CALENDAR1]\n# Name given to the calendar. Default is 'Calendar'\nname = NAME1\n# Name or ID of the calendar. Required.\ncalendar = example@gmail.com\n# Reminders to your events, up to 5 integers separated by commas. Default is None\ndefault_reminders = 10,0\n# Path to the credentials file. Default is ~/.config/gcal_notifier/credentials.json\n# credentials = ~/.config/gcal_notifier/credentials_file.json\n\n[CALENDAR2]\nname = NAME2\ncalendar = xxxxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com\ndefault_reminders = 10,0\ncredentials = ~/.config/gcal_notifier/credentials_other_account.json\n\n[CALENDAR3]\nname = NAME3\ncalendar = other@gmail.com\n.\n.\n.\n```\n\n## Help wanted!\n\nIf you find this project useful, please feel free to contribute or report an issue.\nYou can always email me as thalesaknunes22@gmail.com\n\n### Happy Coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthalesnunes%2Fgcal_notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthalesnunes%2Fgcal_notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthalesnunes%2Fgcal_notifier/lists"}