I did some research and found a solution using template overrides (thanks to Sharky answer).
You can manually trigger content plugins in template overrides for featured contacts as well.
Run the content plugins on some text:
echo JHtml::_('content.prepare', 'For ...
Your approach will still work, but you just need to pass a contact object as the second parameter to your call
$fields = FieldsHelper::getFields(...);
Unfortunately afaik there is no API around contact the way there is around user, so it's a bit more complex to get it.
I got it by doing a database query (as in Selecting data using JDatabase) to find the #...
The con_position column in the database is a simple text type -- VARCHAR(255), while the calendar field type would expect to be working with a column in the database of type DATE.
You need to change both the Form field in Joomla and the database field type in the #__contact_details table using mysql or phpmyadmin for it to work.
You may find this helpful, I did.
It has been years, but if you examine your array you will find the proper value of [#]. You can then modify your code.
Add this at the bottom of your override to see the contents of the array:
snippet: echo '<pre>'; print_r($array); echo '</pre>';