Not to imply you are suggesting this, but just to make sure that the point isn't overlooked.
The counter-protesters in Charlottesville also had permits for their Saturday assembly.
Neither side had permits for the Friday night events, probably because they were on UVA property where, according to the University, none are required in the first place.
Not quite the whole story. Kessler applied for his permit to use Emancipation Park for a "Free speech rally in support of the Lee Monument" on May 30, 2017. In addition to the $25 permit fee, he had to obtain a $1 million insurance policy (from Evanston Insurance Company). He also estimated attendance at 400.
The City granted his permit on June 13, 2017, then tried to revoke it (or significantly curtail it) on August 7, 2017, leading to a lawsuit filed on August 10, 2017.
No earlier than July 8 (and probably much later) Walt Heinecke applied for a permit for a counter-protest (with up to 1,000 people) at two parks - one which was three blocks to the East and one which was two blocks to the West of Emancipation Park. This permit was approved on July 31. In examining both permits, it strikes me that Heinecke's permit was rather hastily completed (i.e. incomplete) and basically rubber-stamped. There is no evidence that he even paid a fee, let alone presented evidence of a $1 million insurance bond.
In any case, the counter-protesters' permit was clearly issued in response to the Unite the Right permit, and the City tried to advantage one and disadvantage the other. The court documents are interesting reading actually. The judge obviously ruled correctly.
Also, to the best of my understanding (and this appear to be corroborated by the counter-protesters), counter-protesters attempted to block the Unite the Right ralliers from reaching Emancipation Park. Surely that would be a violation of the terms of their permit.