ICS — Meeting REQUEST SAMPLE
Standalone SAMPLE iCalendar REQUEST for calendar parsers without MIME wrapping.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Novus Examples//SAMPLE//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:wave-g-meeting-001@sample.example
DTSTAMP:20260115T150000Z
DTSTART:20260120T160000Z
DTEND:20260120T170000Z
SUMMARY:Novus SAMPLE Planning Sync
ORGANIZER;CN=Alex SAMPLE:mailto:alex@brightside.example
ATTENDEE;CN=Sam Rivera;RSVP=TRUE:mailto:sam@meridiansupply.example
STATUS:CONFIRMED
SEQUENCE:0
END:VEVENT
END:VCALENDAR
Specifications
- Method
- REQUEST
- Wave
- G
Testing contract
Expected to pass- Scenario
- Exercise ICS — Meeting REQUEST SAMPLE in its calendar workflow. Standalone SAMPLE iCalendar REQUEST for calendar parsers without MIME wrapping.
- Expected result
- 16 text lines, decoded as UTF-8; first nonempty line is 'BEGIN:VCALENDAR'. Declared feature checks: method=REQUEST.
What is a .ics file?
ICS (iCalendar) is a plain-text format for exchanging calendar data such as events, to-dos, and free/busy time, structured as nested VCALENDAR and VEVENT components with property lines. It encodes start and end times, recurrence rules, and reminders. It is the universal standard for calendar interchange and invitations.
How to use this file
Use an example ICS file to test calendar import, event and recurrence-rule parsing, timezone handling, and interoperability across calendar applications.
How to use this file for testing
“ICS — Meeting REQUEST SAMPLE” is a deterministic Novus Examples fixture for Email parsing, Conversion testing. Standards-compliant RFC 822 messages (plain, multipart text+HTML, and with an attachment) plus an MBOX mailbox, for testing header parsing, MIME decoding, attachment extraction, and mailbox splitting.
Documented properties for this file: ICS · 431 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.
Email fixtures use fixed dates, message IDs, and MIME boundaries so runs are reproducible, and every address is fictional. Test header parsing, MIME decoding, attachment extraction, and EML/MBOX conversion against the documented structure.
Code examples
from icalendar import Calendar # pip install icalendar
cal = Calendar.from_ical(open("invite.ics", "rb").read())
for ev in cal.walk("VEVENT"):
print(ev.get("summary"))Related files
- emlMeeting 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.

- 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.

- emlEML — 1,024-Octet Header Line With No Fold PointA single header whose value is one 1,001-character token with no whitespace, making the line 1,024 octets — past the 998-octet limit RFC 5322 sets and impossible to fold. Fixed-size line buffers truncate here, and the truncation is silent.

- emlEML — Attachment With No Filename At AllAn attachment with a bare Content-Disposition: attachment and no name in either header. A client has to invent a filename, and the extension it invents decides whether the saved file opens as a spreadsheet or as unknown binary.

- emlEML — Base64: Accented UTF-8 BodyA base64 text/plain message in utf-8 carrying the identical body to the quoted-printable twin beside it. Base64 is opaque to whitespace and line-start characters, so it is the reference side of the pair when a QP decoder is suspect.

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