1. A computer-implemented method comprising: building an event model by identifying, from user data of one or more applications associated with a user, events related to the user; receiving a voice input from the user that includes a command to perform a specific action, the action having a plurality of parameters, and each parameter specifying information necessary to perform the action; determining whether the voice input includes sufficient information to perform the action; in response to determining that the voice input does not include sufficient information to perform the action, identifying one or more missing parameters from the voice input that are required to perform the action; identifying, using the event model, one or more current or future events related to the user that are relevant to the action, wherein each current or future event either is (i) currently occurring relative to a time when the voice input was received or (ii) will occur in the future relative to the time when the voice input was received; customizing the action based on the one or more current or future events, comprising assigning values to one or more of the identified missing parameters of the action based on data associated with the one or more current or future events; and performing the customized action in response to the voice input.