iCal
Calendar invites as plain text since 1998.
Where it came from
iCalendar grew out of vCalendar (1996, again the Versit crowd) and was standardized as RFC 2445 in 1998, updated by RFC 5545 in 2009. Every calendar invite you've ever accepted — Outlook, Google, Apple — traveled as an .ics attachment.
How it works
Same property model as vCard: `BEGIN:VEVENT ... END:VEVENT` blocks with DTSTART/DTEND, SUMMARY, UID. The powerful part is recurrence: `RRULE:FREQ=WEEKLY;BYDAY=MO,WE` describes infinite schedules compactly.
Timezones are the eternal trap: floating times vs UTC vs TZID references cause most calendar bugs ever filed.
UWC parses the practical RFC subset — events, dates, folding, escaping — and maps repeating properties to JSON arrays.