Full iCalendar, kept whole
One RFC 5545 parser for everything that arrives, whether it came
from CalDAV, from Google, from a subscribed .ics feed
or out of an email: timed and all-day events, DURATION
as well as DTEND, TZID, UTC and floating
times, RRULE with RDATE and
EXDATE, the RECURRENCE-ID overrides that
move one occurrence of a series, attendees and their
PARTSTAT, ORGANIZER,
CATEGORIES, TRANSP, STATUS
and VALARM.
Writing back is the half most programs get wrong. meercal keeps
the text the server sent and patches the properties you
changed into it, rather than parsing and re-serialising
the event: the attachment, the conferencing block and the
X- properties your phone put there are still there
afterwards, because they were never rewritten. That is the
difference between editing a calendar and retyping it.