Some classes in PEAR::Calendar require PEAR::Date be installed. The PEAR::Date 1.3.1beta is missing a file and will not work. Make sure you have PEAR::Date version 1.4 or newer installed.
PEAR::Calendar is a package for generating Calendars as data structures. It does not render content or rely on any underlying data store, allowing it to be applied to many problem domains. At the same time it provides an easy to use API that makes rendering, for example, an HTML calendar very easy, while making it possible to "connect" the calendar with your data store.
PEAR::Calendar was developed as a result of finding no alternatives out there in PHP. There are numerous public domain calendar utilities / classes out there but all are tied to a specific output format (typically HTML with limited ability to customize without re-writing code) and often dependent on pre-built data structures stored in a database (read MySQL). This poses significant restrictions on the problem domains they can be applied to. By contrast PEAR::Calendar focuses on eliminating the math from the task of generating a calendar, allowing the end user to simply iterate over a prepared data structure.
Some of the benefits / features of PEAR::Calendar include:
A Simple Example
<?php
require_once 'Calendar/Month.php';
$Month = new Calendar_Month(2003, 10); // October 2003
$Month->build(); // Build the days in the month
// Loop through the days...
while ($Day = $Month->fetch()) {
echo $Day->thisDay().'<br />';
}
?>
Note: there are numerous and extensive examples provided with the PEAR::Calendar package file.