PHPackages                             louis1021/sg-i-calendar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. louis1021/sg-i-calendar

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

louis1021/sg-i-calendar
=======================

When the INPUT with .ics extension is ready, PROCESS it with parser, and OUTPUT events one by one.

11.8k1JavaScript

Since Mar 11Pushed 6y ago1 watchersCompare

[ Source](https://github.com/louislee1021/SG-iCalendar)[ Packagist](https://packagist.org/packages/louis1021/sg-i-calendar)[ RSS](/packages/louis1021-sg-i-calendar/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

SG-iCalendar
============

[](#sg-icalendar)

Quick and Simple.
When the INPUT with .ics extension is ready, PROCESS it with parser, and OUTPUT events one by one.

Differentiation and ChangeLog
-----------------------------

[](#differentiation-and-changelog)

20191218 21:10 - Added Namespace
20191216 10:23 - Updated Installation Command to include dev-master, get rid of stable minimum stability.
20191216 08:38 - Added Installation.
20191216 08:35 - The package name louis1021/SG-iCalendar is invalid, it should not contain uppercase characters. We suggest using louis1021/sg-i-calendar instead.
20191216 08:34 - Packagist require the submission first.
20191216 08:31 - Forget the FIRST Github webhook failure message for the connection to Packagist.
20191216 07:55 - Updated the ultimate and the only uses of this package. End of this SG-iCalendar world.
20191216 07:52 - Changed README into README.md.
20191216 07:49 - Added composer.json with designated package name for conventional use.
20191216 07:47 - PHP 5.6.38 compatible.
20191216 07:45 - What? Yes. I forked.

Installation
------------

[](#installation)

```
composer require louis1021/sg-i-calendar dev-master
```

Overview
--------

[](#overview)

A simple and fast iCal parser.
------------------------------

[](#a-simple-and-fast-ical-parser)

With massive help from
and
----------------------------------------------------------------------------------------------------------------------------------------------

[](#httpgithubcomfangelsg-icalendarwith-massive-help-from-httpgithubcomtpruvotphp-icaland-httpgithubcomxonevsg-icalendar)

```
 // A simple example :
 $ical = new SG_iCalReader( "./basic.ics" );
 //or
 $ical = new SG_iCalReader( "http://example.com/calendar.ics" );
 foreach( $ical->getEvents() As $event ) {
   // Do stuff with the event $event
 }
```

To check unit tests with phpunit, goto tests/ directory and :

```
phpunit AllTests
phpunit helpers/FreqTest
```

---

CHANGELOG :
-----------

[](#changelog-)

current (31 oct 2010)

- ical RDATE support (added dates in a range)
- RDATE and EXDATE arrays support

0.7.0 (30 oct 2010)

- ical EXDATE support (excluded dates in a range)
- $event-&gt;isWholeDay()
- getAllOccurrences() for repeated events
- implemented a cache for repeated events

0.6.0 (29 oct 2010)

- Added demo based on fullcalendar
- Added duration unit tests
- Support of Recurrent events in query Between()

- various fixes on actual (5) issues

---

TODO :
------

[](#todo-)

These iCal keywords are not supported for the moment :

- RECURRENCE-ID : to move one event from a recurrence
- EXRULE : to exclude multiple days by a complex rule

Also, multiple RRULE could be specified for an event, but that is not the case for most calendar applications

---

To get more information about ical format and rules : see

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/33e1c414c397d798b6aa936792eedd57645d37568ddc1e16425500d93a3529a4?d=identicon)[louis1021](/maintainers/louis1021)

---

Top Contributors

[![tpruvot](https://avatars.githubusercontent.com/u/145119?v=4)](https://github.com/tpruvot "tpruvot (44 commits)")[![fangel](https://avatars.githubusercontent.com/u/19275?v=4)](https://github.com/fangel "fangel (36 commits)")[![louislee1021](https://avatars.githubusercontent.com/u/58059563?v=4)](https://github.com/louislee1021 "louislee1021 (11 commits)")[![xonev](https://avatars.githubusercontent.com/u/142312?v=4)](https://github.com/xonev "xonev (11 commits)")[![ecentinela](https://avatars.githubusercontent.com/u/13818?v=4)](https://github.com/ecentinela "ecentinela (1 commits)")[![jonny-no1](https://avatars.githubusercontent.com/u/282458?v=4)](https://github.com/jonny-no1 "jonny-no1 (1 commits)")

### Embed Badge

![Health badge](/badges/louis1021-sg-i-calendar/health.svg)

```
[![Health](https://phpackages.com/badges/louis1021-sg-i-calendar/health.svg)](https://phpackages.com/packages/louis1021-sg-i-calendar)
```

###  Alternatives

[mck89/peast

Peast is PHP library that generates AST for JavaScript code

19139.2M47](/packages/mck89-peast)[sauladam/shipment-tracker

Parses tracking information for several carriers, like UPS, USPS, DHL and GLS by simply scraping the data. No need for any kind of API access.

9843.5k](/packages/sauladam-shipment-tracker)[jstewmc/rtf

Read and write Rich Text Format (RTF) documents with PHP

45153.1k6](/packages/jstewmc-rtf)[tcds-io/php-jackson

A lightweight, flexible object serializer for PHP, inspired by FasterXML/jackson

113.2k10](/packages/tcds-io-php-jackson)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
