A first pass at generalized scheduling. This is perhaps the "simplest possible approach that could possibly work".
Next to do: include acts, which are not Events, in this.