org_heigl/calendar-aggregator

聚合iCalendar和CalDav日历

0.2.0 2017-03-29 19:44 UTC

This package is auto-updated.

Last update: 2024-09-23 09:53:07 UTC


README

聚合iCalendar和CalDav日历

使用方法

$aggregator = new Aggregator();
$aggregator->add(new Icalendar('https://example.com/icalendar'));
// $aggregator->add(new CalDav('https://example.com/caldav'));

$range = $aggregator->getRange(
    new DateTimeImmutable('2017-01-01'), 
    new DateTimeImmutable('2018-01-01')
);

foreach ($range as $event) {
    echo sprintf(
        'Event %s starts %s and ends %s',
        $event->getTitle,
        $event->getStart()->format('c'),
        $event->getEnd()->format('c')
    );
}

或者,您还可以以“车道”的形式检索事件,其中每个车道包含一个非重叠事件的列表。

$aggregator = new Aggregator();
$aggregator->add(new Icalendar('https://example.com/icalendar'));
// $aggregator->add(new CalDav('https://example.com/caldav'));

$range = $aggregator->getRange(
    new DateTimeImmutable('2017-01-01'), 
    new DateTimeImmutable('2018-01-01')
);

foreach ($range->getLanes() as $lane) {
    foreach ($lane as $event) {
        echo sprintf(
            'Event %s starts %s and ends %s',
            $event->getTitle,
            $event->getStart()->format('c'),
            $event->getEnd()->format('c')
        );
    }
}