Digital TV channels should have an Event Information Table encoded in them, but'sbut the time window is quite limited (generally about 12 hrs).
Tribute Media used to offer free tvTV listings to the public, but when the popularity of MythTV and other PVRs took off, they couldn't support the amount of traffic that they were getting hit by.
As Tribue wasn't interested in dealing with lots of individuals, some folks banded together to form SchedulesDirect. They distribute the Tribune / Zap2it data to individuals, at a moderate fee (currently $25/yr), but there are restrictions on redistributing the data.