1 |
efrain |
1 |
Bennu - An object-oriented iCalendar (RFC2445) implementation in PHP
|
|
|
2 |
http://bennu.sourceforge.net
|
|
|
3 |
|
|
|
4 |
Bennu is copyright (C) 2005 by Ioannis Papaioannou (pj@moodle.org).
|
|
|
5 |
|
|
|
6 |
=======================================================================
|
|
|
7 |
TABLE OF CONTENTS
|
|
|
8 |
=======================================================================
|
|
|
9 |
|
|
|
10 |
1. About Bennu
|
|
|
11 |
1.1. What is Bennu?
|
|
|
12 |
1.2. What is iCalendar?
|
|
|
13 |
1.3. Bennu license
|
|
|
14 |
|
|
|
15 |
2. Using Bennu
|
|
|
16 |
2.1. Integrating Bennu in your application
|
|
|
17 |
2.2. Usage examples
|
|
|
18 |
|
|
|
19 |
3. Bugs and limitations
|
|
|
20 |
3.1. Known limitations
|
|
|
21 |
|
|
|
22 |
4. Contact information
|
|
|
23 |
|
|
|
24 |
=======================================================================
|
|
|
25 |
|
|
|
26 |
-----------------------------------------------------------------------
|
|
|
27 |
1. About Bennu
|
|
|
28 |
-----------------------------------------------------------------------
|
|
|
29 |
|
|
|
30 |
1.1. What is Bennu?
|
|
|
31 |
|
|
|
32 |
Bennu is a software library written in PHP that implements the
|
|
|
33 |
functionality of the IETF iCalendar 2.0 specification (RFC 2445).
|
|
|
34 |
Its purpose is to enable applications which have an interest in
|
|
|
35 |
this format (e.g. calendaring, scheduler and organizer programs)
|
|
|
36 |
to support iCalendar in an easy, powerful, and extensible way.
|
|
|
37 |
|
|
|
38 |
In other words, Bennu exists so that developers working on such
|
|
|
39 |
applications don't have to waste painful hours going through the
|
|
|
40 |
standard and writing the code to implement it. Instead, they can
|
|
|
41 |
include this library in their application and get to the fun part
|
|
|
42 |
already: coding THEIR program.
|
|
|
43 |
|
|
|
44 |
1.2. What is iCalendar?
|
|
|
45 |
|
|
|
46 |
The iCalendar specification is a result of the work of the IETF
|
|
|
47 |
(Internet Engineering Task Force), Calendaring and Scheduling
|
|
|
48 |
Working Group. It was authored by Frank Dawson of Lotus
|
|
|
49 |
Development Corporation and Derik Stenerson of Microsoft
|
|
|
50 |
Corporation. iCalendar is heavily based on the earlier vCalendar
|
|
|
51 |
industry specification by the Internet Mail Consortium (IMC),
|
|
|
52 |
which it extends and seeks to replace.
|
|
|
53 |
|
|
|
54 |
In practical terms, iCalendar is the number one format used today
|
|
|
55 |
by calendaring and scheduler applications to import and export
|
|
|
56 |
data. Applications which provide support for iCalendar include:
|
|
|
57 |
|
|
|
58 |
* Microsoft Outlook
|
|
|
59 |
* Apple iCal
|
|
|
60 |
* Mozilla Calendar (and Mozilla Sunbird)
|
|
|
61 |
* Mulberry
|
|
|
62 |
* Korganizer
|
|
|
63 |
* Ximian Evolution
|
|
|
64 |
|
|
|
65 |
Effectively, this means that iCalendar is akin to a "common
|
|
|
66 |
language" which all these applications speak. If you are writing
|
|
|
67 |
an application which includes scheduling or calendaring elements,
|
|
|
68 |
and you want it to be able to synchronize with other such
|
|
|
69 |
programs, you need to support iCalendar. Bennu is an easy way to
|
|
|
70 |
do exactly that, as long as you are coding in PHP.
|
|
|
71 |
|
|
|
72 |
1.3. Bennu license
|
|
|
73 |
|
|
|
74 |
Bennu is released under the GNU Lesser General Public License
|
|
|
75 |
(LGPL). In short, this means that:
|
|
|
76 |
|
|
|
77 |
* You are allowed to distribute and/or modify the source code of
|
|
|
78 |
Bennu
|
|
|
79 |
* You are allowed to use Bennu or any modified version of it in a
|
|
|
80 |
commercial application
|
|
|
81 |
* You do not have to pay any fees to use, modify, or distribute
|
|
|
82 |
Bennu
|
|
|
83 |
* You can charge others for distributing Bennu or derived versions
|
|
|
84 |
* However, in ALL OF THE ABOVE CASES, you MUST provide the source
|
|
|
85 |
code for Bennu (or any modified version you may have produced),
|
|
|
86 |
and that source code MUST be provided under the GNU GPL -or- the
|
|
|
87 |
GNU LGPL license. Furthermore, you MUST include the original
|
|
|
88 |
copyright notices and credits that you received the source code
|
|
|
89 |
with when you distribute it INTACT.
|
|
|
90 |
* In any case, the copyright to Bennu is retained by me,
|
|
|
91 |
Ioannis Papaioannou.
|
|
|
92 |
|
|
|
93 |
##################
|
|
|
94 |
## DISCLAIMER ##
|
|
|
95 |
##################
|
|
|
96 |
|
|
|
97 |
Please be advised that the above is a very short and to the point
|
|
|
98 |
explanation of the GNU LGPL terms, as I understand it, and it is
|
|
|
99 |
only my personal opinion. IT IS NOT THE ACTUAL LICENSE UNDER WHICH
|
|
|
100 |
BENNU IS RELEASED. It is STRONGLY RECOMMENDED that you read the
|
|
|
101 |
full text of the LGPL in order to avoid any misunderstandings
|
|
|
102 |
which may be caused by reading my interpretation of it. You can
|
|
|
103 |
find the full text of the LGPL in the file LICENSE.TXT, which you
|
|
|
104 |
must have received as part of the Bennu distribution. If you have
|
|
|
105 |
not received such a file, please email me mentioning where you
|
|
|
106 |
obtained your copy of Bennu.
|
|
|
107 |
|
|
|
108 |
-----------------------------------------------------------------------
|
|
|
109 |
2. Using Bennu
|
|
|
110 |
-----------------------------------------------------------------------
|
|
|
111 |
|
|
|
112 |
2.1. Integrating Bennu in your application
|
|
|
113 |
|
|
|
114 |
To include Bennu in your application, you only need to include one
|
|
|
115 |
PHP file, like this:
|
|
|
116 |
|
|
|
117 |
<?php
|
|
|
118 |
include($path_to_bennu.'/library/lib/bennu.inc.php');
|
|
|
119 |
|
|
|
120 |
// the rest of your code goes here
|
|
|
121 |
?>
|
|
|
122 |
|
|
|
123 |
2.2. Usage examples
|
|
|
124 |
|
|
|
125 |
Please look at the /examples/ directory for ready-to-run examples
|
|
|
126 |
illustrating how Bennu is to be used. This section will be
|
|
|
127 |
revisited and properly written when the source code reaches an
|
|
|
128 |
acceptable level of features and meturity (no, I don't know when
|
|
|
129 |
that will be).
|
|
|
130 |
|
|
|
131 |
-----------------------------------------------------------------------
|
|
|
132 |
3. Bugs and limitations
|
|
|
133 |
-----------------------------------------------------------------------
|
|
|
134 |
|
|
|
135 |
3.1. Known limitations
|
|
|
136 |
|
|
|
137 |
* LANGUAGE property parameters aren't semantically checked.
|
|
|
138 |
|
|
|
139 |
-----------------------------------------------------------------------
|
|
|
140 |
4. Contact information
|
|
|
141 |
-----------------------------------------------------------------------
|
|
|
142 |
|
|
|
143 |
You can contact me at the email address pj@moodle.org for any
|
|
|
144 |
suggestions, ideas, or bug reports regarding Bennu.
|
|
|
145 |
|
|
|
146 |
At some point there will also be a site which you can use to do
|
|
|
147 |
anything related to Bennu, but sadly not today. If you want to
|
|
|
148 |
volunteer and give a hand, I 'll be happy to collaborate.
|