91³Ô¹ÏÍø

Watch CBS News

Special election to fill Eric Swalwell's California congressional seat set by Gov. Newsom

California Gov. Gavin Newsom on Tuesday set the date for a special election to fill Eric Swalwell's congressional seat after his resignation following multiple sexual misconduct and assault allegations.

Newsom setting the date of August 18 for the election to represent the state's 14th Congressional District, which encompasses portions of the Northern California counties of Alameda and Contra Costa.

On Tuesday, Swalwell officially resigned from Congress, a stunning political downfall for the high-profile Democrat who was considered among the leading candidates in the race for California governor. Swalwell dropped out of the race on Sunday after multiple women came forward and accused him of sexual assault and other misconduct.

Swalwell and Republican Rep. Tony Gonzales of Texas, who admitted to an affair with a subordinate who later died by suicide, both submitted their resignation letters to the House clerk on Tuesday, avoiding expected votes to expel them from Congress. Gonzales had previously declined to resign until the Swalwell allegations placed additional scrutiny on other allegations of misconduct in Congress.

In his letter, Swalwell apologized to his family, staff and constituents "for mistakes in judgment I've made in my past." He vowed to fight what he called "serious, false allegations" against him, but added that "I must take responsibility and ownership for the mistakes I did make."

Earlier Tuesday, another woman came forward to allege that Swalwell had drugged and raped her in 2018. The woman, who identified herself as Lonna Drewes, spoke at a news conference in Beverly Hills to allege Swalwell spiked her drink before taking her up to his hotel room, where he sexually assaulted her while she was incapacitated.

At least five women have reported being sexually assaulted or harassed by Swalwell. His attorney issued a statement on Tuesday saying the former congressman "categorically and unequivocally denies each and every allegation of sexual misconduct and assault that has been leveled against him."

The last time California held a special election to fill a vacant seat was in May 2024 for the 20th Congressional District in the state's Central Valley, following the resignation of Republican and former House Speaker Kevin McCarthy, and was won by Republican Vince Fong. The state has another special election scheduled on June 2, the same date as the California Primary, for the 1st Congressional District in Northern California, following the January death of GOP Rep. Doug LaMalfa. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });