There are several ways to skin this proverbial cat :) with tvh you can use internal or external grabbers. I use the internal one. I am on 4.0.7, but the setups should be similar. Give me an hour until I am at home and I will post a better example and screenshots.
Glad to help as I had enormous problems understanding how it was supposed to work. If I can help someone, then I am glad to!
edit:
1. Install:
xmltv - A set of utilities to manage your TV viewing
xmltv-grabbers - Backends for xmltv
2. Run
tv_find_grabbers baseline manualconfig
this should yield a list of installed grabbers. Find the one (or ones for Italy)
3. Run as the user that runs tvheadend:
tv_grab_se_tvzon --configure
(or possible with additional parameters as the link I posted explains)
4. A file is created in ~/.xmltv/tv_grab_it_xxxx.conf. Edit this file:
root-url=
http://xmltv.tvzon.se/xmltv/channels.xml.gz
cachedir=/home/dalton/.xmltv/cache
channel!1.bluemovie.de
channel!13thstreet.de
channel!13thstreet.nl
Example is from sweden, but you get the idea. For channels you need, replace ! with =
5. Run tv_grab_it_xxx --days 2, as the user for tvheadend. You should see lots of stuff being downloaded.
6. In tvheadend. Configuration, Channel/EPG, Internal grabber, module. Doubleclick box and select your grabber. The default cron settings runs twice a day, should work in most cases
7. In configuration, Channels, doubleclick EPG Source and select for each channel.
EPG should now populate. Takes a few minutes though.