ICal version 0.09 Copyright (c) 2000, Eric Busboom ------------------------------------------------------------------------ (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the same terms as perl itself. ( Either the Artistic License or the GPL. ) ------------------------------------------------------------------------ ######################################################################### Note, this is alpha level software. It is primarily intended for developers and those who want an early peek. It works OK for all of the example programs, but any serious diversion will probably break it. ######################################################################### The Net::ICal module is a perl binding to libical, a C language implementation of the iCalendar calendaring and scheduling protocols. The iCalendar data units and protocols permit users to store and retrieve calendar data on remote servers and to schedule events with other calendar users. The protocols are specified in RFC 2445, RFC 2446 , RFC 2447 and two IETF drafts. For more information, see the working group's web page at: http://www.imc.org/ietf-calendar/ This code is under active development. If you would like to contribute to the project, you can contact me, Eric Busboom, at eric@softwarestudio.org. The project has a webpage at http://softwarestudio.org/libical/index.html and a mailing list that you can join by sending the following mail: ------------ To: minimalist@softwarestudio.org Subject: subscribe libical ------------ REQUIREMENTS 1) libical-0.20 and maybe 2) the MIME perl module. 3) SWIG You will need SWIG if netical_wrap.c fails to compile. You can get SWIG from www.swig.org. You will need the MIME module to run some of the example programs in examples/imip-client INSTALLATION First, you will need to install libical. YOU MUST GET VERSION 0.21 FOR USE WITH Net-ICal-0.11. This is available at: http://www.softwarestudio.org/download/libical-0.21a.tar.gz You should probably change the libical configureation so it does not abort on errors. Put "dnl" at the front of the line in configure.in that reads "AC_DEFINE(ICAL_ERRORS_ARE_FATAL,1)", delete config.h and re-make Next, edit the Makefile.PL to refer to the lib and include directories where you installed libical. You should have set these with the "--prefix" flag given to 'configure'," or it will be "/usr/local/lib" if you did not set it. Finally, make the perl distribution as normal. USE This release is an early alpha and is really only useful to the hard-core calendar hacker. You should be familiar with libical, and you will have to rely on the code in the test directory for documentation. Take a look at the test directory for a few examples of use. "examples/imi-client" also has examples of use. IMIP CLIENT In the examples/imip-client/ are several programs to demonstrate iMIP operations. send-imip.pl reads a libical 'cluster' file, wraps each of the components in it in MIME, and writes it to stdout. Try it with something list send-imip.pl ../../test-data/rfc2446.ics The companion program, read-imip.pl, reads a MIME encapsulated iCal component from stdin, decodes it, and compares it to other components it has read. If there are no other components with the same time range, it adds the component to its database. It stores these data in a libical 'calendar' directory named after the recipient of the email To try it out, run. send-imip.pl ../../test-data/rfc2446.ics | formail -ds ./read-imip.pl You should see a subdirectory named 'alice' and in that directory will be a file called incoming.ics. This file will ( er, should) hold all of the components that are in test-data/rfc2446.ics. Finally, the program 'process-incoming.pl' will examine all of the comonents in the incoming cluster and book them in the calendar. Before you run process-incoming, there should be components in the file 'alice/incoming.ics'. After running it, 'incoming.ics' should be empty, and there will be cluster files in the 'alice/booked' directory TROUBLESHOOTING Mostly, you are on your own. If perl crashes, you are probably triggering an error in libical -- it aborts on errors if ICAL_ERRORS_ARE_FATAL is set. You should probably compile libical without this option ( change it in configure.in )