As Iccha mentions, I think we only should do this if the actual scheduling values change (hour, minute, day, etc.).

Also trying to wrap my head around whether this calc here should be based on 'now' (like it is) or 'last_scheduled'. Ultimately I'm not sure it even matters - I think mainly we haven't really spelled out in fine detail what happens with next_run on create, update, and job creation. So I think we just need docs for that.