Old English todæge, to dæge "on (this) day," from to "at, on" (see to) + dæge, dative of dæg "day" (see day). Meaning "in modern times" is from c. 1300. As a noun from 1530s. Generally written as two words until 16c., after which it usually was written to-day until early 20c.
Similar constructions exist in other Germanic languages, such as Dutch van daag "from-day," Danish and Swedish i dag "in day." German heute is from Old High German hiutu, from Proto-Germanic *hiu tagu "on (this) day," with first element from PIE pronominal stem *ki-, represented by Latin cis "on this side."