I am working on a calendar application in django and want to support events which repeat an infinite amount of times after a given start date. I will store "block events" where each block includes data about a certain event (title, description...) as well as the pattern with which it repeats and an "expiration date". This way I only store one record for a group of possibly hundreds of repeated instances of an event. If I want to make an "exception", I can split this event block around the exception and have each block linked to previous and future blocks.
My problem is that I want to be able to run queries to fetch all of the "logical events" within a given time period as if a new event record was inserted for each instance of a repetition. Essentially I want to reveal a django model for each event to my application (and django's admin app), but store a single, different, model for each group of events in my database. Is this possible, and if so.. how? Or is there a better approach to repeating events?