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

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

teragon/calendar
================

Laravel 5 Calendar, based on gloudemans/calendar and vics80/calendar

1.02(11y ago)126PHPPHP &gt;=5.3.0

Since Dec 10Pushed 10y ago1 watchersCompare

[ Source](https://github.com/tera-g/LaravelCalendar)[ Packagist](https://packagist.org/packages/teragon/calendar)[ RSS](/packages/teragon-calendar/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (5)Used By (0)

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

[](#installation)

Install the package through [Composer](http://getcomposer.org/). Edit your project's `composer.json` file by adding:

```
"require": {
	"laravel/framework": "4.0.*",
	"teragon/calendar": "dev-master"
}
```

Next, run the Composer update command from the Terminal:

```
composer update

```

Now all you have to do is add the service provider of the package and alias the package. To do this open your `config/app.php` file.

Add a new line to the `service providers` array:

```
'Teragon\Calendar\CalendarServiceProvider'

```

And finally add a new line to the `aliases` array:

```
'Calendar' => 'Teragon\Calendar\Facades\Calendar',

```

Now you're ready to start using the calendar package in your application.

Usage
-----

[](#usage)

You can use the `generate` method to generate a calendar.

```
// Generate a calendar for the current month and year
Calendar::generate();

// Generate a calendar for the specified year and month
Calendar::generate(2012, 6);
```

If you want to add events you have two ways to do it: The first way is to adding single events without attributes to the event's wrapper

```
// Add an array of events as the third parameter to add them to the calendar,
// keys should be the days of the month.
$data = array(
	3  => 'http://example.com/news/article/2006/03/',
	7  => 'http://example.com/news/article/2006/07/',
	13 => 'http://example.com/news/article/2006/13/',
	26 => 'http://example.com/news/article/2006/26/'
);

Calendar::generate(2006, 6, $data);
```

The second way is to adding multiple events in a same day. You cal also add somre attributes to the event's wrapper

```
// Add an array of events as the third parameter to add them to the calendar,
// keys should be the days of the month.
$data = array();
$data[3][] = array(
                'content' => 'http://example.com/news/article/2006/03/',
                'attr'    => array(
                        'class' => 'some-css-class'
                    )
                );
$data[3][] = array(
                'content' => 'http://example.com/news/article/2006/04/',
                'attr'    => array(
                        'class' => 'some-css-class'
                    )
                ),
$data[12][] = array(
                'content' => 'http://example.com/news/article/2006/10/',
                'attr'    => array(
                        'class' => 'another-css-class'
                    )
                ),

Calendar::generate(2006, 6, $data);
```

There are a few config variables you can set to change the layout of the calendar:

PreferenceDefault ValueOptionsDescriptiontemplateNoneNoneA string containing your calendar template. See the template section below.local\_timetime()NoneA Unix timestamp corresponding to the current time.start\_daysundayAny week day (sunday, monday, tuesday, etc.)Sets the day of the week the calendar should start on.month\_typelonglong, shortDetermines what version of the month name to use in the header. long = January, short = Jan.day\_typeabrlong, short, abrDetermines what version of the weekday names to use in the column headers. long = Sunday, short = Sun, abr = Su.show\_next\_prevfalsetrue/falseDetermines whether to display links allowing you to toggle to next/previous months. See information on this feature below.segmentsfalsetrue/falseDefault the next/prev link will use a query string, if you set this var to true, URI segments will be usedeventContainer&lt;p {attr}&gt;{event}Some HTML containing {event} and optional {attr}HTML DOM to show the event ({event} is the string with the event's description and {attr} are the attributes defined in data array)You can set these values using the `initialize` method

```
$config = array(
	'start_day' => 'monday',
	'month_type' => 'long'
);

Calendar::initialize($config);
```

Template
--------

[](#template)

You can also change the template used for the calendar.

```
$template = '
   {table_open}{/table_open}

   {heading_row_start}{/heading_row_start}

   {heading_previous_cell}&lt;&lt;{/heading_previous_cell}
   {heading_title_cell}{heading}{/heading_title_cell}
   {heading_next_cell}&gt;&gt;{/heading_next_cell}

   {heading_row_end}{/heading_row_end}

   {week_row_start}{/week_row_start}
   {week_day_cell}{week_day}{/week_day_cell}
   {week_row_end}{/week_row_end}

   {cal_row_start}{/cal_row_start}
   {cal_cell_start}{/cal_cell_start}

   {cal_cell_content}{day}{/cal_cell_content}
   {cal_cell_content_today}{day}{/cal_cell_content_today}

   {cal_cell_no_content}{day}{/cal_cell_no_content}
   {cal_cell_no_content_today}{day}{/cal_cell_no_content_today}

   {cal_cell_blank}&nbsp;{/cal_cell_blank}

   {cal_cell_end}{/cal_cell_end}
   {cal_row_end}{/cal_row_end}

   {table_close}{/table_close}
';

Calendar::initialize(array('template' => $template));

echo Calendar::generate();
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 53.3% 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 ~0 days

Total

3

Last Release

4021d ago

### Community

---

Top Contributors

[![Crinsane](https://avatars.githubusercontent.com/u/1297781?v=4)](https://github.com/Crinsane "Crinsane (8 commits)")[![bibloos](https://avatars.githubusercontent.com/u/26306279?v=4)](https://github.com/bibloos "bibloos (6 commits)")[![vics80](https://avatars.githubusercontent.com/u/6604190?v=4)](https://github.com/vics80 "vics80 (1 commits)")

### Embed Badge

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

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

###  Alternatives

[motomedialab/simple-laravel-audit

A simple audit helper that integrates directly with Laravel &amp; FilamentPHP

262.7k](/packages/motomedialab-simple-laravel-audit)

PHPackages © 2026

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