How can I achieve this functionality?
I assume you have already added the image and event description, etc. as fields for the event content type.
For custom content types, normally you control the display using the Manage Display link from Structure -&gt; Content Types -&gt; Edit.
You can rearrange the fields how you want in the UI, and you can also use a Twig theme template to customize the specific HTML.  Core also provides the Layout Builder module to make something more complex.
It's also possible to use Views to overwrite the default content page, but it is usually easier to use Twig templates and/or Layout Builder.  If you do want to use Views, take a look at the core Taxonomy Term display to see how Views can be used to override a path for a custom content type.