Archives

Archives / 2012 / June
  • ScheduleWidget Tutorial 3

    This is the third in a series of tutorials on ScheduleWidget, a scheduling engine that handles recurring events for calendars. As with the previous tutorials we're going to use the Critical Mass bicycle event. This event happens in many major cities on the last Friday of every month. We looked at the Occurrences() method and the dates the engine generates. Now let's take a quick look at two other related methods: Continue reading...

  • ScheduleWidget Tutorial 2

    In the last post I introduced ScheduleWidget and went through a simple exercise of creating a recurring schedule based on the Critical Mass bicycle ride. I'm going to assume you've run through that exercise. Critical Mass occurs the last Friday of every month. But let's suppose that there's a second ride called Fair Weather Critical Mass (or FW for short). FW still occurs the last Friday of every month but its riders don't really like to ride in cold temperatures. So they start riding in May and then wrap it up in September. Continue reading...

  • ScheduleWidget Tutorial 1

    A few days ago I announced the release of ScheduleWidget, a scheduling engine that handles recurring events for calendars. Now I'd like to do a simple introductory tutorial to show how to use it. Consider the Critical Mass bicycle event, which happens in many major cities on the last Friday of every month. Given that information we want ScheduleWidget to provide us with the upcoming dates of the event. Continue reading...

  • ScheduleWidget 2.0 Released

    Without much fanfare I'd like to announce the release of ScheduleWidget. ScheduleWidget is a .NET 4.0 scheduling engine that handles recurring events for calendars. I was influenced by Martin Fowler's white paper "Recurring Events for Calendars" in which he describes the broad software architecture for a recurring events scheduling engine. But I did not find any implementation of his idea in the wild. So this led me to write it myself. It is available as a nuget package here: Continue reading...