You use "I heard" to refer to hearsay information- you are not completely sure whether it is correct, or you didn't hear it from the source.
You can use "I heard you had..." about something that happened in the past:
I heard you had an accident last week
I heard you had got married
Or about something in the future that may not go ahead or has already been cancelled
I heard you had a date next week with that cute guy from accounts...
I heard you had a job interview next week but it fell through
If you are talking about something in the future that will definitely go ahead, you should really use
I heard you have a job interview next week
I heard you have Diwali next week, will you celebrate?
Other answers suggest that it's not normal to refer to holidays using the words have or had. If you google have a good Christmas, you will get lots of hits, incliding this from the British Council learn English site:
Avoid these things and you’ll have a good chance of having a truly Merry Christmas
Imagine a situation where a guy takes his children to Lappland for Christmas. Back at work after the holiday, a colleague says to him "I heard you had an exciting Christmas!"
In a monoculture society, it's hard to imagine somebody saying "I heard you have Christmas next week". This sounds wrong not for grammatical or idiomatic reasons, but because Christmas is the same day every year and everybody knows when it is. Furthermore, everybody is involved, like it or not.
Diwali, however, is like Easter- it's on a different date each year. It's therefore easy to imagine in a multicultural society like England a Christian (who has a vague idea about Hindu traditions) saying to a Hindu "I heard that you have Diwali next week".