The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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 )