k5n.us
X Home X X News X X Apps/Tools X X Support X X Downloads X X Articles X X Contact X
Creating an Online Event Calendar
Share |

Creating an Online Event Calendar


Craig Knudsen (craig@k5n.us)
09 Jan 2006

A calendar of events is must-have for many organizations. To get started, you can publish your calendar from your favorite calendar application as HTML to your web site. For a more advanced and interactive site, you can setup a web-based calendar application that can import/export, produce RSS feeds and more. This article will detail six different methods to publish your calendar along with the pros and cons of each method.
The iCal Standard

There is a widely accepted standard format for exchanging calendar data called iCal specified in RFC 2445. This is not to be confused with Apple's iCal application even though they share the same "iCal" name.

Each RFC (Request For Comment) is proposed and published on the Internet. The IETF (Internet Engineering Task Force) will eventually evolve the RFC into a standard if there is enough interest (and in the process give it a unique number like iCal's 2445). The iCal standard was approved in 1998.

The iCal standard is used by many calendar tools but not all. Outlook does not natively support iCal, making life a little more difficult for Windows users. (Outlook does support vCal, which was used as the basis of iCal.) If you are not an Outlook user, you have the luxury of choosing an alternate calendar client like Mozilla Sunbird (available for Windows, Linux and Mac OS X). If you are hooked on Outlook or required to use it by the powers that be, there are third-party tools that can add better iCal support to Outlook. (See Resources below.)

The iCal standard is important for interoperability between calandar applications. An iCal-compliant client will be able to send and receive event updates from an iCal-compiant server.


Introduction

Internet event calendars are in high demand by businesses, schools, churches and other organizations. Because Internet tools and standards continue to evolve, it's not always easy to determine the best way to get your calendar online.

This article will help you decide the best way to get your calendar online. Your options range from simply authoring HTML pages that list your events to using a calendar client application to publish your events to a calendar server.


Overview

First, you will need to identify your requirements. How you put a calendar online will be determined by a handful of factors:

  • Do you already have calendar data (i.e. events)?
    • If so, what format is it in (Outlook, Palm, iCal)?
  • Do you already have a web site and a hosting service for it?
    • Do you want your calendar of events to be on this site?
    • Does your hosting service support a server-side language (PHP, Perl) and a database (MySQL, SQLite)?
  • What calendar features are important to you?
    • Allowing others to view your calendar
    • Allowing others to edit/update your calendar
    • Keyword searching
    • Filtering by categories
    • Exporting to iCal
    • RSS support

To understand why these questions are important, you'll need to understand the how an event calendar can be presented on the web. In order for someone to view your calendar in their web browser, it will need to be made available on your web site. This article will guide your through this process using six different methods.

To manage your online event calendar, you will need the following:

  1. An application to add, edit and delete your events: This can be a standalone calendar client application on your desktop or web-based interface running on your web site.
  2. A place to store your events: This could be a proprietary data file (like Outlook's data file), an iCal data file or a relational database.
  3. A method to convert your calendar data into HTML on your web site so your users can view the calendar in a web browser: This could be an HTML export from a calendar application or a web-based calendar application.

Scenario 1: HTML Authoring & FTP

The very first calendars on the web were creating by web developers using text editors like "vi" and "emacs" to create HTML files.

Step-by-step:

  1. Start up your favorite HTML editor (Macromedia Dreamweaver, Microsoft FrontPage, etc.)
  2. Type in your events in any layout that suits you.
  3. Save your file.
  4. Transfer your file to your web site with FTP.

While some will surely think you are living in the dark ages, this method is a simple way to get your calendar online. A good open source FTP client for Windows is FileZilla (see Resources below).

Issues for consideration:

  • + This is very simple and requires no calendar application.
  • + Because you are authoring the calendar page, you can make it match the rest of your site and include navigation to the rest of your site.
  • + Any existing events you have will have to be cut and pasted into your editor.
  • + May require some work with your editor to get a good-looking month view.
  • + Every time you update your calendar, you will need to resave the calendar to your local hard drive and transfer the updated files to your web site.
  • + There will be no iCal file for your users to download or subscribe to.

Scenario 2: MS Outlook & FTP

Microsoft Outlook supports exporting calendar data as HTML pages. This is not as seamless as the Apple solution as you'll see below.

Step-by-step:

  1. Create your events in Microsoft Outlook
  2. From Outlook, select View - Go to - Calendar
  3. From the File menu, select Save as Web Page...
  4. When specifying an output file, keep in mind that Outlook is going to save many files to that same directory. So, you may want to create a new directory first and save the file in that new directory.
  5. Transfer all files generated by Outlook to your web site using an FTP program.

If you will be updating your calendar regularly, you will want a good FTP client to make life easier. A good open source FTP client for Windows is FileZilla (see Resources below).

Issues for consideration:

  • + Outlook is widely used.
  • + If you have events in Outlook, there will be no need to re-enter those events.
  • + The appearance of the Outlook-generated web pages are not that attractive and cannot be customized to match your site.
  • + The Outlook-generated web pages will not have links back to the rest of your web site. Is this acceptable or do you want navigation links back to your home page?
  • + Every time you update your calendar, you will need to resave the calendar to your local hard drive and transfer the updated files to your web site.
  • + There will be no iCal file for your users to download or subscribe to.

Scenario 3: Apple iCal and .Mac

Sharing your calendar with a Mac is incredibly easy. The integration between their iCal application and their .Mac service makes sharing calendars truly a one-click process.

Step-by-step:

  1. Sign up for a .Mac account if you don't have one. (Annual cost is currently $100USD.)
  2. Create your events in Apple iCal.
  3. Using iCal, publish your events to your .Mac server.

Issues for consideration:

  • + If you have events in Apple iCal (or another iCal-compliant application), there will be no need to re-enter those events.
  • + Apple iCal has a very polished user interface. Publishing events is very easy.
  • - Not available to Microsoft Windows users.
  • - The event calendar will be hosted on .Mac instead of your own website.
  • Will have to pay the annual cost of a .Mac membership.

Scenario 4: WinDates and PHP iCalendar

Creating your calendar in WinDates is fairly simple. It has a simple to use interface with excellent support for the iCal standard.

Step-by-step:

  1. Install PHP iCalendar on your web site. (This requires unzipping a file in your web site's file area.)
  2. Create your events in WinDates.
  3. Within the WinDates application, select Calendar - Export, and choose iCalendar as the file type.
  4. Select which calendars you wish to export or "All Calendars" to export all events from all calendars.
  5. Specify a filename when prompted where to save using the ".ics" filename extension.
  6. Copy your saved iCal file to the "calendars" subdirectory of your PHP iCalendar installation on your web site. Typically, you would do this with FTP (FileZilla). However, WinDates also supports transfering the iCal file for you without the need for an FTP program. (See the WinDates documentation.)

Issues for consideration:

  • + While WinDates is simple to use, it supports many advanced features including support for the iCal standard.
  • + If you have events in WinDates or any other iCal-compiant calendar application, you won't have to re-enter those events.
  • + PHP iCalendar is open source and is free to use.
  • + PHP iCalendar has an attractive interface with advanced features such as RSS syndication and keyword searching.
  • + WinDates is no longer being supported.
  • + The PHP iCalendar interface will not match the rest of your web site. The application is driven by templates and can be modified, but you must know HTML in order to do this. Navigation links back to your site would need to be added by modifying the templates.

Scenario 5: Yahoo Calendar Service

Yahoo's services include much more than a calendar. With a free Yahoo account, you will get a web-based calendar and free web-based mail.

Step-by-step:

  1. Sign up for a free Yahoo account.
  2. Login to the calendar site at calendar.yahoo.com.
  3. Click on the Sharing link.
  4. For Sharing Options, select "Anyone can view my calendar".
  5. For Event Sharing (default), select "Public".
  6. Click on the Save button.
  7. You will be back at the calendar page. Click on the Add Event button.
  8. Fill in the details of your event and be sure to have "Sharing" set to "Public." Save the event.
  9. You will be back at the calendar page. The URL for others to view your calendar is at the bottom of the page.

Yahoo also supports syncing events with Outlook, Palm, Pocket PC and Lotus Organizer with their free Intellisync program. This means you can manage your events with any of these programs rather than using the Yahoo web interface for adding events.

Issues for consideration:

  • + Yahoo's service is entirely free.
  • + Yahoo's Intellisync supports a variety of calendar applications, allowing you to choose from a number of calendar programs to manage your events. You won't have to re-enter any events you have already entered.
  • - The event calendar will be hosted on Yahoo instead of your own website.

Scenario 6: WebCalendar

WebCalendar is a web-based calendar application that uses PHP as its scripting language. It requires a database to store events. Supported databases include MySQL, Oracle, Microsoft SQL Server, PostgreSQL, SQLite and others.

Before trying to install WebCalendar, make sure your hosting service supports PHP and at least one database. If they do not support any databases, check to see if they support SQLite. (SQLite is a file-based implementation of a database and is included by default with PHP5.)

Installing WebCalendar involves more steps than the other solutions. You will need to install the WebCalendar files and setup the WebCalendar database. Version 1.1 of WebCalendar makes the database setup much easier by created the needed database tables for you from a web-based interface. Versions 1.0 and earlier will require you to create the needed database tables from something like phpMyAdmin.

Step-by-step:

  1. Download the 1.1 version of WebCalendar.
  2. Unzip the downloaded file on your web server.
  3. Rename the calendar directory from "WebCalendar-1.1.0" (or whichever version you have) to something more simple like "calendar".
  4. Point your browser to the "calendar" directory of your web site.
  5. You should now be at the WebCalendar Install Wizard page. Follow all steps until you reach the end and the Launch WebCalendar button appears. Press the button to access WebCalendar.
  6. From the WebCalendar login, use the default login which is username "admin" and password "admin".
  7. Click on Admin near the bottom of the page.
  8. Click on System Settings
  9. Click on the "Public Access" tab. Select "Yes" for "Allow public access". This will allow people to view the calendar with requiring a username and password. A number of additional options will appear at this time. For now, leave those at their default values and press Save.
  10. Create a new event with the "Add Event" link near the bottom of each page. Be sure to select "Public Access" from the list of participants. This will make the event appear on the calendar for users who do not have a username and password.

Because WebCalendar is dynamically generated it has a full list of features:

  • Keyword searching
  • Filtering by event category
  • RSS syndication
  • Import and export of iCal, vCal and Palm
  • Automatic publishing from iCal calendar applications that support it (Apple iCal, for example).
  • Custom reports
  • Allows viewers to submit new events for your approval

Although WebCalendar has been used to showcase the advantages of a dynamically generated calendar site, these same advantages will apply to other web-based calendars such as Chronos, Jax, myPHPCalendar, Prospector, and Proverbs.

Issues for consideration:

  • + If you already have events in an iCal-compiant calendar application (as well as Outlook and Palm), there will be no need to re-enter those events. You can even use your iCal-compliant application to enter new events directly into WebCalendar.
  • + WebCalendar is open source and is free to use.
  • + The appearance can be customized to match your site.
  • + Can be hosted on your web site.
  • + Allows visitors to submit events for your approval.
  • + Users can subsribe with an iCal client to view your events in their desktop calendar program.
  • + Installation is somewhat complicated compared to other solutions.
  • Will have to pay a hosting service with PHP and MySQL support if you do not have one.

Evolving Standards

The future holds more choices for getting your calendar online. The Mozilla Calendar project and the Sunbird project should continue to develop into mature iCal-compliant desktop applications for publishing events to your web site. The RemoteCalendars project continues to add better iCal support to Microsoft Outlook. You can publish your events to PHP iCalendar or WebCalendar using RemoteCalendars. And, web-based calendar applications continue to develop into more robust and full-featured applications.

While applications continue to improve, standards for sharing data also evolve. Keep an eye on the adoption of SyncML, iTIP (RFC 2446), iMIP (RFC 2447) and CalDAV (see Resources below for details). These standards will affect how users share and synchronize calendars in the coming years.


Conclusion

This article has convered only some of ways to put a calendar online. As standards and tools evolve, this process will become easier and involve fewer steps. Users will be able to interact with your event calendar in more ways. More users will become savvy about RSS syndication and iCal remote subscriptions.

As you decide which tools to use, keep an eye on how visitors to your site will want to use your event calendar in the future. If your site allows for iCal subscriptions, users can download your event calendar and put in their PDA and integrate your calendar with their own.


Resources


Feedback

Feel free to provide feedback on this article.

About the Author

Craig Knudsen has been developing software solutions since the early 90s. He founded the open source WebCalendar project in 2000 and continues to lead the project. He has developed web-based applications using all sorts of combinations of C, Perl, Java, JavaScript, PHP and even ASP. When not attempting to build furniture in his workshop, you can reach him at craig@k5n.us.
Valid XHTML 1.0 Valid CSS PHP
Page Last Updated: 22-Aug-2010
Copyright ©2004-2016 k5n.us, All Rights Reserved