Calendar is a web-based calendar tool that produces pretty, readable calendars. NEW! Rewritten in Java for MySQL!
Here are some key features of "Calendar":
· NEW! Subscriptions can be created to periodically fetch events from remote calendars, just like iCal and Sunbird can do.
· Events on the calendar appear exactly as typed in the admin tool -- the descriptions are not cut off in the display. This makes the calendar just as useful when it's printed.
· The entire calendar is rendered in HTML -- no Flash or Java is used.
· Single-day, multi-day and occassional events are all supported. ("Occasional" events are those events that occur multiple times but don't necessarily follow a regular pattern.)
· Repeating events are supported and can repeat on a daily, weekly, monthly or yearly basis.
· Events may be categorized for easy administration.
· Nearly everything about the display is themable -- colors, fonts, border styles, first day of the week, weekday column widths, categories, etc.
· A calendar may be setup as a "private" calendar, so the user must be logged in to see it.
· NEW! A calendar may be setup as a "semi-private" calendar, so the user will only see the scheduled times but no event details.
· The admin tool is password protected and different users can be assigned different permission levels.
· Apple iCal and Mozilla Sunbird users can subscribe to the calendar with one click.
· A really bland, unimaginative name makes it easy to discuss this project without being overheard by foreign intelligence agents.
The first version of this software was written in ASP (VBScript) and ran on IIS 4.0 or higher with a database on SQL Server 7.0 or higher. The current version has been completely rewritten in Java to run on Tomcat 5.5 or higher with a database on MySQL 3.3 or higher. The feature set has grown immensely since then. The two versions have no code in common.
· Tomcat 5.5 or higher
· MySQL 3.3 or higher
What's New in This Release:
· Changed the user edit screen to show the "No access" option for the type.
· Updated the copyright statement at the top of each file to 2006.
· Fixed several small errors in the INSTALL.txt file and removed the instruction to edit the calendar.sql file.
· Added the calendar_subscription table, the calendar_theme_subscription table and the subscription_id field to the calendar_event table to track webcal subscriptions and the imported events.
· Added getSubscription() to Event.java.
· Added the Subscription class.
· Added get/setSubscriptions to the Theme class.
· Added the subscription admin/edit interfaces to the admin tool.
· Created RefreshSubscriptions to run as a thread and update subscriptions periodically (interval set per subscription).The thread checks to see if updates are needed on an interval read from the calendar.properties file.
· Changed the ical.vm template to specify DATE-TIME values instead of just DATE values (where appropriate).
· Added the copyright/license statement to the top of the ical.vm file.
· Finished adding the double-submit protection to AdminServlet -- for some reason, it wasn't in the delete code.Attempting to delete the same object twice technically won't hurt anything because the second attempt will return an error but the error message might confuse the user who doesn't understand that they just refreshed the page.
· Changed Initialize to start the DumpCache thread instead of making DumpCache a servlet started from the web.config.The dump interval is now read from the calendar.properties file instead of web.config.
· Fixed a bug in CalendarHelper.addDuration() that was miscalculating end dates when the event spanned the start or end of daylight savings time.This was only affecting recurring events.
· Added CalendarHelper.canonicalizeIcal() to correctly encode values for
· iCalendar, according to RFC 2445.
· Changed iCalendarServlet to use basic authentication instead of passing the user ID in the parameter string.
· Changed all of the logging statements to use a central logging facility in Helper so the log level can be controlled.
· Added a log_level variable to calendar.properties to control the verbosity of the logging.
· Added get/setUnsavable() to Occurrence to prevent temporary Occurrence objects from being saved for any reason.
· Added get/setUnsavable() to Event to prevent temporary Event objects from being saved for any reason.
· Fixed an obscure display problem in grid.vm that would cause a multi-day event displayed after but on the same row as an all-day event to occupy one additional day before it should.
· Added Event.combineFreeBusy() to combine events in a list that occur at the same time or overlap and replace their events with "Busy".
· Added a new User type: CALENDAR_TYPE_FLAG_VIEW_FREEBUSY that can only see the calendar grid as a series of "Busy" blocks with no details.
· Fixed a minor bug in the webcal link on the calendar grid -- immediately after logging out, the link would still contain the authorization parameter for the login.