Both are fluent English and mean exactly the same thing in context. The difference between "for" and "at" are the only thing left in question and for in this context is possessing the time of 8 o'clock as well as the word "at" in the second example you provided also possesses the time of 8 o'clock. "Some say Tomato some say Toe matto" don't call the whole thing off.