~wyleyr/icalendar-el

An implementation of RFC5545 in Elisp
022c6b0d — Richard Lawrence a day ago
icalendar-parser: new validation function ical:rrule-validator
3fd88ec7 — Richard Lawrence a day ago
icalendar-parser: fix a couple of bugs in recur-value-p
0e029f78 — Richard Lawrence 4 days ago
icalendar-parser: update docstring for ical:recur

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~wyleyr/icalendar-el
read/write
git@git.sr.ht:~wyleyr/icalendar-el

You can also use your local clone with git send-email.

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.