A NodeJS based syncing tool for EduLink One and Google Calendar.
I decided to make this program as I wanted to view all of my classes more cohesively by using Google Calendar to sync across many devices, operating systems and apps. This project will likely expand in the future with support for homework syncing once summer break is over.
- ⌨ Typescript: Includes detailed and complex type definitions for EduLink responses
- 💾 Redis: Caches data to avoid constant fetching and increase efficiency.
- Install and run
redisin a docker container. Explaining how to do that is outside the scope of this project but the general command isdocker run -p 56379:6379 -d redis - Configure your env variables - See below
- Run
yarnto install dependencies - Obtain OAuth credentials from Google, download the JSON file and copy it to
src/util/google/credentials.jsonNote: Ensure the credentials are for the application type: "Desktop"
- Run
yarn build && yarn startto build and run the program - Authenticate the app following the terminal prompts (You will only have to do this once)
- Sit back, relax and watch the progress bar
SCHOOL_SUBDOMAINThe string that precedes .edulinkone.com in the domain
CALENDAR_IDID of the calendar to sync. Obtained here. I recommend using an empty, new calendar to avoid event conflicts
EDULINK_USERNAMEYour EduLink username
EDULINK_PASSWORDYour EduLink password
REDIS_URL (optional)The url of your redis container. Usually something like this redis://127.0.0.1:56379
I've only tested this on my schools' implementation of EduLink, so it may not work correctly on yours. If it doesn't open an issue, or if you have found a solution, open a pull request. I hope that this small program will help you in your organisational and productivity needs and I hope we can build a fully fledged suite of tools for syncing to and from EduLink
Obligatory "I am not responsible for any damage caused by using this program. I am not responsible if you miss your classes, mess up your calendar or cause thermonuclear war by using this software."