{"id":16967888,"url":"https://github.com/skyf0l/epitech_to_google_calendar","last_synced_at":"2025-03-22T14:31:14.514Z","repository":{"id":40641354,"uuid":"345151582","full_name":"skyf0l/EPITECH_to_GOOGLE_calendar","owner":"skyf0l","description":"Synchronize your Epitech calendar with Google.","archived":false,"fork":false,"pushed_at":"2024-05-06T13:14:03.000Z","size":832,"stargazers_count":19,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T12:02:02.716Z","etag":null,"topics":["calendar","epitech","epitech-intra","google-calendar","google-calendar-api","google-calendar-synchronization","sync","synchronization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skyf0l.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-03-06T17:18:05.000Z","updated_at":"2025-02-19T15:20:06.000Z","dependencies_parsed_at":"2024-05-06T14:46:31.827Z","dependency_job_id":"c36e4200-a22f-4ffc-a0cd-17758e1bbfb3","html_url":"https://github.com/skyf0l/EPITECH_to_GOOGLE_calendar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyf0l%2FEPITECH_to_GOOGLE_calendar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyf0l%2FEPITECH_to_GOOGLE_calendar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyf0l%2FEPITECH_to_GOOGLE_calendar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyf0l%2FEPITECH_to_GOOGLE_calendar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skyf0l","download_url":"https://codeload.github.com/skyf0l/EPITECH_to_GOOGLE_calendar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244971892,"owners_count":20540880,"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","epitech","epitech-intra","google-calendar","google-calendar-api","google-calendar-synchronization","sync","synchronization"],"created_at":"2024-10-14T00:10:03.613Z","updated_at":"2025-03-22T14:31:14.221Z","avatar_url":"https://github.com/skyf0l.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EPITECH_to_GOOGLE_calendar\n\nSynchronize your Epitech calendar with Google!\n\n# Features\n\n  - [x] Synchronization of epitech calendar on google calendar\n  - [x] Update modified events / Remove canceled events\n  - [x] Display location and link of event and mails of teaching assistants in google event description\n  - [x] Display only the selected slot for multi-slots events\n  - [x] Project timeline\n  - [x] Fetch events the events which you supervise (HUB acti for example)\n  - [x] Fetch registered events from private epitech calendars\n  - [x] Support multi epitech accounts (great for AERs who have two epitech accounts and calendars)\n\n# Example\n\nThis is my google calendar:\n - In green: registered events from my epitech calendar\n - In light pink: registered project timeline\n - In grey: events that I supervise (often HUB activities)\n - In red: registered events from my AER epitech calendar\n\n![google calendar](.github/assets/google_calendar.png)\n\n# Usage\n\n### Fetch all next events\n\n```\n$ python3 main.py\n```\n\n### Fetch all events since date\n\n```\n$ python3 main.py YYYY-MM-DD\n```\n\n# Config\n\n## Python3 - Requirements\n\n```\n$ sudo python3 -m pip install -r requirements.txt\n```\n\n## Config file\n\nCreate a `config.json` file (from `config-sample.json`) with the following content at root of the repo:\n\n```json\n[\n    {\n        \"comment\": \"student / aer ...\",\n        \"epitech_cookie\": \"...\",\n        \"calendarID_events\": \"...@group.calendar.google.com\",\n        \"calendarID_timeline\": \"...@group.calendar.google.com\",\n        \"calendarID_teaching_team\": \"...@group.calendar.google.com\",\n        \"calendarID_other_calendars\": \"...@group.calendar.google.com\"\n    }\n]\n```\n\n - `comment` is what you want, it doesn't matter, it's just useful not to get mixed up if you have multiple accounts\n - `epitech_cookie` is your user cookie, find it by going on the intra and going into dev console -\u003e application -\u003e cookies -\u003e user\n - `calendarID_events` is the calendar in which you want to put all registered events\n - `calendarID_timeline` is the calendar in which you want to put projects timeline\n - `calendarID_teaching_team` is the calendar in which you want to put events which you supervise (HUB activities for example)\n - `calendarID_other_calendars` is the calendar in which you want to put events registered in your private epitech calendars\n\nIf you don't want some events you can delete line in `config.json` or set value to `null`.\nIf you want to put all events in only one calendarID you can by using the same calendarID.\n\n### Multi epitech account or fiend account? So easy!\n\n```json\n[\n    {\n        \"comment\": \"student\",\n        \"epitech_cookie\": \"...\",\n        \"calendarID_events\": \"...@group.calendar.google.com\",\n        \"calendarID_timeline\": \"...@group.calendar.google.com\",\n        \"calendarID_teaching_team\": \"...@group.calendar.google.com\",\n        \"calendarID_other_calendars\": \"...@group.calendar.google.com\"\n    },\n    {\n        \"comment\": \"aer\",\n        \"epitech_cookie\": \"...\",\n        \"calendarID_events\": \"...@group.calendar.google.com\",\n        \"calendarID_timeline\": \"...@group.calendar.google.com\",\n        \"calendarID_teaching_team\": \"...@group.calendar.google.com\",\n        \"calendarID_other_calendars\": \"...@group.calendar.google.com\"\n    }\n]\n```\n\n## How to get calendarID?\n\n - Create a calendar in google\n - Go in your new calendar's settings\n - Go in `Integrate Calendar` section\n - Copy `Calendar ID` (in general it looks like `...@group.calendar.google.com` or `...@gmail.com`)\n\n## Google `credentials.json`\n\nTo connect your google account with this application, you also need to create an OAuth credentials file ([How generate credentials](Generate_credentials.md)). Then, rename the downloaded file to `credentials.json` and put it in the root of the repo.\n\n# Automatization\n\nTo automatize the synchronization with yours epitech calendars, you can use a cron\n\nFor example, to run the program every half hour, you can copy this in your crontab (`crontab -e`):\n\n```\n*/30 * * * * cd /full/path/EPITECH_to_GOOGLE_calendar/; python3 main.py \u0026\u003e\u003e log\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyf0l%2Fepitech_to_google_calendar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyf0l%2Fepitech_to_google_calendar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyf0l%2Fepitech_to_google_calendar/lists"}