I would agree that migrating lessons forward would be a good feature as described by mlhstheaterguy
. However, the implementation has to consider all possible scenarios. Therefore I don't think the auto adjustment offered by james34
would provide adequate flexibility for possible stake/ward desired handling of interrupting events. I also don't think it is necessary to enter events before the lesson schedule is populated as eblood66
envisions. This would not take into consideration unplanned events such as short notice area authority visits.
A programming solution would have to consider several scenarios for schedule adjustments. One scenario is the stake/ward wants to push out lessons interrupted by an event, such as general conference, such that no lesson is lost. The sequence of lessons is uninterrupted. Another scenario is the stake/ward wants to skip the lesson that would have taken place on the date of the event. Yet another scenario is similar to the second scenario except the preempted lesson is moved to another date out of sequence, such as for a Relief Society/Priesthood first Sunday lesson.
Having these different scenarios precludes an automated adjustment for an event. Rather the option to adjust for the various scenarios in a manner other than manual editing after the point of the first event that disrupts the lesson schedule is preferred. All the scenarios I described can be handled either for the situation where the event is created before the schedule of lessons is populated or after the event(s) is(are) created.
It may be possible to to handle the solution as a conflict that requires user direction at the time the event is created or when the schedule is created on top of the event(s) (schedule created after events are created). In either case the user is asked which of three options is desired (possibly two options depending on how the third option is handled in programming). This is similar to mlhstheaterguy's solution. The first option is to adjust lesson dates without an interruption or loss of lessons. In other words the lesson displaced occurs the following week without a disruption in the sequence. The second option is to replace the lesson with the event. The third option is to replace the lesson with the event but ask the user to designate an alternate date for the displaced lesson. This scenario could treat the displaced lesson as a lesson schedule event.