PHPackages                             titledk/silverstripe-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. titledk/silverstripe-calendar

ActiveSilverstripe-module

titledk/silverstripe-calendar
=============================

Highly flexible calendar system for SilverStripe

1.2(8y ago)3287324[8 issues](https://github.com/titledk/silverstripe-calendar/issues)[1 PRs](https://github.com/titledk/silverstripe-calendar/pulls)1MITPHPPHP &gt;=5.4

Since Nov 15Pushed 7y ago7 watchersCompare

[ Source](https://github.com/titledk/silverstripe-calendar)[ Packagist](https://packagist.org/packages/titledk/silverstripe-calendar)[ Docs](https://github.com/titledk/silverstripe-calendar)[ RSS](/packages/titledk-silverstripe-calendar/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (7)Used By (1)

SilverStripe Calendar
=====================

[](#silverstripe-calendar)

*by Title Web Solutions*

The calendar for SilverStripe 3.x is a solid base for all your calendaring needs, it's built to be flexible and configurable so that it fits to most scenarios - both for web sites with public events, and web apps with private events - or a combination hereof.

[Read the blog post about this module on silverstripe.org](http://www.silverstripe.org/blog/managing-events-with-silverstripe-a-new-calendar-module/)

[![Preview](docs/img/preview.png)](docs/img/preview.png)

NOTE
----

[](#note)

This was meant to be a premium module, but as of November 2014 we decided to open source it.

If you like it, and need help setting it up, we can do that for you. [You can contact us here](http://title.dk/contact/).
Below you'll find a wish list of features/amendmends we'd like to implement. If you miss a feature and/or would like to sponsor development, we're happy to do so at a discounted rate - if so, please [contact us](http://title.dk/contact/).

**Pull requests are very welcome!** But please, get in touch with us if you're planning to develop a feature.

You can also join the conversation about this module on Gitter: [!\[Gitter\](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/titledk/silverstripe-calendar?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

Demo
----

[](#demo)

There's a demo site available on .
*On the demo site you can read more about the features, with practical examples.*

The code for the demo is available at .
If you plan to use the calendar, start out installing this!

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

[](#compatibility)

- For SilverStripe `3.1.x`: branch `1.0`
- For SilverStripe `3.2.x`: `master` / branch `1.1`

For tested versions check out the [Calendar demo](https://github.com/titledk/silverstripe-calendar-demo#compatibility)

Live examples
-------------

[](#live-examples)

The module is used on the following sites:

-
-
-

*Are you using this module on your site? Let us know!*

Features
--------

[](#features)

- Extensible. Customize it any way you want, while the basic concepts are taken care of.
- Solid, opinionated models.
- Event/Calendar/Category relations allowing complex filtering.
- Public/Private events.
- All features are configurable, so if you only need the basics, you can turn the rest off.
- Comprehensive calendar/event administration.
- JavaScript enhanced edit event form, usable both on frontend and backend, with date picker, time picker and dropdown, and duration dropdown, still allowing manual inputs
- Listing of events on the frontend through the CalendarPage
- Frontend calendar view, using the fullcalendar jQuery plugin
- Event Registrations (this might be moved to an external module)
- Calendar colors with configurable color options, and JS color palette field (works on both frontend and backend) - shading calendars allow for holiday calendars etc. to appear in the background
- No default frontend styling.
- Composer based workflow. You’ll be able to add and update the module using Composer.

Weak points at the moment
-------------------------

[](#weak-points-at-the-moment)

- The event model and administration is solid, but is missing recurring events
    - See the bottom of this readme file for our "wishlist"
- Frontend templates
    - The demo is overwriting much of the templates in the calendar
        - Includes should be more generic
    - preferably we should have a `Bootstrap` and a `Foundation` module for these
- Frontend styling
    - Would be nice with some easy-to-include Sass mixins
- Registrations See also [this discussion](https://gitter.im/jedateach/silverstripe-eventmanagement) on event registrations

Contributors
------------

[](#contributors)

- [Anselm Christophersen](https://github.com/anselmdk)
- [Colin Burns](https://github.com/colinburns)

License
-------

[](#license)

MIT

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

[](#installation)

Add at least the following to your project `_config.php`:

```
CalendarConfig::init();
```

See `CalendarConfig` on how to configure the module.

Screenshots
-----------

[](#screenshots)

### CMS

[](#cms)

[![Calendar](docs/img/screenshots/cms-calendar.png)](docs/img/screenshots/cms-calendar.png)[![Add event](docs/img/screenshots/cms-addevent.png)](docs/img/screenshots/cms-addevent.png)

### Frontend

[](#frontend)

[![Add event](docs/img/screenshots/frontend-addevent.png)](docs/img/screenshots/frontend-addevent.png)[![Fullcalendar](docs/img/screenshots/frontend-fullcalendar.png)](docs/img/screenshots/frontend-fullcalendar.png)[![List](docs/img/screenshots/frontend-list.png)](docs/img/screenshots/frontend-list.png)

Illustrations
-------------

[](#illustrations)

Illustrations for the calendar structure are done in Omnigraffle.
The Omnigraffle document is part of this repository, under `docs/img/silverstripe-calendar.graffle`.

### Concepts

[](#concepts)

This illustration outlines the basic calendar concepts:

[![Concepts](docs/img/omnigraffle-export/Concepts.png)](docs/img/omnigraffle-export/Concepts.png)

### Structure

[](#structure)

Current and planned structure (some of this might be moved to external repositories):

[![Concepts](docs/img/omnigraffle-export/Structure.png)](docs/img/omnigraffle-export/Structure.png)

### Plan: Private Calendars

[](#plan-private-calendars)

NOTE: Parts of this is already developed, so please contact us if you're planning to work on this.

[![Concepts](docs/img/omnigraffle-export/Private-Calendar-plan.png)](docs/img/omnigraffle-export/Private-Calendar-plan.png)

### Plan: Shared Calendars

[](#plan-shared-calendars)

[![Concepts](docs/img/omnigraffle-export/Shared-Calendars-plan.png)](docs/img/omnigraffle-export/Shared-Calendars-plan.png)

Roadmap/Ideas/Plans
-------------------

[](#roadmapideasplans)

### Wish List

[](#wish-list)

- Recurring events
- Unit tests
- Make everything translatable

### Possible Improvements

[](#possible-improvements)

- Structure
    - consider using ss 3.1 config system
    - consider implementing the `EventInterface`, allowing everything to act as an event
    - hiding page types that are not enabled via the settings
        - see [here](http://www.balbus.tk/hide-a-page-from-the-cms-pagetype-dropdown/) for a reference
    - remove SS3.0 compatibility to make support for SS3.1 easier (make sure to make a tag w. SS3.0 compatibility)
- Backend
    - Implement event search in sidebar (see `CMSMAin->SearchForm()`)
    - Dashboard panel to display individual calendars' coming events, and jump to creation form
    - Backend usability review (together with concept review)
- Frontend
    - template structure
        - go through includes and layout templates and see how they fit as building blocks
    - Change `EventPage` to be a `DataExtension`, and call it `EventsPage`. (We might need an update script for this.)

Versioning
----------

[](#versioning)

We're trying to stick to the [Semantic Versioning](http://semver.org)paradigm. That is:

> Consider a version format of X.Y.Z (Major.Minor.Patch). Bug fixes not affecting the API increment the patch version, backwards compatible API additions/changes increment the minor version, and backwards incompatible API changes increment the major version.

So:

- Go for the `Master` branch, if you want to live on the edge
- Go for the latest version branch (e.g. `1.0`) if you want minor changes and patches (choose the one that fit's your SilverStripe version, see above)
- Go for the tags (`1.0.0` and following), if you only want the actual releases

**NOTE:** If you think I'm missing something here, please let me know, @anselmdk on twitter, or through this repo's chat on [Gitter](https://gitter.im/titledk/silverstripe-calendar).

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 77.8% 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 ~220 days

Recently: every ~195 days

Total

6

Last Release

3093d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/13746b594daa08825bdaeea495edaa9e8868cb9e352f929e0c617e72b4cbde70?d=identicon)[titledk](/maintainers/titledk)

---

Top Contributors

[![anselmdk](https://avatars.githubusercontent.com/u/1316533?v=4)](https://github.com/anselmdk "anselmdk (49 commits)")[![ToddHossack](https://avatars.githubusercontent.com/u/1192292?v=4)](https://github.com/ToddHossack "ToddHossack (10 commits)")[![edwilde](https://avatars.githubusercontent.com/u/415374?v=4)](https://github.com/edwilde "edwilde (3 commits)")[![orthographic-pedant](https://avatars.githubusercontent.com/u/14522744?v=4)](https://github.com/orthographic-pedant "orthographic-pedant (1 commits)")

---

Tags

eventssilverstripecalendar

### Embed Badge

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

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

###  Alternatives

[silverstripe/cms

The SilverStripe Content Management System

5163.4M1.3k](/packages/silverstripe-cms)[silverstripe/admin

SilverStripe admin interface

262.6M325](/packages/silverstripe-admin)[unclecheese/eventcalendar

Event Calendar for the SilverStripe CMS

3215.2k8](/packages/unclecheese-eventcalendar)[silverstripe/event-calendar

Event Calendar for the SilverStripe CMS

318.5k3](/packages/silverstripe-event-calendar)[silverware/calendar

SilverWare Calendar Module.

1644.2k1](/packages/silverware-calendar)[moe/full-calendar

A lightweight calendar module for Silverstripe. Implements the popular javascript http://fullcalendar.io/ library.

121.5k](/packages/moe-full-calendar)

PHPackages © 2026

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