How much time do I have to notice astronomical events?

From the code, in calendar.js:

var seconds = 60;
this.observeTimeout = setTimeout(dojo.hitch(this, observeTimeout), seconds * 1000);

Thus, you have sixty seconds to hit the button, lest the event pass you by.

Another event appearing in that window immediately ends the 60 seconds though (but still process the auto harvest chance if applicable). Observatories give a auto harvest chance, and later a research makes all events auto harvest.