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
redis
in 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
yarn
to install dependencies - Obtain OAuth credentials from Google, download the JSON file and copy it to
src/util/google/credentials.json
Note: Ensure the credentials are for the application type: "Desktop"
- Run
yarn build && yarn start
to 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_SUBDOMAIN
The string that precedes .edulinkone.com
in the domain
CALENDAR_ID
ID of the calendar to sync. Obtained here. I recommend using an empty, new calendar to avoid event conflicts
EDULINK_USERNAME
Your EduLink username
EDULINK_PASSWORD
Your 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."