I'm either looking for or considering writing an event calendar module that can handle custom occurrences. For example:

  • Last Sunday of every month
  • Last Sunday of every month except August
  • Second and Fourth Tuesday of every month
  • Every other Saturday, until May
  • A particular date each year
  • Several particular dates each year

    ... as well as more uniform, simpler events

I would want the logic of such occurrences to be built in and centralised in an event configurer interface as much as possible, rather than have independent copies made of each event (e.g. 10 copies of an occurence populate in the calendar). Reason being is that the event occurrences can be adjusted in one place and the changes are immediate on all occurences.

Background: I used to run a community radio station site based on Drupal and had a need then for publicising community group events with these kind of fairly complex frequency.

I would like to use the system for other purposes like arts events.

I'd also like to link users and resources, e.g. to send out reminders and perhaps provide functionality like Outlook calendaring, even perhaps for booking equipment and resources.

I've looked at events modules on Drupal but not sure if there is one that quite meets these requirements.

I would be willing to consider writing one if not already implemented.

  • 1
    Try drupal.org/project/date – Refineo Mar 2 '12 at 15:28
  • +1 Thanks, Date deals with frequent events but from what I see so far there isn't capability for some irregularity or conditions as I describe in the above cases. – therobyouknow Mar 5 '12 at 12:30
  • 1
    You put far to many requirements into a single module, and this into this question. Any single module that actually satisfied all of your requirements would be a really crappy one, with very tight dependencies between a large number of different components. Please don't write a single module to solve this. – Letharion Mar 29 '12 at 12:05
  • +1 thanks. Yes several modules. I can't see a problem with one module handling the irregular date occurrences (as outlined in my six bullet points) - it would be artificial I think to spread the date occurrence handling across several. But going on what I have observed Drupal modules: I'm guessing that I would have a module for the API, a utility module, a UI module, and one or more modules for applications of the capability. – therobyouknow Mar 29 '12 at 12:12

You can take a look at opening hours module. It's not exactly what you're after and depending on what/how you're building this might not work for you, but it can allow you to setup data selection with repeat occurrences that can be overwritten. It might help you out on figuring out how to create what you're after yourself, since the UI is pretty close you what you're after.

  • +1 Thanks. It's good to know about what the current available modules can and can't do, so that I'm not re-inventing the wheel should I embark on writing one myself. – therobyouknow Mar 5 '12 at 12:32

Updated 2014 01 03

The Date field offers much of this functionality listed in the bullets and there are add-on modules like Date Repeat Instance that make it easier to add exceptions.

(Updated) following feedback

Looks like there isn't a (suite of) module(s) that quite match my needs. So I'm going to consider embarking on writing a suite of modules, perhaps this might break down into:

  • A module for the logic of handling the occurences and an API
  • A UI module for providing the user the ability to setup the occurences
  • A module that provides some supporting libraries, including exposure via Views
  • various modules that provide applications of the above

Not the answer you're looking for? Browse other questions tagged or ask your own question.