This project has two parts that work together:
Server β A Dockerized Stremio server exposed to the internet via Cloudflare Tunnel, so you can connect from any device (phone, tablet, laptop) using a simple redirect page hosted on GitHub Pages.
Calendar Sync β A Python script that pulls your Simkl watchlist (TV shows, anime, movies), matches upcoming episodes and releases, and pushes an .ics calendar to a GitHub Gist every week via GitHub Actions.
Runs Stremio Server in Docker and exposes it through a Cloudflare quick tunnel. A lightweight web page reads the current tunnel URL from a Gist and redirects you automatically.
Phone/Laptop β index.html (GitHub Pages) β Gist (tunnel URL) β Cloudflare Tunnel β Stremio Server (Docker)
docker-compose.yml β Stremio Server + Cloudflare tunnel containersupdate-gist.ps1 β Extracts the tunnel URL from Docker logs and publishes it to a GitHub Gistweb/index.html β Simple redirect page that fetches the URL from the Gist and forwards you to the serverFetches your Simkl watchlist and generates an .ics calendar with upcoming episodes and movie releases. Runs weekly via GitHub Actions and uploads the result to a GitHub Gist.
.ics file with season/episode labelssync/simklCalendarExporter.py β Main script (stdlib only, no dependencies).github/workflows/calender_sync.yml β Runs every Monday + manual dispatchcd server/docker
docker compose up -d
Then run update-gist.ps1 to publish the tunnel URL to your Gist. Point web/index.html at that Gist and deploy to GitHub Pages.
Set these GitHub Actions secrets:
| Secret | Description |
|---|---|
SIMKL_CLIENT_ID |
Simkl API client ID |
SIMKL_ACCESS_TOKEN |
Simkl OAuth access token |
GIST_ID |
GitHub Gist ID for the .ics output |
GH_PAT_TOKEN |
GitHub PAT with gist scope |
The workflow runs automatically every Monday at midnight UTC.
Emin HadΕΎiabdiΔ β GitHub @ehadziabdic