tiny rust program to convert ics calendars to a custom format
Find a file
2024-01-14 18:04:14 +01:00
.cargo Specify proper linker 2023-08-06 14:34:01 +02:00
.github/workflows Fix cache keys 2023-08-06 14:42:36 +02:00
docker Make dockerfile crosscompile-ready 2023-08-06 14:15:41 +02:00
src Fix start datetime of event 2024-01-09 23:34:11 +01:00
.gitignore initial 2023-06-13 20:53:58 +02:00
Cargo.lock Implement rrule parsing 2024-01-09 23:22:53 +01:00
Cargo.toml Implement rrule parsing 2024-01-09 23:22:53 +01:00
Dockerfile Update Dockerfile for new rust and debian version 2024-01-14 18:04:14 +01:00
README.md Extend readme 2024-01-07 13:21:42 +01:00

ics-adapter

This is a tiny rust program which "proxies" .ics file URLs into a JSON format. It was developed to work with OpenEPaperLink.

The usage is rather simple. It is recommended to run this as a Docker container. An example docker-compose configuration might look like this:

version: "3"
services:
    calendar:
        image: ghcr.io/jhbruhn/ics-adapter:main
        ports:
            - "3000:3000"
        restart: unless-stopped

As you can see, you only have to forward port 3000 to wherever you like, in this case port 3000. The URL you have to enter into the OEPL Google Calendar config then looks like this:

http://<docker-host>:3000/calendar/<ics-url>/entries

It is important that you urlencode the <ics-url> with a tool like this: https://www.urlencoder.org/

With an actual .ics url, it looks like this:

http://192.168.178.42:3000/calendar/https%3A%2F%2Fnextcloud.net%2Fremote.php%2Fdav%2Fpublic-calendars%2Fasdlkijf/entries

You may also list multiple urls to calendars separated with a ;:

http://<docker-host>:3000/calendar/<ics-url-1>;<ics-url-2>/entries

Previous versions also supported these URL formats, but these are not compatible with modern OEPL features:

http://<docker-host>:3000/get?url=<ics-url>

With an actual .ics url, it looks like this:

http://192.168.178.42:3000/get?url=https://nextcloud.net/remote.php/dav/public-calendars/whateveryolo901i230ji

License

MIT