Synchronize your Epitech calendar with Google!
- Synchronization of epitech calendar on google calendar
- Update modified events / Remove canceled events
- Display location and link of event and mails of teaching assistants in google event description
- Display only the selected slot for multi-slots events
- Project timeline
- Fetch events the events which you supervise (HUB acti for example)
- Fetch registered events from private epitech calendars
- Support multi epitech accounts (great for AERs who have two epitech accounts and calendars)
This is my google calendar:
- In green: registered events from my epitech calendar
- In light pink: registered project timeline
- In grey: events that I supervise (often HUB activities)
- In red: registered events from my AER epitech calendar
$ python3 main.py
$ python3 main.py YYYY-MM-DD
$ sudo python3 -m pip install -r requirements.txt
Create a config.json file (from config-sample.json) with the following content at root of the repo:
[
{
"comment": "student / aer ...",
"epitech_cookie": "...",
"calendarID_events": "[email protected]",
"calendarID_timeline": "[email protected]",
"calendarID_teaching_team": "[email protected]",
"calendarID_other_calendars": "[email protected]"
}
]commentis what you want, it doesn't matter, it's just useful not to get mixed up if you have multiple accountsepitech_cookieis your user cookie, find it by going on the intra and going into dev console -> application -> cookies -> usercalendarID_eventsis the calendar in which you want to put all registered eventscalendarID_timelineis the calendar in which you want to put projects timelinecalendarID_teaching_teamis the calendar in which you want to put events which you supervise (HUB activities for example)calendarID_other_calendarsis the calendar in which you want to put events registered in your private epitech calendars
If you don't want some events you can delete line in config.json or set value to null.
If you want to put all events in only one calendarID you can by using the same calendarID.
[
{
"comment": "student",
"epitech_cookie": "...",
"calendarID_events": "[email protected]",
"calendarID_timeline": "[email protected]",
"calendarID_teaching_team": "[email protected]",
"calendarID_other_calendars": "[email protected]"
},
{
"comment": "aer",
"epitech_cookie": "...",
"calendarID_events": "[email protected]",
"calendarID_timeline": "[email protected]",
"calendarID_teaching_team": "[email protected]",
"calendarID_other_calendars": "[email protected]"
}
]- Create a calendar in google
- Go in your new calendar's settings
- Go in
Integrate Calendarsection - Copy
Calendar ID(in general it looks like[email protected]or[email protected])
To connect your google account with this application, you also need to create an OAuth credentials file (How generate credentials). Then, rename the downloaded file to credentials.json and put it in the root of the repo.
To automatize the synchronization with yours epitech calendars, you can use a cron
For example, to run the program every half hour, you can copy this in your crontab (crontab -e):
*/30 * * * * cd /full/path/EPITECH_to_GOOGLE_calendar/; python3 main.py &>> log
