Have reviewed your code but could not get what actually is wrong with the code.
Another possible solution is that, you can use third-party WordPress plugin WP Full Calendar and select your post type in the plugin settings. You can then use short-code to display the full calendar in any of your website page/post.
WP FullCalendar: https://wordpress.org/plugins/wp-fullcalendar/