Import Schoology Assignments to Todoist
Note: Since I've graduated high school and therefore don't use Schoology anymore (nor Todoist, for that matter), I no longer have any use for Todology. I've left it here in the hope that it may be useful (or, at least, interesting) to someone, but it may very well be broken, and I won't be investing any time into fixing or maintaing it in the future. If you'd like to take up the mantle and run with it, feel free to do so--let me know and I'll add a link to your fork here.
I was sick of manually copying my assignments from Schoology to Todoist. So I made a script to do it for me.
DISCLAIMER: I am not responsible if this script causes something bad for you. If your school IT person has something against scripts and gets you expelled for using this one, I am not responsible. If for some reason it drops an assignment and you turn it in late, I am not responsible. (Although it shouldn't do that, and I do use it myself.) You should still double-check schoology.
First, clone this repo:
$ git clone [email protected]:ariporad/todology
$ cd todology
Then, install the dependencies. (You'll need Python 3 for this. You should probably use virtualenv too.):
$ pip install -r requirements.txt
Next, copy the config.sample.yml
to config.yml
, and edit it. (There are helpful
comments to guide you through the process.):
$ cat config.sample.yml > config.yml
$ vim config.yml
Finally, run it:
python3 index.py
You should run it whenever you want to import events to Todoist. It will automagically not import the same event multiple times. (NOTE: It stores the information about already-imported events on your computer. If you run it on different computers, it will probably do something bad.)
This script works by downloading the Schoology calendar feed, and parsing it. It then converts calendar events into a list of assignments that need to be imported. It imports any event which matches the following criteria:
~/.todology
)Then, it takes the list of assignments and imports them all in to Todoist using their fantastic API.
I am not responsible for any damage this may cause. Use at your own risk.