In a large mixing bowl, whip the heavy cream until soft peaks form. Gradually add powdered sugar and vanilla extract, continuing to whip until stiff peaks form.
In another bowl, combine the instant vanilla pudding mix and milk. Whisk until smooth and slightly thickened.
Gently fold the whipped cream into the pudding mixture until fully combined.
On the bottom of a 9x13 inch baking dish, arrange a single layer of graham crackers.
Spread half of the cream mixture over the graham crackers, smoothing it evenly.
Sprinkle half of the diced apples over the cream, followed by a drizzle of caramel sauce and a dash of cinnamon.
Add another layer of graham crackers on top, followed by the remaining cream mixture, the rest of the apples, more caramel sauce, and another sprinkle of cinnamon.
Top off with a final layer of graham crackers.
Cover the dish with plastic wrap and refrigerate for at least 4 hours, or preferably overnight, to allow the flavors to meld and the graham crackers to soften.
Before serving, drizzle additional caramel sauce over the top and sprinkle with chopped nuts if desired.