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.