We introduce a new programming language called INI, which eases the development of self-adaptive software. INI combines both rule-based and event-based programming paradigms, by allowing the de nitions of rules that can be triggered by events. Besides a convenient language-level support for synchronization, the key point with INI events is that they come with a con guration layer, which is set up through input parameters passed to the events when created. Additionally, events can be stopped, recon gured, and restarted at runtime by the program itself. Ultimately, this re-con guration can be triggered by other events, thus allowing the program to adapt to new operational environments.