Adding schedule change logic (in listener), and exposing schedules API for users