Meeting Invitation with iCalendar (EML)
A meeting-invitation email carrying an iCalendar (.ics) VEVENT with METHOD=REQUEST — for testing calendar-invite detection, ICS extraction, and RSVP handling.
Content-Type: multipart/mixed; boundary="=_iv_0003000000000000"
MIME-Version: 1.0
From: Maya Chen <maya@brightside.example>
To: Sam Rivera <sam@meridiansupply.example>
Subject: Invitation: Supply review call (20 Jan 2026)
Date: Thu, 15 Jan 2026 09:00:00 -0800
Message-ID: <invite-evt0042@brightside.example>
--=_iv_0003000000000000
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
WW91IGFyZSBpbnZpdGVkIHRvOiBTdXBwbHkgcmV2aWV3IGNhbGwKMjAgSmFuIDIwMjYsIDE2OjAw
IFVUQyAoMzAgbWluKSwgdmlkZW8gY2FsbC4K
--=_iv_0003000000000000
Content-Type: text/calendar; method="REQUEST"; name="invite.ics"
MIME-Version: 1.0
Content-Disposition: attachment; filename="invite.ics"
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Novus Examples//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:evt-2026-0042@brightside.example
DTSTAMP:20260115T090000Z
DTSTART:20260120T160000Z
DTEND:20260120T163000Z
SUMMARY:Supply review call
LOCATION:Video call
ORGANIZER;CN=Maya Chen:mailto:maya@brightside.example
ATTENDEE;CN=Sam Rivera;RSVP=TRUE:mailto:sam@meridiansupply.example
DESCRIPTION:Quarterly review of the standing supply order.
END:VEVENT
END:VCALENDAR
--=_iv_0003000000000000--
Specifications
- Structure
- multipart/mixed
- Attachment
- invite.ics (text/calendar; METHOD=REQUEST)
What is a .eml file?
An EML file is a single email message stored in the RFC 822 / MIME format — plain-text headers (From, To, Subject, Date, Message-ID) followed by the body, which may be plain text, HTML, or a multipart structure with alternative bodies and file attachments encoded in base64.
How to use this file
Use an example EML to test email header parsing, MIME decoding, HTML-part handling, attachment extraction, and EML-to-other-format conversion.
Code examples
from email import policy
from email.parser import BytesParser
msg = BytesParser(policy=policy.default).parse(open("meeting-invite.eml", "rb"))
print(msg["subject"], msg["from"])Related files
- emlBounce / Non-Delivery Report (EML)A bounce / non-delivery report (NDR) — a multipart/report message with a human-readable notice, a message/delivery-status part, and the original headers — for testing bounce parsing and delivery-status extraction.

- emlEmail with Attachment (EML)A multipart/mixed email with a base64-encoded CSV file attachment — for testing attachment detection, decoding, and extraction from an EML message.

- emlHTML Newsletter Email (EML)An HTML newsletter email (multipart/alternative) with a table-based responsive layout and a List-Unsubscribe header — for testing HTML-email rendering, sanitising, and marketing-email parsing.

- mboxMBOX Mailbox — six-message threadA larger mbox mailbox with a six-message back-and-forth thread — for testing mailbox splitting, thread reconstruction, and pagination over more than a couple of messages.

- mboxMBOX Mailbox (three-message thread)An mbox mailbox concatenating a short three-message email thread with the classic 'From ' separator lines and >From body escaping — for testing mailbox splitting and thread reconstruction.

- emlMultipart Email — Text + HTML (EML)A multipart/alternative email carrying both a plain-text and an HTML body — for testing MIME part selection, HTML-part handling and sanitising, and multipart parsing.

Generated by generation/email_extra.py. Free for any use, no attribution required — license.