Why does 七時 need に but 今日 does not?


Consider the following sentences:

> A: 七時に学校へ行きます。
>
> B: 今日学校へ行きません。

I think both 七時 and 今日 are nouns. What I don't understand is why 七時 (as in A)
needs に but 今日 (as in B) does not.

Can anybody here explain the reason? One more question, does 七時に become an
adverb?




As strawberry jam has said, it's the same reason as why you would translate
them respectively as "I go to school at nine o'clock" and "Today I don't go to
school" (where the に would fulfil the same function as the "at").  
This is, however, also a case of spoken language vs. grammatical language, as
the most correct way of writing B would be 今日は学校へ行きません。 今日 goes with は instead
of に because 1)it affects the entirety of the sentence, while the 七時 in A
affects only the verb, and 2) it's not an exact timeframe, but a broad one
(Flaw's link may help to understand it better).  
When speaking, some particles tend to be dropped for certain uses either
because those particles are the default for its context, like the は when
stablishing the day (今日, 昨日, 明日, 一昨日, 明後日, 一昨昨日, 明明後日, which is "today",
"yesterday", "tomorrow", "the day before yesterady", "the day after tomorrow",
"three days ago", "in three days"), or to avoid possible repetitions, like the
を with names that become verbs with する.

