Managing master data

How do I organise master data in Kirby that provides a set of data for the actual pages? For example, a list of events.

If I understand it correctly, I would create a page of the type Events in Kirby, which in turn contains a list of events. However, Events itself is not a page and should not be able to be deleted or edited. Only the individual events are managed inside here. Events is a fixed container.

I actually imagine that there is an ‘Events’ item in the menu on the left, under which all events are managed.

What is the right approach?

Without using pages, you could create a custom Panel area, similar to this recipe, where data is either stored in a database or some other writable format: Advanced Panel area | Kirby CMS

Other than that, you would indeed create pages, but make them inaccessible from the frontend and just use them as data containers.

That is helpful. This means that I can hide pages and make them inaccessible if I don’t want them to be changed. They then only serve as data containers.

In this case, I could, for example, integrate events into the side menu.

 'events' => [
                'icon'  => 'clock',
                'label' => 'Events',
                'link'  => 'pages/events'
            ]

If I understand it correctly, I could also add a separate area on the main panel page to display the latest events directly.

sections:
  pages:
    label: Pages
    type: pages
  events:
    label: Events
    type: pages
    template: events

You might find my Recurr plugin useful for this, and its companion Yasumi

Recurr is for repeating events between a date range (like something that happens every monday and tuesday for 6 months. it will return all those dates to you.)

Yasumu gets a list of all the public holiidays for a given a given country and year. You can use this to filter out events that fall on a public holidays like Chirstmas day and therefore wont happen.