I have a couple Edge 500s and an 800.
The more data you give them, the less inaccurate they become. With a heart rate and power meter, plus a fairly current user profile (height, weight, age, FTP...), the calorie estimate is below my kJ burn.
This week I did an hour of Steady State riding on the trainer and the calorie estimate was right around 800. I've done more, but usually my average for a solid hour at Endurance or above is around 700 calories. Yours could be more or less, depending on the data you input into the Garmin.