SimpleCalendar
Recent Activity
GitHub (web-flow)
Merge pull request #48 from donatj/dependabot/composer/phpstan/phpstan-tw-2.3.4
Update phpstan/phpstan requirement from ^2.3.2 to ^2.3.4
Update phpstan/phpstan requirement from ^2.3.2 to ^2.3.4
Updates the requirements on phpstan/phpstan to permit the latest version.
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-version: 2.3.4
dependency-type: direct:development
...
Merge pull request #47 from donatj/dependabot/composer/phpstan/phpstan-tw-2.3.2
Update phpstan/phpstan requirement from ^2.3.0 to ^2.3.2
Merge pull request #41 from donatj/ci/add-php-8-6
ci: test against PHP 8.6
ci: test against PHP 8.6
GitHub (web-flow)
Update phpstan/phpstan requirement from ^2.3.0 to ^2.3.2
Updates the requirements on phpstan/phpstan to permit the latest version.
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-version: 2.3.2
dependency-type: direct:development
...
Merge pull request #46 from donatj/fixup/formatting-and-docs
Fixup/formatting and docs
versioning-strategy: increase
Wire up corpus/php-cs-fixer-config
GitHub (web-flow)
Merge pull request #45 from donatj/fix/improve-test-coverage
Improve calendar test coverage
Shape weekday names
Type private calendar state
Describe calendar class overrides
Upgrade PHPStan to 2.3
GitHub (web-flow)
Check documentation in CI (#43)
-
Add documentation workflow
-
Check documentation in CI
-
Switch mddoc to composer autoloader
Merge pull request #42 from donatj/ci/add-coveralls
Add Coveralls workflow
GitHub (web-flow)
Bump actions/checkout from 6 to 7 (#39)
Bumps actions/checkout from 6 to 7.
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Merge pull request #37 from donatj/php-cs-fixer-dry-run
Run php-cs-fixer in dry-run mode in CI
Run php-cs-fixer in dry-run mode in CI
Update PHPUnit version constraint in composer.json
GitHub (web-flow)
Merge pull request #32 from donatj/donatj-patch-2
Add PHP version 8.5 to CI workflow
Add PHP version 8.5 to CI workflow
Bump actions/checkout from 5 to 6 (#31)
Bumps actions/checkout from 5 to 6.
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
SimpleCalendar is a lightweight PHP library for generating HTML calendars. It provides a simple month-view calendar with support for events, date ranges, and customizable formatting.
It is designed to be easy to integrate into existing PHP projects without requiring a framework or JavaScript.
Much more information is available on GitHub.
Example Calendar
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Sample Event | Sample Event | |||||
Installation
Install SimpleCalendar using Composer:
composer require 'donatj/simplecalendar'
Sample Usage
<?php
require __DIR__ . '/vendor/autoload.php';
$calendar = new \donatj\SimpleCalendar();
$calendar->setStartOfWeek('Sunday');
$calendar->addDailyHtml('Sample Event', 'today', 'tomorrow');
echo $calendar->render();
This generates an HTML calendar for the current month with a sample event spanning today and tomorrow.
SimpleCalendar also supports displaying arbitrary months, changing weekday names, and customizing the generated HTML through CSS classes.
A sample stylesheet is available in the repository.
| Build | Date | Notes |
|---|---|---|
| v0.8.2 Download | What's ChangedTest in PHP 8.6
Full Changelog: https://github.com/donatj/SimpleCalendar/compare/v0.8.1...v0.8.2 | |
| v0.8.1 Download | What's Changed
Full Changelog: https://github.com/donatj/SimpleCalendar/compare/v0.8.0...v0.8.1 | |
| v0.8.0 Download | What's Changed
Full Changelog: https://github.com/donatj/SimpleCalendar/compare/v0.7.0...v0.8.0 | |
| v0.7.0 Download | This was originally intended to be a major release, but preventing interface changes was simple enough to keep this as a minor release. Notable (Potentially Breaking) Changes
Things to Watch Out For
What's Changed
New Contributors
Full Changelog: https://github.com/donatj/SimpleCalendar/compare/v0.6.2...v0.7.0 | |
| v0.6.2 Download | In fixing one issue with mismatched TRs I caused another. Special thanks to @keesiemeijer for the kind PR, the problem is now fixed complete with regression tests to prevent the problem from creeping up in the future. |
Comment by: Greg Duckworth on
Comment by: Jesse G. Donat on
The constructor on Simple Calendar takes a date string (see strtotime()) so an easy way is simply
$cal = new SimpleCalendar('+1 Month');
or
$cal = new SimpleCalendar('June 2012');
There is also a setDate method which allows you to change the date of the calendar after initial construction.
Comment by: HvToor on
Hope you can help with it,
Comment by: Jesse G. Donat on
Comment by: Dirk on
Thx in advance
Comment by: Alberto on
"Notice: Undefined offset: 1 in SimpleCalendar.php on line 150"
Comment by: murali on
Thanks.
Comment by: Guilherme on
To change the header,
Sun Mon Tue Wed Thu Fri Sat
To other languages ? what should i do ?
Thanks
Guilherme
Comment by: Brad Haizlett on
Comment by: Jesse G. Donat on
$calendar = new donatj\SimpleCalendar();
$calendar->show(true);
$calendar->setDate('last month');
$calendar->show(true);
$calendar->setDate('next month');
$calendar->show(true);
If you mean button's for next/previous month, thats outside the scope. This is just a little widget to render a calendar. You can write JavaScript or PHP to do it yourself though without too much trouble.
Comment by: Peter on
One question, regarding this line:
$out .= "\n" . ($i != $count ? '
Why did you check ($i != $count?)
In this way, one TR - start is missed.
Br,
Peter
Comment by: Anthony on
If you have update please put it out there.
Comment by: kalle on
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\calendar\donatj\SimpleCalendar.php on line 3
Comment by: Greg on
Comment by: Chris Yates on
I've incorporated this in a pretty complex ERP system and it works great and is easy to expand on
Comment by: Jose Vivas on
Comment by: Mesk on
How can I make the rendering of events that are date ranges, not individual events, appear as a single event spanning from the first to the last day?
Comment by: Jesse G. Donat on
It would require more a more complicated combination of HTML and CSS than this is designed to generate.
This outputs a reasonably simple table structure. Having events visually span multiple days would probably double if not triple the complexity of the library.
I'm sure there are other libraries that would better suit your needs.