Step-by-step instructions to create a custom entity type in Drupal 11.
This guide documents the process of creating a custom entity type in Drupal 11 using the example of an Event entity type.
You can reach this guide at https://git.io/d8entity.
The starting point is a stock Drupal 11 core Standard installation with the contributed Entity API available at modules/entity and an empty module directory at modules/event.
Having Drush 13 available is required to follow along. When Drush commands are to be run, run them from within the Drupal installation. When PHP code is to be executed, this can be done by running drush core:cli or by creating a test script and then running drush php:script <name-of-script>.