sportclimbing / ifsc-ics-generator
Shared JSON-to-ICS generator for IFSC calendar.
Package info
github.com/sportclimbing/ifsc-ics-generator
pkg:composer/sportclimbing/ifsc-ics-generator
1.0
2026-06-08 20:18 UTC
Requires
- php: >=8.5
- eluceo/ical: ^2.16
Requires (Dev)
- phpunit/phpunit: ^12.5
- sabre/vobject: ^4.6
README
Shared PHP library that converts IFSC competition calendar JSON into ICS (iCalendar) files. Powers the calendar feeds at ifsc.stream.
Installation
composer require sportclimbing/ifsc-ics-generator
Requires PHP >= 8.5.
Usage
use SportClimbing\IcsGenerator\CalendarFactory; use SportClimbing\IcsGenerator\IcsGenerator; $generator = new IcsGenerator( calendarFactory: new CalendarFactory(), productIdentifier: '-//YourApp//IFSC Calendar//EN', publishedTtl: 'PT12H', calendarName: 'IFSC World Cup', ); // Pass decoded IFSC calendar JSON array $ics = $generator->generateForEvents($events); // Filter events by discipline, kind, or category use SportClimbing\IcsGenerator\CalendarFilter; use SportClimbing\IcsGenerator\FilterParams; $params = new FilterParams( disciplines: ['boulder', 'lead'], kinds: ['final'], categories: ['men', 'women'], ); $filtered = CalendarFilter::apply($events, $params); $ics = $generator->generateForEvents($filtered);