Internet Calendaring Parser rfc2445 or iCal parser is simple PHP class for parsing format into array.
The recommended way to is via Composer:
composer require om/icalparser
<?php
use om\IcalParser;
require_once '../vendor/autoload.php';
$cal = new IcalParser();
$results = $cal->parseFile(
'https://www.google.com/calendar/ical/cs.czech%23holiday%40group.v.calendar.google.com/public/basic.ics'
);
foreach ($cal->getEvents()->sorted() as $event) {
printf('%s - %s' . PHP_EOL, $event['DTSTART']->format('j.n.Y'), $event['SUMMARY']);
}
Each property of each event is available using the property name (in capital letters) as a key. There are some special cases:
- multiple attendees with individual parameters: use
ATTENDEES
as key to get all attendees in the following scheme:
[
[
'ROLE' => 'REQ-PARTICIPANT',
'PARTSTAT' => 'NEEDS-ACTION',
'CN' => 'John Doe',
'VALUE' => 'mailto:john.doe@example.org'
],
[
'ROLE' => 'REQ-PARTICIPANT',
'PARTSTAT' => 'NEEDS-ACTION',
'CN' => 'Test Example',
'VALUE' => 'mailto:test@example.org'
]
]
- organizer's name: the CN parameter of the organizer property can be retrieved using the key
ORGANIZER-CN
You can run example with PHP Built-in web server as follow:
php -S localhost:8000 -t example
- PHP 8.1+
iCal parser using Nette Tester. The tests can be invoked via composer.
composer update
composer test