Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

WebUntis Timetable Sync

This Java application synchronizes timetable data from WebUntis to ICS calendar files. It allows you to fetch your timetable for a single week or a semester and create calendar files that can be imported into any calendar application that supports the ICS format.

Prerequisites

  • Java 11 or higher
  • Maven
  • WebUntis account credentials

Setup

  1. Clone this repository or download the source code
  2. Create a configuration file named untis_config.json in the root directory with your WebUntis credentials:
{
    "baseUrl": "https://YOUR_SCHOOL.webuntis.com",
    "school": "YOUR_SCHOOL_NAME", (othr)
    "username": "YOUR_USERNAME",
    "password": "YOUR_PASSWORD",
    "elementId": "YOUR_ELEMENT_ID"
}

Note about elementId: The elementId is the ID from the URL that is used to open the respective timetable in the WebUntis web client. You can find this ID in the URL when viewing your timetable in the browser, for example: https://kephiso.webuntis.com/timetable-classes/40681/2025-09-29 - here 40681 would be your elementId.

  1. Build the project using Maven:
mvn clean package

This will create a JAR file with all dependencies in the target directory.

Recompiling After Changes

If you make changes to the source code, you need to recompile the project:

mvn clean package

This will:

  • Clean the target directory
  • Compile all Java source files
  • Create a new JAR file with all dependencies

Usage

Run the application using:

java -jar target/timetable-parser-1.0-SNAPSHOT-jar-with-dependencies.jar --sync

The application will:

  1. Ask you to choose between:

    • Importing a single week
    • Importing a semester (date range)
  2. Show available weeks for selection

  3. Allow you to manually select which lessons to include in your calendar

  4. Generate an ICS file in the calendar directory:

    • Single week: week_XX_YYYY.ics (e.g., week_20_2025.ics)
    • Semester: semester_XX-YY_ZZZZ.ics (e.g., semester_12-28_2025.ics)

Lesson Selection

When selecting lessons, you have three options for each lesson:

  • j - Yes, include this lesson
  • n - No, skip this lesson
  • a - Include all remaining lessons

Your selections are saved in lesson_selection.json and can be reused in future syncs.

Calendar Files

Generated calendar files can be found in the calendar directory. These files can be imported into:

  • Google Calendar
  • Apple Calendar
  • Microsoft Outlook
  • Any other calendar application that supports the ICS format

Error Handling

  • If the configuration file is missing or invalid, the application will create a template file for you to fill in
  • Connection issues are handled with automatic retries
  • If authentication fails, the application will notify you and exit

Support

For any issues or questions, please create a GitHub issue in this repository.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages