Web CGI Interface to Departmental Calendars

A calendar manager was just developed to meet our dept's needs to manage the weekly calendars for multiple research groups' talks and seminars. It was designed to be easy to use for the users and easy to manage for the research group calendar managers. It's fully customizable to fit the dept or group's needs. Once the data for a talk is entered through a web form interface, the system will put it on all appropriate calendar pages and keep the pages up to date and archived, and mailed out to a mailing list. To see if this is useful for your dept, please check out our current calendar at the URL http://www.math.duke.edu/mcal. Just remember that everything on the pages are configurable on dept level or group level.

In our calendar, all the research groups with calendars are listed under "Regular seminars" on the top page. The whole dept calendar is listed under "Calendars". Click on all the links to try them out. Colors are used to make the calendars easy to use; like today is colored green. Here is one snap, another snap, yet another. or another.

To enter or change any data, a calendar manager (for one research group) has to login first, with pre-configured login name and password. Ordinary users don't need to login to view the calendars. You can set up different login names to have different permissions (such as, can only work on one given group, not send mail, etc). The calendar system itself has another password to protect its configuration. Once you have logged in, every page will have the action buttons in red color near the bottom, and all calendar entries will have an "Edit" button next to them.

For a group calendar manager to add a new talk to his group, first click on the group name on the top page. Then click on "AddEntry" near the bottom of the group page. In the web form, the research group name and talk heading are already filled out. You can select other groups to cross-post to other groups which may be interested in that talk. Both speaker name and talk room have their own database, so you only need to enter them once. All the other entries needs no explanation. If the time and room you filled in is already taken by another talk, it'll tell you.

Near the bottom of this week and next week's calendar page, there are buttons to preview, print and mail the text version of the calendar to a mailing list.

If anyone is interested in setting this up for their dept, we are be happy to provide the source. Currently it consists of only one perl script file. It requires perl5 with GDBM_File support. Support for generic SQL servers is on the way, when I have more time, that is.

Have fun!

-yu     <yu@math.duke.edu>

P.S. Short Installation Note:

1. get the source from http://www.math.duke.edu/~yu/mcal/src/mcal . and
save it in your cgi-bin directory. Change its owner/permission to make it
excutable by the web server.

2. In the same cgi-bin directory, create a subdirectory 'mcal-data' and
make it read/writable by the web server. Creating a .htaccess in there to
stop people from accessing the data directly. The 'mcal-data' can be moved
to other places, but you have to edit the script with the new location.

3. Go to the script url: http://your_web_server/cgi-bin/mcal and configure
it.

That's about it:)