Tags: patch Here is a draft patch implementing a new parser for iCalendar data. This code implements the grammar of RFC5545, functions to parse this grammar to an abstract syntax tree, functions to validate syntax trees, functions to print syntax trees, and a test suite for the parser and printer functions containing all the examples from RFC5545. The code is organized as follows: lisp/calendar/icalendar-ast.el: defines the abstract syntax tree, including the validation functions lisp/calendar/icalendar-macs.el: defines the icalendar-define-param, icalendar-define-property, and icalendar-define-component macros lisp/calendar/icalendar-parser.el: defines the parsing and printing functions, and all of the individual parameters, properties, and components defined in the RFC. test/lisp/calendar/icalendar-parser-tests.el: the test suite. All the tests pass on my machine with Emacs 29.1 and with Emacs master. Looking forward to your feedback! This is a (very?) large patch, so please let me know if it would be better to submit it another way. Thanks, Richard