Easily integrate your WebUntis timetable into your Notion Baords!
- Clone / Download this repository and navigate to the directory
- Install the dependencies using pip:
pip install -r requirements.txt
- Create a new Notion integration
- Copy the API token into the
config.json
file - Duplicate the Notion template into your own Notion board
- Copy the Database ID (of the database in your Notion board) into the
config.json
file
Use the tools provided in /utils/
to retrieve the Block and Row IDs and enter them in config.json
and /modules/timeFormat.py
If you modify the structure of the database template, ensure that corresponding changes are made in timeFormat.py
!
-
Find out what WebUntis Server your school is running on (e.g. herakles). Then copy the URL in the
config.json
file in the following format:SERVER.webuntis.com
You can do this by logging into your WebUntis account on the WebUntis Website and checking the URL
-
Enter your WebUntis credentials and school- and class name into
config.json
-
Adjust
subjects.json
to match your classes with the names they have been given on WebUntis -
Adjust
timeFormat.py
to match the class times at your school
You might need to speak with your schools IT department first to get the rights to use the API!
After completing the steps listed in Setup, you have two options:
update.py
: This script simply updates the timetable oncemain.py
: This script runs constantly and updates the timetable as soon as the user checks a checkbox on the Notion page
If you want the program to automatically update the timetable at regular intervals (aka constantly run main.py
), you will need to check with your school's IT department first to avoid any rate limits or even slowing down WebUntis for the entire school.
Please note that I am not responsible for any damage caused by (parts of) this project.
If the Notion API returns status codes other than 200
(like most common: 400
), it is most likely caused by the configuration in timeFormat.py
being wrong.
Double check that the Day- and Time mapping is matching with the databse in your Notion board; especially concerning row IDs and property names.
Development is currently on hold. As there is now schoollyear ongoing at the moment, I have no way to test changes.
Contributions are welcome. Please create an issue discussing what you want to change first. Once you have my approval, fork this repository and submit a pull request with your changes.