There should be some check to see if a cleaning has already occurred. If so it should not be wiped from the database and recreated. Fixing this issue will require some design choices about how to properly update the cleanings collection. For example, if we don't drop these cleanings from the database and a new stay is scheduled in the period of time that the cleaning is scheduled we would need to break this cleaning up in to two cleanings and mark them appropriately.