As long as the caching can be turned off, that should be fine then. I'm just thinking of how I would use this for the dragon timers. The way I have it set up is that for each event I'm interested in I have:
ActivationDelay: The amount of time after the event completes that the event will be unavailable
LastCompletedTime: The last time the event was completed (changed from Active to either Success or Failed)
The API doesn't track any of this information, so I have to store this myself. When a dragon is on its ActivationDelay, I don't bother querying for updates to its status, because I know it won't change. Since I'm only interested in the 3 dragons for 1 server,
my code can potentially go hours without calling the Events API for updates, since it's just not needed.
Once the activation window for a dragon begins, my code starts hitting the API every 10 seconds for updates, and continues doing that until it goes back into ActivationDelay.
So if the GW2.NET object model was caching all events and watching for changes on my behalf, it would be incredibly wasteful. It would have to retrieve all events every 10 seconds all the time, because it has no concept of ActivationDelay and it doesn't know
when the event last completed.
Maybe one day they'll give us this information via the API, and we can stop having to write our own code for this. But until then, I'm not convinced an event caching mechanism is feasible within GW2.NET, unless we're going to code the activation information
for every event and track the last completed time in a database, and let the caller specify which events they are interested in... which would be a huge and complex undertaking.