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

ActiveFlarum-extension[Utility &amp; Helpers](/categories/utility)

ernestdefoe/calendar
====================

A full-featured calendar &amp; events extension for Flarum 2 — month/list views, RSVP, categories, recurring events, cover images, iCal feed + Google Calendar export, and an Upcoming-Events widget (works on the default theme, Bespoke, and Page Builder).

v2.2.0(2w ago)0183MITTypeScriptPHP ^8.3CI passing

Since Jun 4Pushed 2w agoCompare

[ Source](https://github.com/ernestdefoe/calendar)[ Packagist](https://packagist.org/packages/ernestdefoe/calendar)[ Docs](https://github.com/ernestdefoe/calendar)[ RSS](/packages/ernestdefoe-calendar/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (9)Dependencies (2)Versions (10)Used By (0)

Calendar &amp; Events for Flarum
================================

[](#calendar--events-for-flarum)

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](https://github.com/ernestdefoe/calendar/blob/main/LICENSE)[![Latest version](https://camo.githubusercontent.com/106d5daa8732a953f4a1ad12022d32cc5aa08aedd2e42372f9758f07a1a11bf5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f65726e6573746465666f652f63616c656e6461723f6c6162656c3d72656c65617365)](https://github.com/ernestdefoe/calendar/releases)[![Flarum](https://camo.githubusercontent.com/685486b52fcf58814852c830ccf7d3873e94c32a77ef67b19bbe1958651d2fe9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466c6172756d2d253545322e302d6f72616e67652e737667)](https://flarum.org)

A full-featured, **free** calendar &amp; events extension for **Flarum 2** — and an **engagement engine** that makes your whole community feel alive. Events (month/ week/day/list, RSVPs, recurrence, iCal + Google Calendar) **plus** a GitHub-style activity heatmap with streaks, a forum-pulse leaderboard, live countdowns in any post, "on this day" memories, and member birthday/anniversary celebrations.

Everything works on the **default theme** and integrates natively with [Bespoke](https://github.com/ernestdefoe/bespoke) and [Page Builder](https://github.com/ernestdefoe/page-builder).

> Built to feel premium. Priced at free.

---

✨ Engagement engine (the reason to install even if you don't need a calendar)
-----------------------------------------------------------------------------

[](#-engagement-engine-the-reason-to-install-even-if-you-dont-need-a-calendar)

- 🔥 **Activity heatmap + streaks** — every member profile gets a GitHub-style year-long contribution graph with current/longest **streaks**, totals, and earned **achievement badges**. The single best driver of daily return visits.
- 📈 **Forum Pulse** — a community-wide activity heatmap + "most active" leaderboard widget that shows, at a glance, that the place is buzzing.
- ⏳ **Live countdowns** — drop `[countdown=2026-12-31T23:59:59]New Year[/countdown]`into *any* post for a live ticking timer; upcoming events get one automatically.
- 🕰️ **On this day** — resurfaces the most-discussed threads from today's date in years past, reviving old conversations.
- 🎂 **Member celebrations** — opt-in **birthdays** (month/day only — never a year) and join-**anniversaries**, shown in a "today's celebrations" widget.

Each appears on the default theme **and** as a Bespoke widget / Page Builder block, with admin toggles for the index widgets.

Calendar &amp; events features
------------------------------

[](#calendar--events-features)

- 🗓️ **Month, Week, Day &amp; list** views with quick prev / today / next navigation. Week/Day are true time grids with hour lines, a live "now" indicator, side-by-side overlapping events, and double-click-to-create at the clicked time slot.
- 📍 **Location** on every event, rendered as a one-tap **Google Maps** link.
- 🔁 **Recurring events** (daily / weekly / monthly / yearly) via standard `RRULE`, expanded on the fly so each occurrence shows on the right day.
- ✅ **RSVP** — members mark themselves *Going* or *Interested*, with live counts.
- 🎨 **Categories with colours** — filter the calendar and give each event a coloured accent. Managed from a dedicated admin panel with a colour picker.
- 🖼️ **Cover image** per event — paste a URL, or **upload a file** directly when [FoF Upload](https://github.com/FriendsOfFlarum/upload) is installed (auto-detected; falls back to a URL field otherwise).
- 📅 **iCal export** — a subscribable `feed.ics` for the whole calendar plus a per-event `.ics` download (RFC 5545, proper escaping &amp; folding).
- 🟦 **Google Calendar** — "Add to Google Calendar" deep-links with title, time, description and location pre-filled.
- 💬 **Optional discussion thread** per event (hybrid model) so members can comment using Flarum's native discussion UI.
- 🧩 **Upcoming Events widget** — works standalone on the **default theme**, and registers as a first-class widget/block in **Bespoke** and **Page Builder**.
- 🌓 **Theme-aware** — every colour resolves through Flarum's own CSS variables, so it looks correct in light &amp; dark and on custom themes out of the box.
- 🔐 **Permissions** — separate "create events" and "manage all events" controls.

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

[](#installation)

```
composer require ernestdefoe/calendar
php flarum migrate
php flarum cache:clear
```

Then open **Admin → Calendar** to configure it.

Updating
--------

[](#updating)

```
composer update ernestdefoe/calendar
php flarum migrate
php flarum cache:clear
```

Configuration
-------------

[](#configuration)

**Admin → Calendar** gives you:

SettingWhat it does**Default view**Month grid or upcoming list when the calendar opens.**Week starts on**Sunday or Monday.**Index widget**Show an "Upcoming events" widget on the forum index.**Widget count**How many upcoming events the widget lists.**Link discussion**Auto-create a discussion thread for each new event (for comments).**Categories**Add / rename / recolour / delete colour-coded categories.Two permissions are added under **Admin → Permissions**:

- **Create calendar events** — who can add events.
- **Manage all calendar events** — who can edit/delete events they don't own.

The Upcoming Events widget
--------------------------

[](#the-upcoming-events-widget)

The widget is a self-contained component, so it shows up automatically wherever your theme supports it:

- **Default theme** — appears in the index sidebar (toggle in admin).
- **Bespoke** — available in the widget tray as **Upcoming events**.
- **Page Builder** — available as an **Events** block.

Calendar subscription (iCal)
----------------------------

[](#calendar-subscription-ical)

Every calendar exposes a subscribable feed at:

```
https://your-forum.example/calendar/feed.ics

```

Paste that URL into Google Calendar (*Other calendars → From URL*), Apple Calendar (*File → New Calendar Subscription*), or Outlook to keep events in sync. Each event also has its own `.ics` download and an "Add to Google Calendar" link.

How events are modelled
-----------------------

[](#how-events-are-modelled)

Events are their own records (title, time, location, recurrence, etc.). When **Link discussion** is enabled, creating an event also spins up a normal Flarum discussion linked to it, so comments, mentions, likes and notifications all work exactly as members expect — no parallel comment system to learn.

Compatibility
-------------

[](#compatibility)

- Flarum `^2.0`
- PHP `^8.3`
- No required third-party extensions. Plays nicely with Bespoke &amp; Page Builder when present, and degrades gracefully when they aren't.
- **Optional:** [FoF Upload](https://github.com/FriendsOfFlarum/upload) — enables drag-free file uploads for event cover images.

Contributing
------------

[](#contributing)

Issues and PRs welcome. To build the front-end locally:

```
cd js
npm install
npm run dev      # watch
npm run build    # production
```

License
-------

[](#license)

[MIT](LICENSE) © ernestdefoe

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance96

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 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 ~3 days

Total

9

Last Release

19d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c9978664264055711c21fbcf73c937f758df771d9cb40f6a25370b10123e7abc?d=identicon)[ernestdefoe](/maintainers/ernestdefoe)

---

Top Contributors

[![ernestdefoe](https://avatars.githubusercontent.com/u/24905286?v=4)](https://github.com/ernestdefoe "ernestdefoe (18 commits)")

---

Tags

eventsicalcalendarflarumflarum-extensionrsvp

### Embed Badge

![Health badge](/badges/ernestdefoe-calendar/health.svg)

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

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

12128.3k](/packages/flarum-lang-russian)[fof/byobu

Well integrated, advanced private discussions.

59120.6k14](/packages/fof-byobu)[webbinaro/flarum-calendar

Adds a calendar of events created by users

178.2k](/packages/webbinaro-flarum-calendar)[fof/discussion-language

Specify the language a discussion is written in &amp; sort by language

1034.8k7](/packages/fof-discussion-language)[flarum-lang/french

French language pack to localize the Flarum forum software plus its official and third-party extensions.

1938.7k](/packages/flarum-lang-french)[fof/masquerade

User profile builder extension for your Flarum forum.

2025.4k6](/packages/fof-masquerade)

PHPackages © 2026

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