Simple web service that serves calendar of a goout.net user in iCalendar format.
Reverse-engineered GoOut REST API documentation is present in this repository in the apiary.apib file in API Blueprint format, and beautifully rendered (including ability to call endpoints) on Apiary.
The endpoints.txt file simply lists available endpoints.
Goout-calendar itself is a Rust micro web service using Rocket as a web framework. The calendar.rs module is responsible for handling of the client-facing endpoint, which lets the goout_api.rs module iteract with GoOut API.
Goout-calendar requires Rust 1.33+, but the Rocket dependency requires nightly or devel Rust build.
If you install Rust toolchain locally, you can cargo build
, cargo run
etc.
Alternatively, enclosed Dockerfile lets you build using
docker build -t goout-calendar .
and run using
docker run -p 80:80 goout-calendar
.
You can also deploy any cloud environment supporting Knative, for example Google Cloud Run by using the knativeservice.envsubst.yaml Knative service definition file.
Finally, there is cloudbuild.yaml configuration file for Google Cloud Build (Continuous Integration) to build and deploy automatically. Note to myself: I've configured GCB trigger on the GitHub repo to build & deploy automatically on push of a tag.
I've set up a demo instance at Google Cloud Platform at http://goout.strohel.eu/.
- https://goout.net/
- https://github.com/agiertli/goout-stalker for a somewhat similar project, and an associated blog post.
- There is also a UserScript Gist to Add Event to Google Calendar on GoOut.net.