PHPackages                             bernskioldmedia/events-calendar-ical-feeds - 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. bernskioldmedia/events-calendar-ical-feeds

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

bernskioldmedia/events-calendar-ical-feeds
==========================================

Extends The Events Calendar with iCal feeds that users can subscribe to in their favorite calendar application.

1.2.6(2y ago)371[3 PRs](https://github.com/bernskioldmedia/events-calendar-ical-feeds/pulls)GPL-3.0+PHPPHP ^7.4|^8.0

Since Nov 3Pushed 2y ago2 watchersCompare

[ Source](https://github.com/bernskioldmedia/events-calendar-ical-feeds)[ Packagist](https://packagist.org/packages/bernskioldmedia/events-calendar-ical-feeds)[ GitHub Sponsors](https://github.com/bernskioldmedia)[ RSS](/packages/bernskioldmedia-events-calendar-ical-feeds/feed)WikiDiscussions main Synced yesterday

READMEChangelog (10)Dependencies (6)Versions (19)Used By (0)

iCalendar Feeds for The Events Calendar
=======================================

[](#icalendar-feeds-for-the-events-calendar)

[![License](https://camo.githubusercontent.com/9880a428f8a1259f68d6fb7cfbe893704f8db888d3544c1296ea07d3bd19751b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6265726e736b696f6c646d656469612f6576656e74732d63616c656e6461722d6963616c2d6665656473)](https://camo.githubusercontent.com/9880a428f8a1259f68d6fb7cfbe893704f8db888d3544c1296ea07d3bd19751b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6265726e736b696f6c646d656469612f6576656e74732d63616c656e6461722d6963616c2d6665656473) [![Downloads](https://camo.githubusercontent.com/319050360fe3e71fef5d6c083c386b5a0ae1831ae1b2cf5141a01829927deecd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6265726e736b696f6c646d656469612f6576656e74732d63616c656e6461722d6963616c2d66656564732f746f74616c)](https://camo.githubusercontent.com/319050360fe3e71fef5d6c083c386b5a0ae1831ae1b2cf5141a01829927deecd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f6265726e736b696f6c646d656469612f6576656e74732d63616c656e6461722d6963616c2d66656564732f746f74616c)

Extends The Events Calendar with iCal feeds that users can subscribe to in their favorite calendar application. By default, in The Events Calendar, users can export an iCalendar feed, but not subscribe to it.

We believe the use for a calendar export is to subscribe so that updates properly reflect. Therefore, this plugin adds a subscribable, auto-updating feed.

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

[](#installation)

You can install this package via composer.

```
composer require bernskioldmedia/events-calendar-ical-feeds
```

You can also install this package by grabbing the built ZIP file from the [releases page](https://github.com/bernskioldmedia/events-calendar-ical-feeds/releases) and uploading it to your plugins folder.

The plugin will update through the core WordPress plugin updater.

Usage
-----

[](#usage)

The feed URL is based on the events slug in the settings of The Event Calendar.

For the default slug `events`, the feed URL will be: `https://yourdomain.com/events/ical-feed`

*Please note that the default feed is `/ical` while this one is at `/ical-feed`.*

### Query Parameters

[](#query-parameters)

You can customize which events show up in a feed through the available query parameters.

### Setting a start date.

[](#setting-a-start-date)

Set a custom start date from when to start fetching events. By default, this is rolling 30 days before the current day.

`from=2021-01-01`

### Setting an end date.

[](#setting-an-end-date)

Set a custom end date until when to fetch events. By default, this is rolling six months after the current day.

`to=2021-12-31`

### Showing events for a specific venue

[](#showing-events-for-a-specific-venue)

You can create a venue-specific calendar feed by adding the venue parameter and passing the venue ID.

`venue=3`

### Showing events for a specific organizer

[](#showing-events-for-a-specific-organizer)

You can create an organizer-specific calendar feed by adding the organizer parameter and passing the organizer ID.

`organizer=3`

### Showing events for one or many event categories

[](#showing-events-for-one-or-many-event-categories)

You can create an event category-specific calendar feed by adding the category parameter and passing one or more event category IDs, comma-separated.

`categories=28` or `categories=25,28,93`

### Controlling how many events to include

[](#controlling-how-many-events-to-include)

You can customize the number of events to show in the calendar. By default, this is 100.

There is an upper limit for performance reasons and to stop anyone from abusing and sinking your server. By default, this is 500 but can be customized in a filter (see below).

`amount=250`

Filters &amp; Actions
---------------------

[](#filters--actions)

We make a few filters and actions available for customizing and extending.

### Controlling the max amount of events in the feed

[](#controlling-the-max-amount-of-events-in-the-feed)

Define how many items can be at most be included in the feed. No more items will be allowed, even if set via the filters. Defaults to `500`.

```
// Allow 1000 events to be loaded into the iCal feed.
add_filter( 'events_calendar_ical_feeds_max_amount', function(int $max_events, \BernskioldMedia\WP\EventsCalendarIcalFeeds\Calendar_Feed $feed) {
	return 1000;
} );
```

### Customizing the default start date

[](#customizing-the-default-start-date)

Define how long before the current dates we should fetch events for the feeds. By default, this is `-30 days` and means that events in the past 30 days will show up in the calendar.

Be mindful of this, as a larger timespan will mean a bigger feed, which has performance implications.

Return any valuable compatible with `DateTime`.

```
// Including events starting 45 days from any given day.
add_filter( 'events_calendar_ical_feeds_default_start_date', function( string $start_date ) {
	return '-45 days';
});
```

### Customizing the default end date

[](#customizing-the-default-end-date)

Define how long after the current dates we should fetch events for the feeds. By default, this is to `+6 months` and means that events in the next six months will appear in the calendar.

Be mindful of this, as a larger timespan will mean a bigger feed, which has performance implications.

Return any valuable compatible with `DateTime`.

```
// Including events rolling one year from today.
add_filter( 'events_calendar_ical_feeds_default_end_date', function( string $end_date ) {
	return '+1 year';
});
```

### Customizing the default feed slug

[](#customizing-the-default-feed-slug)

If you don't like the `/ical-feed` suffix of the events slug, you can customize it through this filter. Return any one directory level string.

Please note that returning `/ical` here will clash with the built-in feed in The Events Calendar.

*After changing, don't forget to refresh your permalinks.*

```
// Making the URL /events/subscribe.
add_filter( 'events_calendar_ical_feeds_feed_slug', function() {
	return 'subscribe';
});
```

### Customizing the calendar feed

[](#customizing-the-calendar-feed)

You can customize the calendar feed before output if you want to add/change/remove anything that this plugin does by default. Please see [spatie/icalendar-generator](https://github.com/spatie/icalendar-generator) for how to interact with the calendar object.

```
// Customize the calendar feed.
add_action( 'events_calendar_ical_create_calendar', function( \Spatie\IcalendarGenerator\Components\Calendar $calendar ) {
	// $calendar->...
});
```

### Customizing the event object

[](#customizing-the-event-object)

You can customize the event object before it is added to the calendar feed if you want to add/change/remove anything that this plugin does by default. Please see [spatie/icalendar-generator](https://github.com/spatie/icalendar-generator) for how to interact with the event object.

This can be used for example to customize the data or to add additional metadata based on the event ID.

```
// Customize the calendar feed.
add_action( 'events_calendar_ical_event_from_id', function( \Spatie\IcalendarGenerator\Components\Event $event, int $event_id ) {
	// $event->...
});
```

### Preventing asset loading

[](#preventing-asset-loading)

If you don't want this plugin to load its own assets (see below), you can prevent it by returning false from this filter. It returns true by default.

```
// Prevent Events Calendar iCal Feeds from loading assets.
add_action( 'events_calendar_ical_load_assets', '__return_false' );
```

Assets
------

[](#assets)

This plugin requires [Alpine.js](https://alpinejs.dev) for a few frontend operations. Because Alpine.js is something that you might already be running, or have across many projects, we try to be nice when checking for it.

We load it by checking if the handle `alpinejs` is already registered. If it is, we won't touch it. Just enqueue it. If it isn't, we'll register and enqueue.

To completely disable loading of assets, see "Preventing asset loading" above.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity64

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~61 days

Recently: every ~155 days

Total

15

Last Release

797d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51986177e3badf5ae6cd008a309befe4ec88264bd518c1a623bd33f5cebc0fc5?d=identicon)[bernskiold](/maintainers/bernskiold)

---

Top Contributors

[![ErikBernskiold](https://avatars.githubusercontent.com/u/1166728?v=4)](https://github.com/ErikBernskiold "ErikBernskiold (45 commits)")[![annlickander](https://avatars.githubusercontent.com/u/1032697?v=4)](https://github.com/annlickander "annlickander (37 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (14 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (7 commits)")[![georgestephanis](https://avatars.githubusercontent.com/u/941023?v=4)](https://github.com/georgestephanis "georgestephanis (1 commits)")

---

Tags

the-events-calendarwordpresswordpress-plugin

### Embed Badge

![Health badge](/badges/bernskioldmedia-events-calendar-ical-feeds/health.svg)

```
[![Health](https://phpackages.com/badges/bernskioldmedia-events-calendar-ical-feeds/health.svg)](https://phpackages.com/packages/bernskioldmedia-events-calendar-ical-feeds)
```

###  Alternatives

[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[pfefferle/wordpress-activitypub

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

5671.4k1](/packages/pfefferle-wordpress-activitypub)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

18238.1k2](/packages/civicrm-civicrm-drupal-8)[mediawiki/semantic-glossary

A terminology markup extension with a Semantic MediaWiki back-end

1352.4k](/packages/mediawiki-semantic-glossary)[humanmade/lottie-lite

A lightweight Lottie Animations Extension for WordPress

374.3k](/packages/humanmade-lottie-lite)

PHPackages © 2026

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