PHPackages                             bnomei/kirby3-ics - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. bnomei/kirby3-ics

AbandonedArchivedKirby-plugin[Utility &amp; Helpers](/categories/utility)

bnomei/kirby3-ics
=================

Generate ICS Files

1.0.7(2y ago)16486↓50%MITPHPPHP &gt;=8.0

Since Oct 27Pushed 2y ago2 watchersCompare

[ Source](https://github.com/bnomei/kirby3-ics)[ Packagist](https://packagist.org/packages/bnomei/kirby3-ics)[ Fund](https://buymeacoff.ee/bnomei)[ Fund](https://paypal.me/bnomei)[ RSS](/packages/bnomei-kirby3-ics/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (8)Dependencies (5)Versions (9)Used By (0)

Kirby 3 ICS
===========

[](#kirby-3-ics)

[![Release](https://camo.githubusercontent.com/57fb421c00460f83980baefd7bc9c1a1590044a13e5fe269ee7a59de6f9fa14c/68747470733a2f2f666c61742e62616467656e2e6e65742f7061636b61676973742f762f626e6f6d65692f6b69726279332d6963733f636f6c6f723d616538316666)](https://camo.githubusercontent.com/57fb421c00460f83980baefd7bc9c1a1590044a13e5fe269ee7a59de6f9fa14c/68747470733a2f2f666c61742e62616467656e2e6e65742f7061636b61676973742f762f626e6f6d65692f6b69726279332d6963733f636f6c6f723d616538316666)[![Downloads](https://camo.githubusercontent.com/8deb18c7e64acb9103a974f245f6dbce89bf6e65c5caa60cd8da23c8c958f012/68747470733a2f2f666c61742e62616467656e2e6e65742f7061636b61676973742f64742f626e6f6d65692f6b69726279332d6963733f636f6c6f723d323732383232)](https://camo.githubusercontent.com/8deb18c7e64acb9103a974f245f6dbce89bf6e65c5caa60cd8da23c8c958f012/68747470733a2f2f666c61742e62616467656e2e6e65742f7061636b61676973742f64742f626e6f6d65692f6b69726279332d6963733f636f6c6f723d323732383232)[![Build Status](https://camo.githubusercontent.com/c62cab829587c12252d32d686a9a53a3abcd20eb14638524287527a86f454cfa/68747470733a2f2f666c61742e62616467656e2e6e65742f7472617669732f626e6f6d65692f6b69726279332d696373)](https://travis-ci.com/bnomei/kirby3-ics)[![Coverage Status](https://camo.githubusercontent.com/633889abc103fcda59e9eec91822bbdfd77334596d5a98759eea3fdca7d09aff/68747470733a2f2f666c61742e62616467656e2e6e65742f636f766572616c6c732f632f6769746875622f626e6f6d65692f6b69726279332d696373)](https://coveralls.io/github/bnomei/kirby3-ics)[![Maintainability](https://camo.githubusercontent.com/71cc7e32d17ed79a558a729d3be14b1850f45300be315b332603b07f2945e3ac/68747470733a2f2f666c61742e62616467656e2e6e65742f636f6465636c696d6174652f6d61696e7461696e6162696c6974792f626e6f6d65692f6b69726279332d696373)](https://codeclimate.com/github/bnomei/kirby3-ics)[![Twitter](https://camo.githubusercontent.com/b90e4b58a887e8ad09ec267628b75199a48522a9e01e88b129e5d2d730dffe50/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f747769747465722f626e6f6d65693f636f6c6f723d363664396566)](https://twitter.com/bnomei)

Generate ICS Files.

Commerical Usage
----------------

[](#commerical-usage)

> **Support open source!**
>
> This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.
> If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?
>
> Be kind. Share a little. Thanks.
>
> ‐ Bruno

MONEY[Github sponsor](https://github.com/sponsors/bnomei)[Patreon](https://patreon.com/bnomei)[Buy Me a Coffee](https://buymeacoff.ee/bnomei)[Paypal dontation](https://www.paypal.me/bnomei/15)[Hire me](mailto:b@bnomei.com?subject=Kirby)Installation
------------

[](#installation)

- unzip [master.zip](https://github.com/bnomei/kirby3-ics/archive/master.zip) as folder `site/plugins/kirby3-ics` or
- `git submodule add https://github.com/bnomei/kirby3-ics.git site/plugins/kirby3-ics` or
- `composer require bnomei/kirby3-ics`

Usecase
-------

[](#usecase)

### Plain PHP

[](#plain-php)

```
// automatic id
$ics = new \Bnomei\ICS();
$id = $ics->id();

// or use custom id
$id = sha1('myUniqueID');

// provide custom options
$ics = new \Bnomei\ICS([
    Vcalendar::UNIQUE_ID => $id,
]);

// maybe reuse a static object identified by id
// otherwise it will be created now
$ics = \Bnomei\ICS::createOrLoad($id);

// get Vcalendar object...
$vcalendar = $ics->vcalendar();
// ... apply your ics data (see docs of lib)
// then retrieve the ics string
echo $ics;
```

### Page Method

[](#page-method)

Use the `ics()->vcalendar()`-method to retrieve the `Vcalender` Object then add properties, events and alarms. Please read the [original docs of used lib](https://github.com/iCalcreator/iCalcreator) for an overview about what is possible.

**site/templates/default.php**

```
$vcalendar = $page->ics()->vcalendar();

$vcalendar->setXprop(Vcalendar::X_WR_CALDESC, "This is a demo calendar");

$event1 = $vcalendar->newVevent()
    ->setTransp( Vcalendar::OPAQUE )
    ->setClass( Vcalendar::P_BLIC )
    ->setSequence( 1 )
    // describe the event
    ->setSummary( 'Scheduled meeting with five occurrences' )
    ->setDescription(
         'Agenda for the the meeting...',
         [ Vcalendar::ALTREP =>
             'CID:' ]
    )
    ->setComment( 'It\'s going to be fun..' )
    // place the event
    ->setLocation( 'Kafé Ekorren Stockholm' )
    ->setGeo( '59.32206', '18.12485' )
    // set the time
    ->setDtstart(
        new DateTime(
            '20190421T090000',
            new DateTimezone( 'Europe/Stockholm' )
        )
    )
    ->setDtend(
        new DateTime(
            '20190421T100000',
            new DateTimezone( 'Europe/Stockholm' )
        )
    );

echo $page->ics();
```

> TIP: You can retrieve the static unique object for a page using the page method `$page->ics()`. This makes it possible to prepare the ICS in a [page model](https://getkirby.com/docs/reference/plugins/extensions/page-models) or [page controller](https://getkirby.com/docs/guide/templates/controllers) and just display the data in your template or [content representation](https://getkirby.com/docs/guide/templates/content-representations). Check out the [tests for an example](https://github.com/bnomei/kirby3-ics/tree/master/tests/site).

### Content Representations

[](#content-representations)

Assuming you prepared your ics data in a model or controller your content representation could be as short as this example.

**site/templates/default.ics.php**

```
$page->ics()->download(
    $page->slug() . '.ics'
);
```

Dependencies
------------

[](#dependencies)

- [iCalcreator/iCalcreator](https://github.com/iCalcreator/iCalcreator)

Disclaimer
----------

[](#disclaimer)

This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please [create a new issue](https://github.com/bnomei/kirby3-ics/issues/new).

License
-------

[](#license)

[MIT](https://opensource.org/licenses/MIT)

It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.

Credits
-------

[](#credits)

based on V2 versions of

-

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

###  Release Activity

Cadence

Every ~196 days

Recently: every ~334 days

Total

8

Last Release

1014d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.2.0

1.0.5PHP &gt;=8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3265642?v=4)[Bruno Meilick](/maintainers/bnomei)[@bnomei](https://github.com/bnomei)

---

Top Contributors

[![bnomei](https://avatars.githubusercontent.com/u/3265642?v=4)](https://github.com/bnomei "bnomei (24 commits)")

---

Tags

alarmattendeecalendareventeventsicalicalendaricskirby3kirby3-cmskirby3-pluginorganizerrfc2445rfc5545eventeventsiCalendaricsicalrfc5545calendaralarmrfc2445Organizerkirby3kirby3-pluginkirby3-cmsattendee

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bnomei-kirby3-ics/health.svg)

```
[![Health](https://phpackages.com/badges/bnomei-kirby3-ics/health.svg)](https://phpackages.com/packages/bnomei-kirby3-ics)
```

###  Alternatives

[kigkonsult/icalcreator

iCalcreator is the PHP implementation of rfc2445/rfc5545 and rfc updates, management of calendar information

2462.6M16](/packages/kigkonsult-icalcreator)[eluceo/ical

The eluceo/iCal package offers an abstraction layer for creating iCalendars. You can easily create iCal files by using PHP objects instead of typing your \*.ics file by hand. The output will follow RFC 5545 as best as possible.

1.2k17.5M47](/packages/eluceo-ical)[spatie/icalendar-generator

Build calendars in the iCalendar format

6787.4M9](/packages/spatie-icalendar-generator)[fabianmichael/kirby-meta

Your all-in-one powerhouse for any SEO and metadata needs imaginable.

6910.7k1](/packages/fabianmichael-kirby-meta)[welp/ical-bundle

Symfony Bundle to manage .ics iCal file (creating and eventually reading)

10114.3k](/packages/welp-ical-bundle)[sssurii/laravel-ics

Laravel package to create iCalendar / ICS files. Send new event invitations via Email and can cancel or update already sent invitation.

2159.3k](/packages/sssurii-laravel-ics)

PHPackages © 2026

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