A proxy for pre-processing events from iCalendar URLs
Find a file
2026-07-02 22:49:54 +02:00
src Bugfix in const 2026-07-02 22:49:54 +02:00
.editorconfig Initial commit 2024-02-19 23:01:01 +01:00
.gitignore Basic caching 2024-02-22 01:10:16 +01:00
config.php.example License and small fixes 2024-02-22 11:59:11 +01:00
LICENSE Initial commit 2024-02-19 23:01:01 +01:00
README.md Added configuration via environment 2026-07-02 18:43:54 +02:00

ics-proxy

A proxy for pre-processing events from iCalendar URLs

Running

To run, use your favourite web server and serve index.php. You could use PHP-FPM with NginX, for example.

The program can be configured using the following environment variables:

Variable name Description Default
ICS_SPLITTER_CONFIG Path to config.php ./config.php
ICS_SPLITTER_CACHE_DIR Cache location ./cache/

An example config.php file can be found in config.php.example. Passes are not really documented, but can be found in src/passes.php. Since this program is made for me to use personally there aren't many options, so feel free to add your own if you for some reason want to use this.

Specification

This will assume the program is located at the base URL https://example.com/.

GET /cal/:cal_id

Will return the pre-processed calendar with ID cal_id. If authentication is needed, a secret should be provided in the GET parameter s.

Status codes

  • 200 Successful processing of the calendar
  • 401 The calendar requires authentication
  • 404 The calendar with cal_id does not exist
  • 500 Various internal errors

Will return a copy of the programs license.

GET /gensecret

Will generate a random 32 byte hexstring which can be used as a secret. This is only a convenience feature and is not necessary at all.