Yes, that’s exactly my thought. The only problem I’m having is that I don’t know how to update the Upcoming Events’ Event Participants automatically when a user hits register. Right now only the second dataset I showed above is updating.
Cool… that field being a list of users should simplify things because then all you have to do when a user clicks the button to register is make changes to the current page’s or parent group’s event, and the change to make is to add the current user to the event’s Event Participants field. At that point, the button conditional I mentioned in my first response (which I deleted because I initially misunderstood your post) should work, and that condition is something like Current page's Upcoming Event's Event Participants contains Current User. When that condition is true, change the button text to You’re Registered and disable the button.
It should be noted that if an event can contain hundreds or thousands of users, you might be better off from a performance perspective of going with a separate data type that makes an associaton between an event and a user (which is essentially what you were doing before). With that data type in place, you would get rid of the list field on the Upcoming Events data type, and your button conditional would be a count of a search through the new data type for a thing created by the current user and associated with the current page’s or parent group’s event.
@mikeloc I think for now your first solution is perfect. Thank you so much, it works exactly like I want it to work, I don’t expect to have more than a few hundred users any time soon.