It seems that a calendar is a must for the website of any group who has events, but how does one accomplish such a project?
If you’re coding the website yourself in HTML or some-such, a simple list of events is pretty easy. If you have a lot of events, this can get tedious pretty quickly, as you have to constantly update it. It’s also not a calendar, which some people really do prefer. Server Side Includes or javascript can be made to do the updating work, but if you are not a full-time technology person, you may not have the expertise (or time!) to mess with those.
There are a bunch of options for a more automatic calendar. Some of these are free, and some of them are paid, but not all are equally desirable. If you look at the “extras” through your web host’s cpanel or equivalent, you’ll probably find at least one calendar option. If you google “website calendar,” you’ll get a bunch more options. I’ve used a variety of different versions of these web calendars in the past, and I’ve never really liked them. They often require a separate sign-in (don’t I have enough passwords?), and almost always require separate/double work to make them look like the rest of the site. On top of all of that, they don’t tend to integrate well with other systems. This represents a workable solution for a website calendar, but is obviously not ideal.
Another option is Google/Yahoo/etc. calendar. I’m partial to Google’s calendar. The api is quite extensible, and the embed code is pretty easy to tweak (assuming you know the hex codes for the colors you use on your website, or you at least know how to find them), you can make the colors match, can customize the size, shape, and what it displays (i.e., a constantly updated list, a weekly calendar, a monthly calendar, etc.). If you are using a CMS, you might have to install an additional module to use it (as is the case with Joomla), or, if you’re using Drupal, it tends to work best in a block.
If you are using a CMS, there are, of course, a whole host of options. With Drupal, you can use some combination of Event/Calendar/Date, but I don’t really like the way that works. You can also use CiviEvent in combination with some of the above, but CiviEvent still has some restrictions on repeating events that don’t make it ideal. No separate login and no separate theming work to do.
Another option would be to add your events to someone else’s calendar, and use their api to feed that information to your website. I’ve seen options for doing this through a big local newspaper, as well as an arts marketing organization for the area. How doable this is will depend on the api, and what is powering the rest of your website.

Browser Stats (December)