This project is a notification system for Untis, a school scheduling software. It allows users to receive notifications about upcoming events, such as exams, assignments, or class changes.
- Real-time notifications: The system sends notifications to users whenever there is a change in their schedule.
- Customizable notifications: Users can choose which types of events they want to be notified about and how they want to receive the notifications (e.g., Discord Webhooks, Slack Webhooks).
- iCal Integration: Sync your timetable to your calendar app with iCal. The calendar stream shows you when, where and with whom your classes are.
- No exposed ports: You don't have to expose any ports or have an outward facing server due to the use of webhooks.
- Clone the repository:
git clone https://github.com/TheBeaconCrafter/untis-notifier.git
- Make the install script executable:
chmod +x setup.sh
- Run the install script:
./setup.sh
The script installs screen and npm if not already installed and guides you through the setup process. For manual installation, refer to the paragraph below.
- Clone the repository:
git clone https://github.com/TheBeaconCrafter/untis-notifier.git
- Install the required dependencies:
npm install node-fetch webuntis path express date-fns ejs ical-generator readline
- Set up the configuration file:
- Copy the
configExample.js
file and rename it toconfig.js
. - Fill in the necessary information, such as your Untis credentials and notification settings.
- Copy the
- Run the application:
node index.js
- untis-notify can sync your timetable to your favorite calendar app (provided it supports iCal).
- For this feature to work, go into your config.js and enable enableWebServer, enableIcalStreaming and set your webServerPort to one that is open to the web.
- If you want to make sure that nobody can trigger an unauthorized API refresh via the webportal, please enable disableRoutesExceptIcal (highly recommended in production).
- Your calendar will be available at http://YOURSERVER:PORT/timetable.ics
- Keep in mind that this calendar is open to anyone with the link
- The calendar will refresh in the same interval that is set for checkInterval in your config.js
- The system monitors Untis automatically for changes in exams, homework, absences, and timetable changes every 10 minutes (customizable).
- There is a debug web interface at
http://localhost:3000
which should not (yet) be exposed to the internet. There are options for keeping it off in the secrets file. - Note: This software is in early development, so expect bugs. It was built and tested with node version v20.17.0.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE
file for more information.