1. A non-transitory program storage device comprising instructions stored thereon to cause one or more processors to: obtain, by an electronic device, application data from one or more program applications; generate, by the electronic device, an event history customized to a particular user based on the application data; receive, from one or more sensors of the electronic device, a first indication indicative of a current state of the electronic device; determine whether a combination of the event history and the first indication meets a combination of conditions, the combination of conditions including a user history condition and a device state condition; and generate, in response to determining the combination of the event history and the first indication meets the combination of conditions, a first notification.