No description
  • Go 94.1%
  • PowerShell 3.6%
  • Dockerfile 2.3%
Find a file
2026-04-13 20:10:58 +02:00
k8s feat(ical): add TOTP support for improved authentication 2026-04-07 16:22:48 +02:00
.env.example feat(login): add support for TOTP ID and improve environment variable handling 2026-04-13 20:02:58 +02:00
.gitignore download ics 2025-04-24 18:17:26 +02:00
build.ps1 chore(build): update build script to include shebang and improve formatting 2026-04-13 20:10:58 +02:00
Dockerfile dockerfile 2025-04-24 18:46:07 +02:00
go.mod update with more logs 2025-05-01 22:52:42 +02:00
go.sum download ics 2025-04-24 18:17:26 +02:00
ical.go refactor(ical, login): improve error handling and simplify code 2026-04-13 20:08:41 +02:00
login.go refactor(ical, login): improve error handling and simplify code 2026-04-13 20:08:41 +02:00
login_test.go refactor(login): simplify session ID extraction and cleanup test cases 2026-04-13 20:06:42 +02:00
main.go feat(login): add support for TOTP ID and improve environment variable handling 2026-04-13 20:02:58 +02:00
README.md feat(ical): add TOTP support for improved authentication 2026-04-07 16:22:48 +02:00
server.go feat(server): add health check based on calendar fetch status 2026-04-06 19:43:10 +02:00

Tucan iCal

A web service that fetches calendar data from TU Darmstadt and exports it as an iCal (.ics) file, which can be imported into calendar applications like Google Calendar, Outlook, or Apple Calendar.

You need to host this somewhere with a publically avalible URL! Use a ddns service and point it to your PC or buy a real domain. This doesnt need many resources, it runs well on a raspberry pi

Features

  • Fetches calendar data from TU Darmstadt Tucan
  • Exports calendar data in standard iCal format
  • REST API endpoint for retrieving the calendar
  • Docker containerized for easy deployment

Prerequisites

  • Go 1.24+ (for local development)
  • Docker (for containerized builds and runs)

How to Run

  1. Clone the repository:

    git clone <repository-url>
    cd tucan-ical
    
  2. Install dependencies:

    go mod download
    
  3. Create a .env file based on .env.example and configure your environment variables. Here you need to set your login information for tucan

  4. Run the application:

    go run .
    

    The server will start on port 8080.

Docker Usage

Running the Docker Image

You can build the Dockerfile and run the container like this:

docker build -t tucan-ical .

Environment Variables

You can pass environment variables to the Docker container and run it.

docker run -p 8080:8080 -e TUCAN_USERNAME=abc -e TUCAN_PASSWORD=123 -e TUCAN_TOTP=BASE32SECRET tucan-ical

You can then look at the exported .ical at localhost:8080/tucan.ics

Kubernetes Deployment

The project includes Kubernetes manifests in the k8s/ directory. You can use it as a template if needed, it won't work without modifications

API Usage

Get Calendar

Retrieve the calendar data in iCal format:

GET /tucan.ics

Response: iCal (.ics) file content that can be imported into calendar applications.

Configuration

The application uses environment variables for configuration. Refer to .env.example for available options.