Foundry376/Mailspring · error
EventHeader: Could not parse ICS data from calendar event: $
Error message
EventHeader: Could not parse ICS data from calendar event: ${e.message} What it means
Warning in EventHeader's query subscription: a matching Event row was found in the database and its stored ics re-parsed, but parsing threw — the synced calendar event's ICS is corrupt or in a format the parser rejects. The component keeps the last good icsEvent state instead of crashing.
Source
Thrown at app/internal_packages/events/lib/event-header.tsx:108
icsEvent: event,
icsMethod: normalizedMethod as 'reply' | 'request' | 'cancel',
icsOriginalData: data.toString(),
});
this._subscription = Rx.Observable.fromQuery(
DatabaseStore.findBy<Event>(Event, {
icsuid: event.uid,
accountId: message.accountId,
})
).subscribe((calEvent) => {
if (!this._mounted || !calEvent) return;
try {
this.setState({
icsEvent: CalendarUtils.parseICSString(calEvent.ics).event,
icsOriginalData: calEvent.ics,
});
} catch (e) {
console.warn(`EventHeader: Could not parse ICS data from calendar event: ${e.message}`);
}
});
});
}
componentDidUpdate(prevProps: EventHeaderProps, prevState: EventHeaderState) {
if (prevState.inflight) {
this.setState({ inflight: undefined });
}
}
render() {
const { icsEvent, icsMethod } = this.state;
if (!icsEvent || !icsEvent.startDate) {
return null;
}
// Workaround to convert calendar invites sent out from Microsoft calendars to IANA timezonesView on GitHub (pinned to 648c685d60)
Solutions
- Re-sync the calendar account so a fresh ICS is stored for the event
- If persistent, the event was created with a non-standard ICS flavor; delete and recreate it
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at app/internal_packages/events/lib/event-header.tsx:108 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Foundry376/Mailspring@648c685d60 (2026-09-03).
Data as JSON: /api/errors/098915ca4c403444.
Report an issue: GitHub.