sportclimbing/ifsc-ics-generator

Shared JSON-to-ICS generator for IFSC calendar.

Maintainers

Package info

github.com/sportclimbing/ifsc-ics-generator

pkg:composer/sportclimbing/ifsc-ics-generator

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0 2026-06-08 20:18 UTC

This package is auto-updated.

Last update: 2026-06-08 20:25:53 UTC


README

Packagist Version

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);