This repository is for collaboration on a new implementation of the iCalendar standard in Emacs Lisp. We're intending to create a full-fledged implementation of RFC5545 which consolidates and improves on the iCalendar libraries already available in Emacs (icalendar.el, gnus-icalendar.el, ox-icalendar.el) and which is primarily designed as a library, with an API that's general enough to be used by these and other applications. What exists so far: 1) A new implementation of the RFC5545 syntax (see =icalendar-parser.el= and =tests/icalendar-parser.el=) 2) A new major mode that provides syntax highlighting and folding/unfolding support (see =icalendar-mode.el=) How to get started: 1) Clone this repository and add it to your Emacs load-path: (add-to-list 'load-path "path/to/repo/dir") 2) Load the parser and icalendar-mode: (require 'icalendar-parser) (require 'icalendar-mode) 3) Open a file in icalendar-mode, unfolding its content lines: M-x find-file path/to/some/file.ics (If you notice any problems with the syntax highlighting in icalendar-mode, please file a bug!) 4) Try the parser: with point at the start of the relevant object, call one of `icalendar-parse-component', `icalendar-parse-property', `icalendar-parse-params'. The form of the resulting syntax tree is documented in icalendar-parser.el. Currently, there are not many functions to work with these trees, except the `icalendar-print-*-node' functions. 5) Read the documentation: the functions and symbols defined in this library should all have documentation available via M-x describe-symbol. How to contribute: Testing, documentation, and code will be gratefully received! Please get in touch with us here or on =emacs-devel@gnu.org=. Note that our intention is to eventually merge this code into GNU Emacs, so contributors of code must have copyright assignment paperwork on file with the FSF. The parser currently can parse and reproduce all the examples in RFC5545, but hasn't been tested much against data produced by other implementations. If you find data that doesn't parse correctly, please file a bug. A minimal test for the bug (see =tests/icalendar-parser.el=) would also be very useful.