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": "...@group.calendar.google.com",
"calendarID_timeline": "...@group.calendar.google.com",
"calendarID_teaching_team": "...@group.calendar.google.com",
"calendarID_other_calendars": "...@group.calendar.google.com"
}
]
comment
is what you want, it doesn't matter, it's just useful not to get mixed up if you have multiple accountsepitech_cookie
is your user cookie, find it by going on the intra and going into dev console -> application -> cookies -> usercalendarID_events
is the calendar in which you want to put all registered eventscalendarID_timeline
is the calendar in which you want to put projects timelinecalendarID_teaching_team
is the calendar in which you want to put events which you supervise (HUB activities for example)calendarID_other_calendars
is 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": "...@group.calendar.google.com",
"calendarID_timeline": "...@group.calendar.google.com",
"calendarID_teaching_team": "...@group.calendar.google.com",
"calendarID_other_calendars": "...@group.calendar.google.com"
},
{
"comment": "aer",
"epitech_cookie": "...",
"calendarID_events": "...@group.calendar.google.com",
"calendarID_timeline": "...@group.calendar.google.com",
"calendarID_teaching_team": "...@group.calendar.google.com",
"calendarID_other_calendars": "...@group.calendar.google.com"
}
]
- Create a calendar in google
- Go in your new calendar's settings
- Go in
Integrate Calendar
section - Copy
Calendar ID
(in general it looks like...@group.calendar.google.com
or...@gmail.com
)
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