You might find Date as a field name is a clash with a mysql reserved word.
try using
"PostDate" => "Date"
$fields->addFieldToTab('Root.Content.Main', new CalendarDateField(PostDate, 'Date'), 'Content');
the do a flush and see if it works.. remember to change the $Date to $PostDate in your template.