Awesome Go

untis-go

CategorySoftware Packages
SubcategoryOther Software
Stars0

Fast, native WebUntis desktop client for students and teachers. Sidebar navigation, timetables, homework, absences & messages. AES-256-GCM encrypted credentials, SQLite cache-first, random port security

About untis-go

šŸ—“ļø goatimtable

Go Reference Go Report Card Release Status: Pre-Release License: GPL-3.0 Platform

🌐 Official Website: https://goatimtable.benzjeremy.pp.ua/

šŸ“– Official Wiki & Documentation: https://goatimtable.benzjeremy.pp.ua/wiki/

[!IMPORTANT]

🚧 Pre-Release / Active Development Notice

This software is not yet finished and is actively being worked on.
All versions (including v2.3) are Pre-Releases (Work in Progress), even if not originally announced as such. Active development, architectural refinements, and feature updates are ongoing.
If you encounter errors, display bugs, or unexpected behavior, please open an issue directly under GitHub Issues! Feedback and pull requests are warmly welcome.


šŸŽÆ What is goatimtable?

A fast, native, and modern WebUntis PC desktop client for students and teachers – written in Go with a sleek desktop shell (inspired by clean sidebars of apps like Discord and Spotify Desktop).

Forget slow web interfaces, cluttered layouts, or resource-heavy web wrappers. goatimtable brings your timetable, substitution schedules, homework, announcements, and absences lightning-fast and cross-platform to your desktop – without Electron bloat!


✨ Features

  • šŸ  Overview (Dashboard):
    • Personal greeting with name and school.
    • Direct display of next upcoming lesson and daily timeline.
    • Quick overview of open homework assignments and unread messages.
  • šŸ“… My Timetable:
    • Personal student or teacher timetable.
    • Day and week view with red LIVE-TIMELINE.
    • Click on any lesson opens detailed information (teachers, substitutions, rooms, subject, homework).
  • šŸ‘„ Other Timetables:
    • Quick switching between all classes (with live search over hundreds of classes), teachers, and classrooms.
  • šŸ“ Homework Management:
    • Overview of all homework from WebUntis plus manually added tasks.
    • Tick off tasks, filter, and add new homework via a modal dialog.
  • 🩺 Absences:
    • Absence list with status (Excused / Unexcused), period, and reason.
    • Enter new absences / sick notes.
  • šŸ’¬ Messages (Message Center):
    • Full-featured inbox for all official school messages, parent letters, and teacher announcements with full-text display.
  • āš™ļø Schools & Profile Management:
    • Manage any number of schools and user profiles in parallel.
    • Delete schools: Each profile can be removed with a single click.
    • Live school search: Find your school worldwide via the official WebUntis school search.
  • šŸ›”ļø 100% Local-First & Privacy Compliant (GDPR / DSGVO):
    • All data stays strictly local on your machine in an encrypted SQLite database (~/.local/share/untis-go/untis.db).
    • Zero telemetry, zero tracking, zero external third-party cloud dependencies.
    • Full compliance with European GDPR (DSGVO) and State Data Protection Authority (LDI NRW) standards.
  • šŸ“… RFC-5545 iCalendar (.ics) Export:
    • 1-click timetable export for Google Calendar, Apple Calendar & Mozilla Thunderbird.
    • Generates standard-compliant VEVENT blocks with room, teachers, notes, and cancellation status.
  • šŸ”” Background Sync & Desktop Notifications:
    • Automatic background monitoring daemon detecting timetable mutations (room changes, cancellations, substitutions).
    • Native OS desktop notifications (via Linux notify-send and Windows toast).
  • šŸ–„ļø Native System Tray Integration:
    • Minimize window to system tray / taskbar instead of quitting.
    • Quick menu for one-click schedule access, force refresh, status check, and graceful exit.

šŸ”’ Security & Privacy (Zero-Telemetry)

  • 100% Local-First & Privacy (GDPR / LDI NRW): Zero telemetry, zero tracking. All communication occurs directly with your school's WebUntis instance.
  • AES-256-GCM Encryption: Credentials and cached secrets are never stored in plain text.
  • SQLite Cache: Timetables load in under 1 ms directly from local storage.
  • Random Port & Crypto Session Token: Protection against unauthorized local access (Strict Anti-DNS-Rebinding & Anti-CSRF).

šŸ“¦ Installation & Download

1. Download Precompiled Packages (Recommended)

Download the matching file for your operating system from the Releases page:

  • Linux (x86_64):
    tar -xzf goatimtable-v2.5-linux-amd64.tar.gz
    sudo cp goatimtable /usr/local/bin/
    goatimtable
    
  • Windows (x86_64):
    • Unzip goatimtable-v2.5-windows-amd64.zip and run goatimtable.exe.

2. Installation via Go (go install)

If you have Go (version 1.21 or newer) installed:

go install github.com/benzjeremy/goatimtable@latest

The binary will be compiled automatically into your $GOPATH/bin (or ~/go/bin) and can be called directly as goatimtable in your terminal.

3. Compile from Source

Prerequisites (Linux):

  • Go 1.21+
  • GTK 3 & WebKitGTK development libraries:
    • Arch Linux / CachyOS: sudo pacman -S webkit2gtk-4.1 gtk3 gcc
    • Ubuntu / Debian: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev build-essential
    • Fedora: sudo dnf install webkit2gtk4.1-devel gtk3-devel gcc

Building:

# 1. Clone the repository
git clone https://github.com/benzjeremy/goatimtable.git
cd goatimtable

# 2. Build binary
go build -o goatimtable .

# 3. Launch
./goatimtable

āŒØļø Keyboard Shortcuts

KeyAction
← / →Previous / Next day (or week)
TJump to Today
DActivate Day view
WActivate Week view
EscClose open dialogs, info-sheets, and menus

šŸ› Bug Reports & Contributing

Bug reports and contributions are welcome:

  1. Open the Issues tab.
  2. Click New Issue.
  3. Briefly describe:
    • Operating system and desktop environment.
    • Steps to reproduce.
    • Expected vs actual behavior (including console log output).

šŸ“š Wiki & Documentation

Detailed documentation and step-by-step guides are available in our official web wiki:
šŸ‘‰ goatimtable Wiki: https://goatimtable.benzjeremy.pp.ua/wiki/


šŸ“„ License & Author

Project rename

goatimtable v2.5 is the current pre-release. Existing local data continues to use the legacy untis-go storage directory for compatibility. Users upgrading from v2.4.1 or earlier must download v2.5 manually: the old updater only accepts the former repository path and executable name.

A personal note from Jeremy Benz

I decided we needed to rename untis-go to goatimtable to avoid potential intellectual-property and trademark issues. The previous name directly referenced Untis GmbH's brand. I wanted to make this change early, before it could lead to legal trouble. Same project, new name — thank you for sticking with it.

— Jeremy Benz, project creator

Windows icon resource: regenerate app_windows_amd64.syso after icon changes with x86_64-w64-mingw32-windres app.rc -O coff -o app_windows_amd64.syso.

Frequently Asked Questions

What is untis-go?

untis-go is a Software Packages library for the Go programming language. Fast, native WebUntis desktop client for students and teachers. Sidebar navigation, timetables, homework, absences & messages. AES-256-GCM encrypted credentials, SQLite cache-first, random port security

How do I install untis-go?

Install untis-go with the Go module system using `go get benzjeremy/untis-go`. Check the repository for the current installation instructions.

What category does untis-go belong to?

untis-go is listed under Software Packages, specifically Other Software.

← Back to Other Software