Several remarks on the schedule part :
- should be configurable from the end-user point-of-view (ie in a Vision screen); generally, this is a non-technical person who is responsible for the schedule management (creating, modifying, making exception…)
- if it stay on the gateway, there must be a specific login (<> from gateway administration task) to manage the schedules.
- why not make a generic schedule object (server and client) in order to use it in several way. A component like the MES calendar should become a central point to manage schedules : for oncall and alarming, for lightning and heating/cooling management… and why not for transactional group…
- If schedule stay on the gateway side, it would be more versatile if it could be linked to a database.
The BACnet schedule object may be a good inspiration…
Anyway, nice job !