I guess you need a quest triger or a function to start the update first. From the wiki:
Function SomeFunction() RegisterForUpdateGameTime(0.5) ; Before we can use onUpdateGameTime() we must register.endFunction
btw, why make it > instead of >= , maybe its just me being neurotic, but I prefer werewolves to change at 8 PM sharp and any times beyond that point rather than 8:01 PM and any times beyond that point...
Wanted to leave an hour time so it gets dark

TimeOfDay is int so the game dosnt recognize if its 8:00 or 8:01 for a > it needs to be 9:00 or more for it too run

So if you like 8 pm sharp then >= is ok
Should I put a while loop in the code? I didn't tick run once on the quest menus though, so I don't see how that would be a problem.
The OnUpdateGameTime is already like a loop as long as the quest script is running but we dont have the script running a quest in the first place so that might be the reason it dosnt work.
Notes
Aliases and quests will automatically unregister for this event when the quest stops. Active magic effects will automatically unregister when they are removed.
This event is not relayed to any aliases or magic effects attached to the form.
OnUpdateGameTime may come in much later then you expect if the player is sleeping, waiting, fast traveling, or serving jail time. The event will only be sent once, after the sleep/wait/travel/serve period is over, so you should be prepared to handle hours passing between updates.