Fullcalendar is an impressive calendar widget for JQuery, showing you events on a month, week, or day view, and letting you drag them around to reschedule them.
It needed a good sample app showing how to use it in Rails 3, so I wrote one.
Rails3_fullcalendar is a rails application that tries to live up to the rails3 notion of restful ideals. It does this thanks to the power of Adam Lassek's jquery.rest plugin, which handles all of the wrapping of the jquery.ajax method into create, read, update, and delete methods, and also deals with the complexity of the token's rails uses to avoid cross-site scripting attacks.
Download it from github, run the migrations, and fire up the app. You'll see an empty calendar, and scaffolding for adding events. When looking at the calendar view, you can drag events around to change their date and time. Dig into the code to see how it works.
I'm going to need to prepare a longer rant regarding timezones, but fullcalendar does something nice - it respects timezones (as long as you send it the right time format in the json), and normalizes everything to the local timezone on display... Now if I schedule something for 12:00 noon in Washington DC during Eartern Daylight Time, it'll end up on the server as 16:00:00 UTC on the server, and if viewed by someone in California will show up on their calendar at 9:00am.
I have some future plans for this demo - including having multiple schedules, and then showing how to overlap them on the same calendar, with the events from each schedule showing up in their own color. With a view like this, someone can have a calendar 'command center' view, dragging around events from different people's schedules until conflicts are resolved.