|
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.
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.
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:
- 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.
- 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.
- 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.
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:
- Start up your favorite HTML editor (Macromedia Dreamweaver,
Microsoft FrontPage, etc.)
- Type in your events in any layout that suits you.
- Save your file.
- 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.
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:
- Create your events in Microsoft Outlook
- From Outlook, select
- From the File menu, select
- 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.
- 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.
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:
- Sign up for a .Mac account if you don't have one.
(Annual cost is currently $100USD.)
- Create your events in Apple iCal.
- 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.
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:
- Install PHP iCalendar on your web site. (This requires
unzipping a file in your web site's file area.)
- Create your events in WinDates.
- Within the WinDates application, select
, and
choose iCalendar as the file type.
- Select which calendars you wish to export or "All Calendars" to
export all events from all calendars.
- Specify a filename when prompted where to save using the ".ics"
filename extension.
- 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.
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:
- Sign up for a free Yahoo account.
- Login to the calendar site at calendar.yahoo.com.
- Click on the link.
- For , select
"Anyone can view my calendar".
- For ,
select "Public".
- Click on the Save button.
- You will be back at the calendar page. Click on the
Add Event button.
- Fill in the details of your event and be sure to
have "Sharing" set to "Public." Save the event.
- 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.
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:
- Download the 1.1 version of WebCalendar.
- Unzip the downloaded file on your web server.
- Rename the calendar directory from "WebCalendar-1.1.0" (or
whichever version you have) to something more simple like
"calendar".
- Point your browser to the "calendar" directory of your web site.
- 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.
- From the WebCalendar login, use the default login which is
username "admin" and password "admin".
- Click on near the bottom of the page.
- Click on
- 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.
- 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.
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.
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.
- Documentation
- Applications, Products & Services
- Organizations
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.
|
|