Just Announced
Touring Artists
The Grammy-nominated artist has tallied more than 9 billion streams of her songs.
By Jennifer Goldberg
July 23, 2024
Kehlani will bring the Crash Tour to Phoenix in October.Israel Riqueros
`,`
Related
- Phoenix concerts part of Live Nation’s Summer’s Live ticket sale
`,`
Related
- Pitbull will be halftime performer at Phoenix WNBA All-Star Game
`,`
Related
- Tempe gets concert on Taking Back Sunday, The Used co-headlining tour
`,`
Related
- Rap star Don Toliver announces Psycho Tour with Phoenix stop
`,`
Related
- Nick Cannon to bring ‘Wild ’N Out’ legacy tour to Phoenix this fall
`,`
Related
- Comedian Leslie Jones announces fall 2024 performance in Phoenix
`,`
Related
- André 3000’s fall 2024 tour will stop at Mesa Arts Center in September
`,`
Related
- Anderson .Paak announces 2024 tour, including Phoenix concert
`,`
Related
- Sabrina Carpenter’s tour will stop in Phoenix in November
` ];
Grammy-nominated R&B artist Kehlani announced a North American tour on Tuesday morning.
She'll bring the Crash Tour to Talking Stick Resort Amphitheatre on Oct. 29. Flo and Anycia are the supporting acts.
The 29-year-oldKehlani Ashley Parrish haspicked up two Grammy nominations, more than 20 gold and platinum RIAA certifications and tallied 9 billion streams.
Earlier this year, Kehlani released her fourth album, "CRASH," featuring the smash hit “After Hours,” which was recently named among Rolling Stone’s “Best Songs of 2024 So Far.”
The Citi cardmember presale begins at 2 p.m. on Tuesday. Additional presales will run throughout the week ahead of the general on sale beginning at 10 a.m. on Friday on Kehlani's website.
The full list of tour dates is below. And for more Phoenix concert information, visit the Phoenix New Times concert calendar.
Sept. 4, Minneapolis, Armory
Sept.6, Chicago, Byline Bank Aragon Ballroom
Sept.10, Detroit, Michigan Lottery Amphitheatre
Sept.11, Toronto, Scotiabank Arena
Sept.13, Bridgeport, Conn., Hartford HealthCare Amphitheater
Sept.14, Camden, N.J., Freedom Mortgage Pavillion
Sept.17, Boston, MGM Music Hall at Fenway
Sept.18, Fairfax, Va., EagleBank Arena
Sept.20, Brooklyn, N.Y., Barclays Center
Sept.21, Portsmouth, Va., Atlantic Union Bank Pavilion
Sept.23, Louisville, Ky., The Louisville Palace Theatre
Sept.24, Atlanta, Lakewood Amphitheatre
Sept.25, New Orleans, The Fillmore New Orleans
Sept.27, Miami, FPL Solar Amphitheater at Bayfront Park
Sept.28, Tampa, Fla., Yuengling Center
Oct. 1, Raleigh, N.C., Red Hat Amphitheater
Oct. 2, Charlotte, N.C., Skyla Credit Union Amphitheatre
Oct. 8, Houston, 713 Music Hall
Oct. 11, Dallas, The Pavilion at Toyota Music Factory
Oct. 12, Rogers, Ark., Walmart AMP
Oct. 15, Denver, Fillmore Auditorium
Oct. 16, Salt Lake City, Rockwell at The Complex
Oct. 18, Seattle, Climate Pledge Arena
Oct. 19, Portland, Ore., Theater of the Clouds
Oct. 21, Vancouver, Doug Mitchell Thunderbird Sports Centre
Oct. 23, Wheatland, Calif., Hard Rock Live
Oct. 25, San Diego, Viejas Arena
Oct. 26, Las Vegas, Michelob ULTRA Arena
Oct. 29, Phoenix, Talking Stick Resort Amphitheatre
Oct. 30, Los Angeles, Kia Forum
Nov. 2, San Francisco, Chase Center
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } // const insertionBlockClass = `fdn-paragraph-insertion-block`; const styleElementHook = `fdn-paragraph-insertion-styles`; jQuery(element).addClass(insertionBlockClass); if (jQuery(`[${styleElementHook}]`).length === 0) { jQuery('div.fdn-content-body, div #storyBody').append('
') const paragraphLineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() const styleElement = jQuery(`
`); const styleText = ` div.fdn-content-body br+.${insertionBlockClass}:not([hidden]), div #storyBody br+.${insertionBlockClass}:not([hidden]) { margin-top: ${paragraphLineHeight*2}px; margin-bottom: ${paragraphLineHeight}px; } div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type, div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type { margin-bottom: ${paragraphLineHeight*2}px; } ` styleElement.text(styleText); jQuery('head').append(styleElement); } // } } jQuery(element).insertBefore(this.paragraphEndNodes[index]); } else { console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index); } } this.insertElemenAtEnd = function (element) { if (this.paragraphEndNodes.length) { let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1); if (this.isDoubleBrParagraphBreak(lastNode) || this.isBrParagraphBreakBeforeBlockElement(lastNode)) { if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) { jQuery('
').insertAfter(this.paragraphEndNodes[index]); jQuery('
').insertAfter(this.paragraphEndNodes[index]); } else { jQuery('div.fdn-content-body, div #storyBody').append('
') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } } } } this.bodyContainer.append(element); } this.getNodeAtIndex = function (index) { return this.paragraphEndNodes[index]; } }
`); } var paragraphCount = myParagraphTool.getParagraphEndNodeCount(); // No need to insert if there aren't enough paragaphs if (paragraphCount >= parseInt(item.requiredCountToDisplay)) { // Matches specific paragraph insertion indexes if (item.insertPoint.match(/^\d+$/) !== null) { var insertIndex = parseInt(item.insertPoint) - 1; // Insert within content if (insertIndex < paragraphCount) { myParagraphTool.insertElemenAtIndex(componentElement, insertIndex); } // Append to the end if the insert point is beyond the paragraph count else { myParagraphTool.insertElemenAtEnd(componentElement) } } // Matches for 1/2, 1/4, 2/3, 5/6, etc else if (item.insertPoint.match(/^[1223456]\/[23456]$/) !== null) { var fractionMatch = new RegExp(/^([123456])(?:\/)([23456]$)/); var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]); var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]); var fractionValue = fractionPart / fractionWhole; var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1; myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex); } // Matches for every Nth insertion point else if (item.insertPoint.match(/^\d*th$/i) !== null) { var intervalIndex = parseInt(item.insertPoint.match(/^(\d*)th$/i)[1]); var startingIndex = parseInt(item.startingPoint) - 1; var insertionMax = parseInt(item.maxInsertions) || 100; var insertionCount = 0; for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) { if ((i - startingIndex) % intervalIndex === 0) { let currentNode = myParagraphTool.getNodeAtIndex(i); const clonedComponent = componentElement.clone(); myParagraphTool.insertElemenAtIndex(clonedComponent, i); insertionCount++; } } } } }); Foundation.Content['19514715'].setupInlineComponents = function () { return true; }; if (typeof callback === 'function') { callback(); } }, 200); } Foundation.Content['19514715'].previewInsertionPoints = function () { var myParagraphTool = Foundation.Content['19514715'].paragraphTool myParagraphTool.paragraphEndNodes.each((index, item) => { const insertionPointPlaceholder = jQuery(`
`) myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index); }); return 'Paragraph insertion placeholders applied.'; }