Hello Guilers, I'm pleased to announce Guile-ICS 0.2.0: https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.2.0 Please find the package signed with my GPG key[1] here: - ftp://memory-heap.org/software/guile-ics/guile-ics-0.2.0.tar.gz - ftp://memory-heap.org/software/guile-ics/guile-ics-0.2.0.tar.gz.sig Guile-ICS was mostly re-written with GOOPS and now has basic support of iCalendar property value types. The API is not compatible with previous versions so if you want to use the library in your application -- please take a closer look into documentation and the examples. Also the release includes a bugfix that removes a bogus dependency on 'guile-lib' added by a mistake. For full list of user-visible changes see the excerpt from the NEWS file below. * What is Guile-ICS? Guile-ICS is an iCalendar format RFC5545 [2] parser for GNU Guile. * Usage examples Let's suppose you have a file named 'example.ics' with the following content: --8<---------------cut here---------------start------------->8--- BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT UID:19970610T172345Z-AF23B2@example.com DTSTAMP:19970610T172345Z DTSTART:19970714T170000Z DTEND:19970715T040000Z SUMMARY:Bastille Day Party END:VEVENT END:VCALENDAR --8<---------------cut here---------------end--------------->8--- Here's an example of how we can get the "SUMMARY" property value from this: --8<---------------cut here---------------start------------->8--- (use-modules (ics) (ics type object) (ics type property)) (let* ((port (open-input-file "example.ics")) (ics-object (car (ics->scm port))) (vevent (car (ics-object-components ics-object)))) (ics-property-value (ics-object-property-ref vevent "SUMMARY"))) => Bastille Day Party --8<---------------cut here---------------end--------------->8--- For more usage examples see the 'examples' directory in the distribution. Namely I would recommend to take a look on 'fosdem.scm' example which can be used to get various information from FOSDEM schedule. * The list of user-visible changes Here's the list of user-visible changes (an excerpt from NEWS file): --8<---------------cut here---------------start------------->8--- * Changes in version 0.2.0 (2017-12-25) ** The library is mostly re-written with GOOPS Now most of the API is object-oriented. ** Added support for iCalendar property value types ** New features *** The library now supports lists of values (RFC 5545, 3.1.1.) *** The library now handles escaped chars in TEXT values (RFC 5545, 3.3.11) ** Bugfixes *** Remove bogus dependency on 'guile-lib' There was an extra dependency on (scheme documentation) module that I overlooked in the previous release, which is now removed. ** Added the project logo ** Documentation is updated ** Examples are updated ** Unit tests updated; new tests added --8<---------------cut here---------------end--------------->8--- Happy hacking! - Artyom [1] https://pgp.mit.edu/pks/lookup?search=0x0898A02F&op=index [2] https://tools.ietf.org/html/rfc5545 -- Artyom V. Poptsov Home page: http://poptsov-artyom.narod.ru/ CADR Hackerspace co-founder: https://cadrspace.ru/ GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F