I’ve seen this question a lot, in particular in regards to whether Webflow can achieve this with Logic + the CMS. Unfortunately there are still a few significant limitations remaining that make it unsuitable for this use case.
The best approach I’ve found so far is to pair Webflow with automation like Make.com and AirTable or Google Sheets to store your registrations.
All of the magic is in that Make automation.
Receive the event registration form submission
Store the details in AirTable or Google Sheets, so you have a centralized registrant list for all of your events, that can be accessed by your client
Count the number of registrants for event X ( X being the same event as whatever registrant you’ve just added )
Get the associated CMS Event Item, which will contain a “max registrants field”
Do the calc with your two values; max - current = remaining
Update the CMS Event item with remaining, so this can be displayed
This approach has a bunch of advantages including better PII data security, and ease of accessibility. It’s also much more internally-consistent than just trying to increment and decrement a number field.
It also opens the door to a more robust solution where your client can directly add/update/delete registrants directly from AirTable or Google Sheets. In that case you’ll want additional triggers and automations that will re-calculate and re-update your CMS-stored events when the central list is updated.