scheduling/calendering.

I want to write a scheduling application. Basically people are going to submit schedules like "every thursday from 3-4" or "mon, wed, fri, 10-11" or something like that. I want to display the schedule on a calendar, allow people to edit the schedule or just one instance, compare the actual times worked to scheduled times (late, early etc).

I know somebody has already done this before so before starting I thought I would ask if anybody knows a project with a liberal enough license for me to plunder :).

Since I need to include this in an existing project I just want to take a look at how they stored the schedule, how they displayed it, how and when they materialized the events, etc. I don't want to take the application as a whole and modify it.

Failing that does anybody have a link to some sort of a document which details best practices when it comes to scheduling?

TIA.

I'm pretty sure there is a gem or plugin for iCal so you can get an idea of how they store recurring events. That might provide some inspiration, though it'd leave you with the task of interpreting iCal yourself if you want to render the calendar. runt and recurrence are a couple of takes on how to implement the recurring time patterns that Fowler identified a while ago. They're gems and if you like either one you could create a db model to support the one you like. They'd probably make rendering the calendar easier for your site and you could decide to provide an ical mime-type if you wanted to support that, too.

Good luck.