Release 1.0.3
-------------

LowCal.pm
- New module config setting:  DailyLinks - if set to nonzero value, calendar
  will include a link for each day to a list of that day's events with
  details.  Defaults to 0 (off).
- New META EVENTNAME attribute:  Location - if present, clicking on the
  event's generated link will jump directly to the specified URL.
- New config file:  (event dir)/categories - List of available categories in
  the event dir.  Used by %CATBOX%.  Will also be used by the event-editing
  forms in the web admin interface.
- New tokens: %CATBOX% - Displays a multiselect listbox for event categories
                         to be shown.
              %CATBOXSIZE=n% - Number of rows to include in %CATBOX%.
                               Defaults to 3.
- ListDays/SummaryDays requests no longer print a day separatior
  (list_day_sep) if only one day is being displayed
- ListDays/SummaryDays was ignoring category restrictions.  This has been
  fixed.
- Added date offset capability to year, month, and day URI params.
- Modified parameter-parsing code to deal with repeated spcifications of the
  same param (i.e., category=cat1&category=cat2) and to accept params in the
  body of a POST request in addition to the URI
- Commented out reference to Apache::File module, which does not appear to
  have been used.

Settings
- New file documenting available module config settings


Release 1.0.2
-------------

LowCal.pm
- New URI param: date=mm/dd/yyyy (U.S. format) or date=dd-mm-yyyy (European
  format)
- New tokens: %DATE%  = Date in mm/dd/yyyy format
              %EDATE% = Date in dd-mm-yyyy format
- Tweaked main calendar generation to present events ordered based on
  ascending event file name instead of raw directory order

lowcal-update.pl
- New flags:
  -c  Deletes event records prior to the first of the current month
  -C  Deletes event records prior to the current date
  -f  Fake - reports all actions that would be taken, but doesn't actually
      do anything
  -v  Verbose

CalCron.pm
- New exported function, clear_to, which implements lowcal-update.pl's -c/-C
  functionality
- New package-scope variables (non-exported) $fake and $verbose which control
  activity identically to lowcal-update.pl's -f and -v switches

Release 1.0.1
-------------

CalCron.pm / lowcal-update.pl
- Modified activity reporting messages to indicate whether links for recurring
  events are being created or whether they already exist and are being skipped
- Fixed CalCron::matches to ignore leading zeroes (PR#1)
- Added ability to specify relative as well as absolute months for event
  generation (e.g., if today is 1/1/2001, month +1 = February 2001, month +2
  = March 2001, etc.).
- Modified lowcal's help text to mention relative date capability

install.pl
- Created an installer!


Release 1.0.0
-------------

LowCal.pm 1.0.0
- Added GPL notice to all source files
- Documentation is relatively complete.  I'm still a little embarrassed by
  the (lack of an) install procedure, but I'm not going to have time to fix
  that in the immediate future.  Hopefully before too long, though...

LowCal.pm 0.9.5
- Minor fix to handling of events with multiple categories

LowCal.pm 0.9.4
*** The code is ready for release, I just need to beef up the ***
*** documentation                                             ***
- Removed .html extension from template files
- Added support for event categories
- Added CATLIST and CATPARAM tokens

lowcal-update.pl 0.9.0
- Initial implementation of recurring event record generation using
  Apache::LowCal::CalCron

LowCal.pm 0.9.3
- General code cleanup

LowCal.pm 0.9.2
- Removed hardcoded next/prev month links below monthly calendar
- Added tokens for info on next/prev month so the removed links can be
  generated out of templates
- Added tests to only return header to HEAD requests

LowCal.pm 0.9.1
- Added Tokens file to document the available tokens for use in templates
- Added ListDays and SummaryDays operations

LowCal.pm 0.9.0
- Fixed URI handling to work without requiring calendar to be installed
  directly off the document root
- Fixed tables to always fill width of browser
- Added header/footer templates and code to parse them for keyword
  substitutions
- Body of event listings is also parsed for the same keywords as headers/
  footers
- Event names are identified via <META EVENTNAME="..."> tag

