There are two bands that are available for use -- 2.4ghz and 5.8ghz. Most newer devices support 5.8ghz -- there is more overall bandwidth available on the 5.8ghz band, but we have had good success deploying only 2.4ghz for public events. Deploying 802.11ac in the 5ghz band with beam steering is something that we may investigate as more clients begin to support this band.
Two of the main issues is contention for air time (bandwidth) and channel usage. Wifi is half duplex, and only one device within a cell can talk at the same time on the same channel. If the access point(AP) is talking, clients(cell phone/laptop/etc...) must listen. If a client is talking, the AP and all other clients must listen. A protocol is implemented for this, CSMA/CA [1]. Think about this for a second -- when someone is transmitting data, nobody else can receive data. This is important (will explain later).
While(in the US) there are 11 available channels in the 2.4ghz band, there are only 3 usable channels. The others overlap and will cause interference if used in the same area. 1/6/11 are the non-overlapping channels. There is a limited amount of bandwidth available in any given area on any given channel. 2.4ghz tops out at about 130mb/s over-the-air (figure about 60% usable bandwidth as a best-case scenario) so about 80mb/s. That's with a single client, clean spectrum, and a single access point. If the signal is weak or if there is interference, this number will be reduced.
Antennas and access points need to be placed and configured (transmit power) in such a manner that you control the number of devices that are within range of them such that their client densities don't get too high (you don't want 1000 people connecting to one access point, wifi's implentation of CSMA/CA breaks down with these densities) but also the targeted clients have a good signal. One thing you must consider that many people don't is, that while you can control the area and transmit power of your access point, you cannot control the client device talking to it. You must take this into consideration also. That client 150ft away on the fringe of this cell is transmitting with full power, likely interfering with another access point 250ft away that can't even hear this AP's signal.
A single low signal client can turn your 80mb/s access point into a 2mb/s access point. An access point talking to a client with a weak signal will 'downshift' and talk at a slower speed -- say 12mb/s instead of 54mb/s -- this makes it easier for the client to receive the data being transmitted without errors. But, this slower speed means more time must be spent transmitting the data, and this is time that the AP can't talk to other clients, and other clients can't talk to the AP. In this manner, a single weak signal device streaming Youtube at 2mb/s can reduce your overall bandwidth on an access point to 10mb/s or even worse. I aim for about 30 devices per access point, with a maximum distance of about 100ft in outdoor environments and 50ft indoors. In practice, this maintains a generally usable speed of about 5mb/s (you'll want to deploy bandwidth management systems to enforce this). Your overall usage will depend heavily on the type of event, but generally we see about 10% of attendants using wifi -- so based on the rule above, about one access point per 300 people.
If the layout of your event is such that this is difficult or impossible (such as a large auditorium/stadium) you can co-locate multiple access points on non-overlapping channels and handle about 1000 clients in a general area. But care must be taken to control the signal propagation if you want to support more clients in other areas as you will be using all 3 available channels thus any other nearby access points(within range) will be cutting into your available bandwidth.
This is complicated by the reluctance of most wifi devices (phones are the worst because you generally can't configure this setting on the client) to let go of a weak signal and grab a stronger one. A wifi device will generally hold on to a signal long after it has become unusable. Many of the bigger manufacturers have ways to mitigate it. With Ubiquiti, you MUST configure the "minrssi" [2] feature and it is buried in a config file on the access point controller. Most consumer grade access points do not support this feature at all.
As I get more into trying to explain this I'm realizing all of the nuances and gotchas that can really make this difficult for someone without experience to engineer and implement. I'm not sure I can effectively convey them in an HN reply but hopefully I've helped steer you in at least the right direction. Sadly, most tech companies that would be contracted to do this type of work are just as ill equipped to design and implement this.
[1]: https://en.wikipedia.org/wiki/Carrier_sense_multiple_access_...
[2]: https://help.ubnt.com/hc/en-us/articles/205146050-OD-UniFi-H...