When admins create or edit an event, the last section of the event configuration called "Settings" will have options related to seats and accessibility.
Restricting seats allows you to limit the number of people who can enroll in an event. If you enable this, managers and admins will not be able to assign the event to users greater than that set number. Furthermore, if an event is public and anyone can enroll in that event, the seats get filled up on a first-enrollment-basis rather than a first-assignment basis.
That is: only enrollment into such an event reserves a seat; not assignment.
If users have already enrolled in an event,
the seat limit can not be less than the enrollment count.
An event, upon reaching its seat limit, will not be visible to learners for enrollment unless the limit is increased or the admin manually removes someone to the effect that a seat becomes available. Learners who have enrolled in the event will continue to have access to the event till the end of its lifecycle.
You can configure the event such that learners enroll in it freely or only through assignments. In the "Settings" section, you have an option to change the "Accessibility" to the following options:
When the event is set to "Private", you will also see an "Advanced Customization" option. Clicking on this will allow you to select people and teams to whom you want the event made visible. The teams and people you select here will be able to view and freely enroll in the event.