By noon, the crowds began to pour into uptown's Marshall Park. The local Spanish-language radio station, La Raza 106.1FM, supplied music as a line of volunteers hauled cases of water bottles into the park and procrastinators hastily scrawled last-minute messages onto sheets of poster board.
Hundreds of families arrived with school-age children in tow, ignoring CMS officials who urged parents against doing so earlier in the week. One 15-year-old high school student, Ciera Medina, said she should have been at J.M. Robinson High School, but skipped with her four younger siblings.
"We - all five of us - did not go to school because we're here representing our race, and our ethnicity, and we believe this is right," she said, "We as people - as Latinos, as Hispanics - we need to stand up and show Trump that America is made of immigrants."
By 1 p.m., city officials estimate the gathering had swollen to some 7,000 - 8,000 people, all tightly packed around the central fountain in Marshall Park, listening and cheering to a succession of speakers from a variety of local advocacy groups.
Many of the demonstrators came to protest the recent string of ICE arrests in the Carolinas and around the country, perceived by many as a crackdown by the Trump administration. Several said they were still upset with Trump for calling Mexicans "rapists and criminals," and in response led chants of "the people... united... cannot be divided" and "we are not criminals."
Demonstrators also voiced a great deal of animosity toward Charlotte Mayor Jennifer Roberts and the Charlotte City Council, condemning them for failing to take bolder steps to protect immigrants living in the city illegally.
"We know that the city - the mayor, city council, city leaders - can do much, much more for our families and for our communities." Monica Bourommavong of the Southeast Asian Coalition told the crowd as the rally was underway. "Don't believe it when they tell you that the mayor can't do anything. Don't believe it! All across the U.S., mayors are doing so much more to tell Trump, 'not in my city!'"
The group organizing the demonstration, Comunidad Colectiva, or Collective Community, released a list of demands at the rally, calling on Mayor Roberts and the city council to fight against HB318, a state law that says police officers in North Carolina can't be banned from asking people about their immigration status, and can't be banned from sharing that information with ICE agents.
Charlotte Police Chief Kerr Putney has said the city's police officers do not ask people for their immigration status, though Bourommavong told the crowd she was skeptical, alluding to the federal 287(G) program.
"We are smarter and we know that CMPD is the direct funnel into the sheriff, which is the direct funnel to deportation," Bourommavong said.
In their demands, organizers called for a stop to the 287(G) program, in which Mecklenburg County sheriff's deputies can detain anyone brought into a jail who's found to be living in the country illegally. They also demanded intensive training for both CMPD and the Sheriff's Department on racial profiling.
Once speakers finished rallying the crowd, volunteers clad in neon-yellow vests began ushering the assembled toward Martin Luther King Jr. Blvd., where the demonstrators initially took over one lane, then two, than all four. At the front of the march, half a dozen people carried a large canvas with black letters the spelled "ICE OUT OF CHARLOTTE. MAYOR ROBERTS STEP UP."
As the procession crawled up the boulevard, corporate professionals out on a smoke break were suddenly enveloped with a mass of signs, American flags, and deafening chants. Bankers and retail workers looked on from skywalks overhead and construction workers paused their tasks to wave and take pictures.
The crowd veered right onto Tryon Street and advanced toward the intersection of Trade and Tryon, where a man dressed in camouflage and swinging a drink was involved in a brief altercation with marchers before police pulled him aside.
With the man removed, the marchers turned right again onto Trade street where they paraded toward the city's bus terminal, their chants of "si se puede!" or, "yes we can!" echoing off the glass skyscrapers as they passed by. Finally, they arrived at government center, where the throng heaved its final chants and slowly began to disperse.
Later in the day, the Charlotte City Council released a statement expressing appreciation for "the many migrants who have recognized [Charlotte's] unique appeal and chosen to make their home here."
The statement did not address demands made by the Comunidad Colectiva organization, but did point to a 2015 city resolution that banned local police from arbitrarily stopping and searching individuals on the basis of race, religion, sexual identity, and perceived immigration status.
"The people and government of Charlotte have a tradition of offering a friendly and welcoming environment to newcomers," the statement read, "and we look forward to continuing that tradition while also respecting the laws of our state and county."