CalendarScript offers a number of exciting features, enabling you to publish events and customize your calendar in ways never before possible. This is a list of many, but not all, of the features available.
View your events in a grid or list format, and by the month, week, 2-week, 3-week, 4-week, or daily level all with a single click. Or define your own date range, to display events for the next 3 hours, 3 days, 3 months, or in an arbitrary range like Jan 1, 2001 - Mar 17, 2001.
Search events in the calendar using an intelligent search form and a date range.
Templates offer a powerful way for you, the web site author, to change how the calendar looks without having to modify the program itself. By using plain HTML and some special CalendarScript tags, you define how your display to match your site's color scheme and design. Do you want to add a background image, change the colors, and add your site's navigation at the top? No problem!
Template Display Preferences
Template preferences allow you to change display options like colors, fonts, sizes, etc from within the web interface, without needing to modify any config files or templates.
Flexible Event Definition
By default, events consist of a Title and a Description. But let's say your calendar holds concert events - you also want to show the location, artist, and other details. You can easily customize your event fields to add Location, Artist, and other information. Then each time you add/edit/display an event, those fields will automatically be included. It couldn't be easier!
Advanced Scheduling Options
Schedule events for all day, or give them a start time, or a start and end time. Schedule them for one day, multiple days, or to repeat. Have them repeat daily, weekly, monthly, or yearly, either indefinitely or between a start and end date. Choose complex schedules like "The last thursday in June", all by using simple drop-downs and popup calendars.
Create users in the system, and allow them to log into the calendar to perform different actions. Protect the calendar display by only allowing registered users to view it. Customize the user database to include any fields you wish, just like events.
Once you've created users, give them permission to perform various actions on your calendar. Add/Edit/Delete events, edit their own events, create new users, assign permissions, login to the calendar display - configure all of these options and more on a per-user or per-calendar basis.
Allow the public to submit events, but don't display them on the calendar until an Administrator has viewed the submission and approved it. Find a submission you don't like? Just reject it and it's gone. Protect your calendar from unwanted additions!
Using only one script, you can display and maintain multiple calendars - each with their own events, permissions, configuration, and templates. Login to the Admin application and you are presented with all the calendars for which you have some Admin permissions granted.
Quickly import a number of events and their schedules from a delimited text file. Great for bulk-loading the calendar with data from another application!
Easily change the program to work according to your country's conventions. Change the date format to any format you wish using a format string. Change the first day of the week to be Monday or any other day. Change day names and month names. Use 24-hour time format or AM/PM. All these can be easily changed on a per-calendar basis in a single configuration screen.
CalendarScript has a full "Plugin" interface which allows you to customize almost any aspect of the program and add new functionality without modifying the original code! Share plugins with others, and distribute hacks and modifications between the user community to make CalendarScript do almost anything!
Full Source Code
If you would like to customize the application even more than the interface allows, dig into the Perl source code and modify it as much as you wish. The code is neatly organized and easy to understand using the template-driven approach, so making extensive changes to support your needs is easy.
Display the events for today on your home page, for example. The script realizes that it's running as an SSI script, initializes correctly, and uses a separate display template to display only today's events (or events in any other range you wish) on another page. How it appears and with what information is completely up to you.