Latest Release
Feb. 17, 2005
Latest Pre-Release
Release Candidate
Home Documentation Download Forums Report Bugs Project Site

Change Log

Version 2.3.0 Release Candidate Rev. 550 (released April 8, 2009)

  • manageeevents.php was mostly rewritten to correctly display events.
    One-time and reoccurring events are now displayed separately.
    Moved some human-readable text into the language file.
    The drop-down list now shows totals for only the sponsor and not the whole calendar.
  • Bug [2722268]: Added backwards compatibility for http_build_query, which is not available prior to PHP 5.
  • Bug [2714647]: Added error message for when an event's ending time is before the starting time. While this was being checked, it was not being reported to the user.

Version 2.3.0 Beta Rev. 541 (released February 11, 2009)

  • Bug: Category filters were not being used when exporting data.
  • Bug: Exported events are now properly encoded in JavaScript when using the HTML format (assuming JavaScript was selected).
  • Bug: Added missing references to "SCHEMANAME" before table names.
  • Bug: createadmin.php failed since it was referencing "TABLEPREFIX" instead of "SCHEMANAME".
  • Bug: Checkboxes in the export form were causing unreliable results. Changed to radio buttons.
  • Bug: FormatDate() was checking for uppercase values (e.g. HUGE, LONG, NORMAL, MICRO) instead of lowercase.
  • Bug [2292811]: Removed extra 'X' after 'INSERT' in addnewcategory.php.
  • Bug [2292617]: HTML was incorrectly being outputted before session_start() in upgradedb.php.
  • Bug [2292617]: Used setVar for almost all instances where $_GET or $_POST is used to avoid problems when magic_quotes_gpc is on.
  • Bug [2292617]: Changed constants in install/upgradedb.php to normal variables and used setVar to avoid problems when magic_quotes_gpc is on.
  • Improvement: Displayed sponsor link now opens in a new Window (Brian Gray).
  • Bug: checkeventtime was not properly handling 12pm (noon).
  • Bug [2582582]: In PHP4 arguments passed by reference cannot be set to a default value. Changed DBOpen and DBQuery so that the argument is now a boolean that defaults to false. If it is set to true, it will set a global variable named $DebugInfo. Changed upgradedb.php so it does not use this feature (since it is not needed in the code).
  • Bug [2526807]: Removed CRLF and space after "DESCRIPTION:" for iCal exporting. The description should start right after the colon.
  • Bug [2526816]: The forward slash (/) was not being escaped before being placed into a preg_replace statement in highlight_keyword().
  • Bug [2455350]: When editing a calendar, only the last admin would be saved. This was due to a incrementer variable being set to zero inside of a loop instead of outside of it.
  • Bug: Removed test code from manageevents.php.

Version 2.3.0 Beta Rev. 505 (released November 12, 2008)

  • Added 'RSS Feed' links to the 'Subscribe & Download' page.
  • The database upgrade script now supports PostgreSQL 8 or higher.
  • When upgrading the database, columns are checked to see if data will be truncated by the upgrade. Warnings are displayed if the data is larger than the column's new length.
  • RSS and iCal links are now cached in a completely different way. See: Caching the Subscribe & Download Links
  • The 'Jump to' drop-down in the column can now be switched between two modes:
    1. A combined mode where there is a single-drop down with a long list of all possible year/month combinations.
    2. A split mode where there is a separate drop-down for month and year.
  • New 'HTML Header' calendar setting added along with header and footer. The new setting allows code to be included in the <head> tag.
  • Changed the way the login page is customized to make it more flexible.
  • The drop-down on the 'My submitted events' page now only shows the months for which events exist, and it gives the total number of events for each month.

Version 2.3.0 Alpha Rev. 382 (released October 16, 2008)

  • Bug fix: Database upgrade script now properly inserts the records for the default calendar when doing a fresh install.
  • Renamed images/Go.gif to images/go.gif for case sensitive file systems.
  • Made sure all TIMESTAMP columns are NOT NULL since it they cannot be NULL in MySQL. Was confusing the database upgrade script.

Version 2.3.0 Alpha Rev. 375 (released October 15, 2008)

  • Converted most DB columns from 'text' to more specific types (i.e. varchar, timestamp, int, etc)
  • Revamped exporting with new export types including RSS 2.0, HTML (optionally wrapped with document.write) and JavaScript.
  • Fixed bug where an event's end time could be before the begin time.
  • Added RSS <link> in the <head> to allow browsers to detect the calendar's RSS feed.
  • Timezone setting changed to use PHP's built in TZ variable to adjust the calendar's time.
  • Better support for PostgreSQL (based on testing with version 8.3)
  • When main admins login, VTCalendar will check to see if a new version is available.
  • Links added to update.php to the forums, mailing list, etc.
  • Moved a lot of inline text to the $lang array.
  • The english language file is now always included. If LANGUAGE is something besides 'en' then that file will also be included. Other language files will only need to override what is translated, and will not need to include everything from en.inc.php.
  • Pear::Mail can now be used to send e-mail via SMTP. The sendmail() function can also be overridden to use any other method of sending e-mail.
  • Added Swedish as an available language [1440229]. Thanks Björn Wiberg!
  • HTML can now be included before/after the header and before/after the footer from static files. This allows for standard headers and footers throughout all calendars. Does not apply to the default calendar.
  • The number of years that events can be added to is now customizable.
  • Added new "view authentication" mode that allows any successfully authenticated user to view the calendar.
  • Table names can now be prefixed with something like 'public.' to allow for use of multiple schema in PostgreSQL.
  • Improved print view when a sponsor is logged in.
  • Bug fix [1421279]: Sponsors can now view the calendar regardless of what users are entered into the box under "Login required for viewing the calendar?".

Version 2.3.0 Alpha Rev. 215 (released October 1, 2008)


  • New "Upcoming" tab that shows all un-expired events in the next 365 days (can be modified in config.inc.php).
  • Most styling has been moved to CSS.
  • New admin screen for colors, with greatly expanded control over the calendar's colors.
  • HTTP authentication (if you have a script somewhere that does some sort of custom auth).
  • Upcoming events can be displayed on other Web sites by inserting one line of JavaScript into the site. See http://www.howard.edu/calendar/public-export/instructions.php for details.
  • A wizard upgrades the database as necessary between versions (including 2.2.2 to 2.3.0).


  • Friendly error messages displayed for DB errors and missing external components (e.g. DB.php).
  • "My Submitted Events" screen now shows events for one month at a time, avoiding a huge list of all events.
  • "Manage Calendars" screen can now show total events for each calendar. Also shows total upcoming events, to determine if a calendar is not being used.
  • No longer necessary to re-login when switching calendars.
  • Main admins no longer need to be sponsors in order to view a calendar.
  • Main admins can become any sponsor for a calendar on-the-fly.
  • More user-friendly admin screen and add/edit event form.
  • Mini-calendar column can be toggled to be on left or right. Having it on the right helps users with low resolutions.
  • More fine grained control of LDAP authentication.
  • New weekday repeating event choices (e.g. every sunday).
  • Forced 'calendarid' in links to make sure calendar the right calendar is displayed when multiple calendars are being used by one person.
  • "ROBOT" meta-tag added to header to so that spiders only index the event pages, and not the day/week/month views.
  • The page title (<title>) now includes specific information about the page. For example, when looking a day's events, it will read "Day: Wednesday, September 10, 2008" rather than just "Day". Events will include the event title.
  • Page title can now have a string appended to the beginning and end for all calendars.
  • Duration of the event now appears with the start time in day/week view.
  • Events now fade to gray when their end-time has passed, or if the next day is reached in the case of "all day" events.
  • Added message to approval page that the event will also be submitted to default calendar (if applicable).
  • When a new calendar is created, only one category is created named "General".

Version 2.2.2 (released May 24, 2005)

  • Fixed bug [ 1207823 ] Nobody can login if *whole* calendar requires auth

Version 2.2.1 (released May 16, 2005)

  • CRITICAL: fixed bug [ 1202293 ] Permission problem (critical)
  • Fixed bug [ 1202291 ] Main admins cannot be added or deleted
  • Fixed bug [ 1202842 ] Password of users w/o prefix cannot be changed
  • Fixed bug [ 1183446 ] Values in main_week_datetitle
  • Fixed bug [ 1183460 ] No keywords error

Version 2.2.0 (released April 7, 2005)

  • JavaScript popup calendar for date selection (using the open-source jscalendar)
  • new icons to make the look&feel more consistent
  • added customization for all colors of the calendar (this extended the database structure somewhat)
  • highlight occurrences of keyword in search results
  • "Search" now also searches the "location" field (in case someone knows the place but forgot the event name or date)
  • added "title" property to all icon-only links
  • internationalization support:
    • configurable starting day for the beginning of week (e.g. USA: Sunday, Europe: Monday)
    • configurable date formats (to support regional differences)
    • German translation (public interface only) (Jochen)
    • Latvian translation (public interface only) (Juris)

Version 2.1.0 (released October 1, 2004)

  • CRITICAL: hardened code against SQL injection hacking techniques
  • CRITICAL: added input checking for all GET/POST/COOKIE variables
  • made event filter work in all browsers (eliminated javascript)
  • "Jump to..." drop-down menu for quick long-range date navigation
  • fixed bug: event that was repeated and is edited to be one-time -> old events were not deleted
  • "Manage events" screen now shows all events (not only today's and future)
  • removed global setvariables.inc.php and put only necessary variables in each page
  • fixed bug: XML event import (no event id was generated in public view)
  • added file "VERSION" that contains the current version number which is displayed on the bottom of each page
  • changed all $HTTP_GET_VARS and $HTTP_POST_VARS references to $_GET and $_POST respectively (for compatibility to default PHP5 install)
  • changed code that produced PHP notices messages (uninitialized variables, unquoted array indexes etc.)

Version 2.0.4 (released April 2, 2004)

  • CRITICAL: fixed a bug that would (under rare cirumstances) lead to event deletions
  • fixed "Manage Templates" which did not work for sponsors other than the administrator
  • fixed a bug in the export/download script (export.php) that would lead to certain events not showing up (events that had been forwarded from different calendars)
  • in table "vtcal_user" removed column "calendarid" ("ALTER TABLE vtcal_user DROP calendarid;") and edited all scripts that referenced this. Now user-IDs are system-wide unique
  • added a check to make sure users exist in the database or LDAP before they can be added as "main admins"
  • modified editcalendar.php to automatically make a new entry to vtcal_sponsor if a new calendar is created
  • "Manage users" is now only available to the main administrator(s)

Version 2.0.3 (released Oct 17, 2003)

  • added CHANGELOG :)
  • added iCalendar support (including subscription function for iCal-compatible calendars)
  • renamed all included scripts from include_xyz.php to xyz.inc.php
  • added an auto-create of 3 categories when adding new calendar
  • changed install script to include timezone offset
  • fixed error in search: timebegin_day did not get evaluated correctly