Download the PHP package ernestdefoe/calendar without Composer

On this page you can find all versions of the php package ernestdefoe/calendar. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package calendar

Calendar & Events for Flarum

License Latest version Flarum

A full-featured, free calendar & 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 and Page Builder.

Built to feel premium. Priced at free.


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

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

Calendar & events features

Installation

Then open Admin → Calendar to configure it.

Updating

Configuration

Admin → Calendar gives you:

Setting What 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:

The Upcoming Events widget

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

Calendar subscription (iCal)

Every calendar exposes a subscribable feed at:

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.

Creating events from outside Flarum (REST API)

Every screen in the calendar is built on public HTTP endpoints under /api, so anything that can talk to your forum can create events — a cron job, a Discord bot, a game server, another site. There is no separate integration to install.

Authenticate the way you would with any Flarum endpoint: a master API key sent as Authorization: Token <key>; userId=<id>. The acting user needs the Create calendar events permission.

start and end are ISO-8601 and are stored in UTC — send an offset (or a trailing Z) rather than a bare local time, or the server has to guess. For an all-day event send allDay: true with the date's UTC midnight (2026-10-04T00:00:00Z); that is what keeps a birthday on the 4th for a reader in Auckland as well as in Los Angeles. timezone is the display timezone and does not change what is stored.

The rest of the surface:

Method Route Purpose
GET /api/calendar/events List (accepts from / to)
GET /api/calendar/events/{id} One event
POST /api/calendar/events Create
PATCH /api/calendar/events/{id} Update
DELETE /api/calendar/events/{id} Delete
POST /api/calendar/events/{id}/rsvp Set the actor's RSVP
GET /api/calendar/categories List categories

Requests take the JSON:API envelope ({"data": {"attributes": {…}}}); responses come back as {"data": {…}} with the event flattened into one object — id, slug, resolved category, author, RSVP counts and the export links — rather than as JSON:API included relationships you have to stitch together.

A rejected save is a 422 carrying errors[] with a source.pointer per field, the same shape Flarum uses everywhere else, so existing error handling works unchanged.

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

Contributing

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

License

MIT © ernestdefoe


All versions of calendar with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
flarum/core Version ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ernestdefoe/calendar contains the following files

Loading the files please wait ...