Internet of Things (IoT) scenarios exist in various domains and due to the vast changes in technology and systems modernization, they are constantly evolving. In order to cope with this dynamicity, there is a need to provide a robust yet flexible way to design, develop, and evaluate the IoT architecture and implementation. We present IoTGolog, a formal task modeling language to define and evaluate IoT scenarios. Using IoTGolog, characteristics of the IoT scenario as well as the tests to evaluate it are formalized. This provides accuracy and better control over the IoT evolution. IoTGolog extends our previous work on TaMoGolog and MobiGolog for general and mobile-based scenarios respectively. We illustrate IoTGolog for the case of car emergency response system.