A pillow is provided which is configured with sensors in communication with a controller having a computing component and software running in electronic memory. Using input data streams from the sensors to the controller, the software running on the computing component can ascertain a current sleep level of a user as being in a REM cycle or non REM cycle, The controller is configured to override a user set alarm time on an alarm, with a new activation time should it be determined the user will be in a REM cycle at the user chosen time for the alarm.