Auto-publishes the trip itinerary to Apple Calendar via a subscribed .ics URL.
Gist ID: b9921ca8dc846a76ca131507cd88e922 (jacobwallstrom, secret gist)
HTTPS (Apple Calendar URL field): https://gist.githubusercontent.com/jacobwallstrom/b9921ca8dc846a76ca131507cd88e922/raw/italy-2026.ics
webcal:// (one-click subscribe on iPhone/Mac): webcal://gist.githubusercontent.com/jacobwallstrom/b9921ca8dc846a76ca131507cd88e922/raw/italy-2026.ics
The URL omits the commit SHA, so it always serves the latest version.
webcal:// URL on this device → Calendar opens → tap SubscribeAfter subscribing on the Mac with location = iCloud, the subscription propagates to all signed-in devices automatically.
Edit calendar/itinerary.py (events list)
Regenerate the file:
python3 calendar/make-ics.pyPush to gist:
gh gist edit b9921ca8dc846a76ca131507cd88e922 calendar/italy-2026.icsSubscribed calendars refresh at their poll interval (default 1h; force-refresh in macOS Calendar via right-click → Refresh).
Stable UIDs on each event mean updates replace existing events rather than duplicating them.
Secret gist: not indexed by search engines but anyone with the URL can read. The file contains train numbers, station names, seat numbers, and brief notes. No passport/booking-reference data. If extra paranoia required, regenerate the gist ID periodically.