If it is a calendar event, you don't need to keep state, there is not need in timer as well. You can have a collection of calendar events statically know. In page load event, get current time and compare with this collection.
System.DateTime pageLoadTime = System.DateTime.Now;
The accuracy of this time is quite enough for calendar events :) .
—SA