]> git.mxchange.org Git - friendica-addons.git/blob - dav/iCalcreator/summary.html
Merge remote branch 'upstream/master'
[friendica-addons.git] / dav / iCalcreator / summary.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
2 <html>
3 <head>
4 <title>iCalcreator 2.12 summary</title>
5 <meta name="author"      content="Kjell-Inge Gustafsson - kigkonsult" />
6 <meta name="copyright"   content="2007-2012 Kjell-Inge Gustafsson - kigkonsult" />
7 <meta name="keywords"    content="ical, calendar, calender, xcal, xml, icalender, rfc2445, rfc5545, vcalender, php, create" />
8 <meta name="description" content="iCalcreator summary" />
9 <style type="text/css">
10 body {
11   FONT-FAMILY     : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif;
12   FONT-SIZE       : small;
13   MARGIN          : 10px;
14   WIDTH           : 800px;
15 }
16 h1 {
17   FONT-FAMILY     : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif;
18   FONT-SIZE       : large;
19 }
20 h2 {
21   FONT-FAMILY     : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif;
22   FONT-SIZE       : large;
23 }
24 h4 {
25   FONT-FAMILY     : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif;
26   FONT-SIZE       : small;
27   FONT-WEIGHT     : bold;
28 }
29 .code {
30   FONT-FAMILY     : monospace;
31   FONT-SIZE       : medium;
32   WHITE-SPACE     : pre;
33 }
34 .comment {
35   FONT-FAMILY     : arial;
36   FONT-SIZE       : small;
37   FONT-STYLE      : italic;
38 }
39 </style>
40 </head>
41 <body>
42
43 <h1>iCalcreator v2.12</h1>
44 iCalcreator v2.12<br />
45 copyright (c) 2007-2012 Kjell-Inge Gustafsson, kigkonsult<br />
46 <a href="http://kigkonsult.se/iCalcreator/index.php" title="kigkonsult.se/iCalcreator" target="_blank">kigkonsult.se iCalcreator</a><br>
47 <a href="http://kigkonsult.se/contact/index.php" title="kigkonsult.se/contact" target="_blank">kigkonsult.se contact</a><br>
48 <br />
49 iCalcreator is a <em>PHP</em> class package managing iCal files, supporting (non-)<strong>calendar</strong> 
50 systems and applications to process and communicate <strong>calendar</strong> information like 
51 events, agendas, tasks, reports, totos and journaling information.
52 <br /><br />
53 This is a <b>short summary</b> how to use iCalcreator; create, parse, edit, select and output functionality.
54 <br /><br />
55 The iCalcreator package, built of a <strong>calendar</strong> class with support of a function class and helper functions, are <strong>calendar</strong>
56 component property oriented. Development environment is <em>PHP</em> version 5.x but coding is done
57 to meet 4.x backward compatibility and may work. Some functions requires <em>PHP</em> >= 5.2.0.
58 <br /><br />
59 The iCalcreator main class, utility class and helper functions are included in the &quot;iCalcreator.class.php&quot; file.
60 <br /><br />
61 More iCalcreator supplementary and &quot;howto&quot; information will be found at 
62 kigkonsult.se iCalcreator implement examples and test <a href="http://kigkonsult.se/test/index.php" title="kigkonsult.se iCalcreator implement and test examples" target="_blank">pages</a>. 
63 A strong recommendation is to have the document <a href="http://kigkonsult.se/iCalcreator/docs/using.html" title="iCalcreator user's Manual" target="_blank">user's manual</a> 
64 open in parallell when exploiting the link.
65
66 <h4>iCal</h4>
67 A short iCal description is found at <a href="http://en.wikipedia.org/wiki/ICalendar#Core_object" title="iCalendar From Wikipedia, the free encyclopedia" target="_blank">Wikipedia</a>. If You are not familiar with iCal, read this first!<br />
68 Knowledge of <strong>calendar</strong> protocol rfc5545/rfc5546  is to recommend;<br />
69 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc5545" title="RFC5545" target="_blank">rfc5545</a>
70  - Internet Calendaring and Scheduling Core Object Specification (iCalendar)<br />
71 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc5546" title="RFC5546" target="_blank">rfc5546</a>
72  - iCalendar Transport-Independent Interoperability Protocol (iTIP) Scheduling Events, BusyTime, To-dos and Journal Entries <br />
73 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc5545" title="Download RFC5545 in text format">rfc5545</a> and
74 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc5546" title="Download RFC5546 in text format">rfc5546</a>
75 obsoletes, respectively,
76 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc2445" title="Download RFC2445 in text format">rfc2445</a> and
77 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc2446" title="Download RFC2446 in text format">rfc2446</a>.
78 <br />
79
80 <h4>xCal</h4>
81 iCalcreator also supports xCal (iCal xml)<br />
82 <a href="http://kigkonsult.se/downloads/dl.php?f=rfc6321" title="Download RFC6321 in text format" target="_blank">rfc6321</a>
83  - &quot;xCal: The XML Format for <strong>iCalendar</strong>&quot;
84 <br />
85
86 <h4>SUPPORT</h4>
87 The main support channel is using iCalcreator
88 <a title="Sourceforge" href="http://sourceforge.net/projects/icalcreator/forums/" target="_blank">Sourceforge</a> forum.
89 <br />
90 <br />
91 kigkonsult offer services for software support, design and development of customizations and adaptations of <em>PHP</em>/<em>MySQL</em> solutions 
92 with a special focus on software long term utility and reliability,
93 supported through our agile acquire/design/transition process model.
94 <br />
95
96 <h4>DONATE</h4>
97 You can show your appreciation for our free software,
98 and can support future development by making a donation to the kigkonsult GPL/LGPL projects.
99 <br />
100 <br />
101 Make a donation of any size by clicking <a href="http://kigkonsult.se/contact/index.php#Donate" title="Donate" target="_blank">here</a>.
102 Thanks in advance!
103 <br />
104
105 <h4>Contact</h4>
106 Use the contact <a href="http://kigkonsult.se/contact/index.php" title="kigkonsult.se/contact" target="_blank">page</a>
107 for queries, improvement/development issues or professional support and development.
108 Please note that paid support or consulting service has the highest priority.
109 <br />
110
111 <h4>Downloads and usage examples</h4>
112 On <a href="http://kigkonsult.se/iCalcreator/index.php" title="kigkonsult iCalcreator" target="_blank">kigkonsult.se</a> can you download the 
113 <a href="http://kigkonsult.se/downloads/index.php#iCalcreator" title="iCalcreator complete manual" target="_blank"><b>complete manual</b></a>
114 and review 
115 <a href="http://kigkonsult.se/test/index.php" title="kigkonsult.se iCalcreator implement and test examples" target="_blank">coding and test examples</b></a>.
116 <br />
117
118 <h4>INSTALL</h4>
119 Unpack to any folder<br />
120 - add this folder to your include-path<br />
121 - or unpack to your application-(include)-folder<br />
122 Add &quot;require_once '[folder/]iCalcreator.class.php';&quot; to your php-script.
123 <br />
124 <br />
125 If using <em>PHP</em> version 5.1 or higher, the default timezone need to be set/altered, now &quot;Europe/Stockholm&quot;,
126 line 50 in the iCalcreator.class.php file.
127 <br />
128 When creating a new calendar/component instance, review config settings.
129 <br />
130 <br />
131 To really boost performance, visit kigkonsult.se contact <a href="http://kigkonsult.se/contact/index.php"><u>page</u></a> for information.
132 <br />
133 <br />
134
135
136 <h2>CREATE</h2>
137
138 <p class="code">require_once( &quot;iCalcreator.class.php&quot; );
139 $config = array( &quot;unique_id&quot; =&gt; &quot;kigkonsult.se&quot; );         // <span class="comment">set a (site) unique id</span>
140 $v = new vcalendar( $config );                             // <span class="comment">create a new calendar instance</span>
141 $tz = &quot;Europe/Stockholm&quot;;                                  // <span class="comment">define time zone</span>
142
143 $v->setProperty( &quot;method&quot;, &quot;PUBLISH&quot; );                    // <span class="comment">required of some <strong>calendar</strong> software</span>
144 $v->setProperty( &quot;x-wr-calname&quot;, &quot;Calendar Sample&quot; );      // <span class="comment">required of some <strong>calendar</strong> software</span>
145 $v->setProperty( &quot;X-WR-CALDESC&quot;, &quot;Calendar Description&quot; ); // <span class="comment">required of some <strong>calendar</strong> software</span>
146 $v->setProperty( &quot;X-WR-TIMEZONE&quot;, $tz );                   // <span class="comment">required of some <strong>calendar</strong> software</span>
147 .. .
148 $xprops = array( &quot;X-LIC-LOCATION&quot; => $tz );                // <span class="comment">required of some <strong>calendar</strong> software</span>
149 iCalUtilityFunctions::createTimezone( $v, $tz, $xprops );  // <span class="comment">create timezone component(-s) <b>opt. 1</b></span>
150 .. .                                                       // <span class="comment">based on present date</span>
151 .. .
152 $vevent = &amp; $v->newComponent( &quot;vevent&quot; );                  // <span class="comment">create an event <strong>calendar</strong> component</span>
153 $vevent->setProperty( &quot;dtstart&quot;, array( &quot;year&quot;=&gt;2007, &quot;month&quot;=&gt;4, &quot;day&quot;=&gt;1, &quot;hour&quot;=&gt;19, &quot;min&quot;=&gt;0,  &quot;sec&quot;=&gt;0 ));
154 $vevent->setProperty( &quot;dtend&quot;,   array( &quot;year&quot;=&gt;2007, &quot;month&quot;=&gt;4, &quot;day&quot;=&gt;1, &quot;hour&quot;=&gt;22, &quot;min&quot;=&gt;30, &quot;sec&quot;=&gt;0 ));
155 $vevent->setProperty( &quot;LOCATION&quot;, &quot;Central Placa&quot; );       // <span class="comment">property name - case independent</span>
156 $vevent->setProperty( &quot;summary&quot;, &quot;PHP summit&quot; );
157 $vevent->setProperty( &quot;description&quot;, &quot;This is a description&quot; );
158 $vevent->setProperty( &quot;comment&quot;, &quot;This is a comment&quot; );
159 $vevent->setProperty( &quot;attendee&quot;, &quot;attendee1@icaldomain.net&quot; );
160 .. .
161 $valarm = &amp; $vevent->newComponent( &quot;valarm&quot; );             // <span class="comment">create an event alarm</span>
162 $valarm->setProperty(&quot;action&quot;, &quot;DISPLAY&quot; );
163 $valarm->setProperty(&quot;description&quot;, $vevent->getProperty( &quot;description&quot; );
164 .. .                                                       // <span class="comment">reuse the event description</span>
165 .. .
166 $d = sprintf( '%04d%02d%02d %02d%02d%02d', 2007, 3, 31, 15, 0, 0 );
167 iCalUtilityFunctions::transformDateTime( $d, $tz, &quot;UTC&quot;, &quot;Ymd\THis\Z&quot;);
168 $valarm->setProperty( &quot;trigger&quot;, $d );                     // <span class="comment">create alarm trigger (in UTC datetime)</span>
169 .. .
170 $vevent = & $v->newComponent( &quot;vevent&quot; );                  // <span class="comment">create next event calendar component</span>
171 $vevent->setProperty( &quot;dtstart&quot;, &quot;20070401&quot;, array(&quot;VALUE&quot; =&gt; &quot;DATE&quot;));// <span class="comment">alt. date format, now for an all-day event</span>
172 $vevent->setProperty( &quot;organizer&quot; , &quot;boss@icaldomain.com&quot; );
173 $vevent->setProperty( &quot;summary&quot;, &quot;ALL-DAY event&quot; );
174 $vevent->setProperty( &quot;description&quot;, &quot;This is a description for an all-day event&quot; );
175 $vevent->setProperty( &quot;resources&quot;, &quot;COMPUTER PROJECTOR&quot; );
176 $vevent->setProperty( &quot;rrule&quot;, array( &quot;FREQ&quot; =&gt; &quot;WEEKLY&quot;, &quot;count&quot; =&gt; 4));// <span class="comment">weekly, four occasions</span>
177 $vevent->parse( &quot;LOCATION:1CP Conference Room 4350&quot; );     // <span class="comment">supporting parse of strict rfc5545 formatted text</span>
178 .. .
179 .. .// <span class="comment">all calendar components are described in <a href="http://kigkonsult.se/downloads/dl.php?f=rfc5545" title="RFC5545" target="_blank">rfc5545</a></span>
180 .. .// <span class="comment">a complete iCalcreator function list (ex. setProperty) in <a href="http://kigkonsult.se/downloads/index.php#iCalcreator" title="iCalcreator complete manual" target="_blank">iCalcreator manual</a></span>
181 .. .
182 iCalUtilityFunctions::createTimezone( $v, $tz, $xprops);   // <span class="comment">create timezone component(-s) <b>opt. 2</b></span>
183 .. .                                                       // <span class="comment">based on all start dates in events (i.e. dtstart)</span>
184 .. .
185 .. .
186 </p>
187 <br />
188 <br />
189
190 <h2>PARSE</h2>
191 <h4>iCal, rfc5545 / rfc2445 </h4>
192 <p class="code">require_once( &quot;iCalcreator.class.php&quot; );
193 $config = array( &quot;unique_id&quot; =&gt; &quot;kigkonsult.se&quot; );         // <span class="comment">set a (site) unique id, required if any component UID is missing</span>
194 $v = new vcalendar( $config );                             // <span class="comment">create a new <strong>calendar</strong> instance</span>
195
196  /* start parse of local iCal file */
197 $config = array( &quot;directory&quot; =&gt; &quot;calendar&quot;, &quot;filename&quot; =&gt; &quot;file.ics&quot; );
198 $v->setConfig( $config );                                  // <span class="comment">set directory and file name</span>
199 $v->parse();
200
201  /* start parse of remote iCal file */
202 $v->setConfig( &quot;url&quot;, &quot;http://www.aDomain.net/file.ics&quot; ); // <span class="comment">iCalcreator also support parse of remote files</span>
203 $v->parse();
204
205 $v->setProperty( &quot;method&quot;, &quot;PUBLISH&quot; );                    // <span class="comment">required of some <strong>calendar</strong> software</span>
206 $v->setProperty( &quot;x-wr-calname&quot;, &quot;Calendar Sample&quot; );      // <span class="comment">required of some <strong>calendar</strong> software</span>
207 $v->setProperty( &quot;X-WR-CALDESC&quot;, &quot;Calendar Description&quot; ); // <span class="comment">required of some <strong>calendar</strong> software</span>
208 $v->setProperty( &quot;X-WR-TIMEZONE&quot;, &quot;Europe/Stockholm&quot; );    // <span class="comment">required of some <strong>calendar</strong> software</span>
209
210 .. .
211 $v->sort();                                                // <span class="comment">ensure start date order</span>
212 .. .
213 .. .                                                       // <span class="comment">continue process (edit, parse,select) the iCalcreator instance</span>
214 .. .
215 </p>
216
217 <h4>xCal, rfc6321 (XML)</h4>
218 <p class="code">require_once( &quot;iCalcreator.class.php&quot; );
219 $config = array( &quot;unique_id&quot; =&gt; &quot;kigkonsult.se&quot; );         // <span class="comment">set a (site) unique id, required if any component UID is missing</span>
220 .. .
221 $filename = 'xmlfile.xml';                                 // <span class="comment">use a local xCal file</span>
222 // $filename = 'http://kigkonsult.se/xcal.php?a=1&amp;b=2&amp;c=3';// <span class="comment">or a remote xCal resource</span>
223 if( FALSE === ( $v = XMLfile2iCal(  $filename, $config ))) // <span class="comment">convert the XML resource to an iCalcreator instance</span>
224   exit( &quot;Error when parsing $filename" );
225 .. .
226 .. .                                                       // <span class="comment">continue process (edit, parse,select) the iCalcreator instance</span>
227 .. .
228 </p>
229 <br />
230
231 <h2>EDIT</h2>
232 <p class="code">require_once( &quot;iCalcreator.class.php&quot; );
233 $config = array( &quot;unique_id&quot; =&gt; &quot;kigkonsult.se&quot;, &quot;directory&quot; =&gt; &quot;calendar&quot;, &quot;filename&quot; =&gt; &quot;file.ics&quot; );
234                                                            // <span class="comment">set the (site) unique id, the import directory and file name</span>
235 $v = new vcalendar( $config );                             // <span class="comment">create a new calendar instance</span>
236
237 $v->parse();
238
239 $v->setProperty( &quot;method&quot;, &quot;PUBLISH&quot; );                    // <span class="comment">required of some <strong>calendar</strong> software</span>
240 $v->setProperty( &quot;x-wr-calname&quot;, &quot;Calendar Sample&quot; );      // <span class="comment">required of some <strong>calendar</strong> software</span>
241 $v->setProperty( &quot;X-WR-CALDESC&quot;, &quot;Calendar Description&quot; ); // <span class="comment">required of some <strong>calendar</strong> software</span>
242 $v->setProperty( &quot;X-WR-TIMEZONE&quot;, &quot;Europe/Stockholm&quot; );    // <span class="comment">required of some <strong>calendar</strong> software</span>
243
244 while( $vevent = $v->getComponent( &quot;vevent&quot; )) {           // <span class="comment">read events, one by one</span>
245   $uid = $vevent->getProperty( &quot;uid&quot; );                    // <span class="comment">uid required, one occurrence (unique id/key for component)</span>
246   .. .
247   $dtstart = $vevent->getProperty( &quot;dtstart&quot; );            // <span class="comment">dtstart required, one occurrence</span>
248   .. .
249   if( $description = $vevent->getProperty( &quot;description&quot;, 1 )) { // <span class="comment">description optional, first occurrence</span>
250     .. .                                                   // <span class="comment">edit the description</span>
251     $vevent->setProperty( &quot;description&quot;, $description, FALSE, 1 ); // <span class="comment">update/replace the description</span>
252   }
253   while( $comment = $vevent->getProperty( &quot;comment&quot; )) {   // <span class="comment">comment optional, may occur more than once </span>
254     .. .                                                   // <span class="comment">manage comments</span>
255   }
256   .. .
257   while( $vevent->deleteProperty( &quot;attendee&quot; ))
258     continue;                                              // <span class="comment">remove all ATTENDEE properties .. .</span>
259   .. .
260   $v->setComponent ( $vevent, $uid );                      // <span class="comment">update/replace event in calendar with <b>UID</b> as key </span>
261 }
262 .. .
263 .. .// <span class="comment">a complete iCalcreator function list (ex. getProperty, deleteProperty) in <a href="http://kigkonsult.se/downloads/index.php#iCalcreator" title="iCalcreator complete manual" target="_blank">iCalcreator manual</a></span>
264 .. .
265 </p>
266 <br />
267 <br />
268
269 <h2>SELECT</h2>
270 <p class="code">require_once( &quot;iCalcreator.class.php&quot; );
271 $config = array( &quot;unique_id&quot; =&gt; &quot;kigkonsult.se&quot; );         // <span class="comment">set a (site) unique id</span>
272 $v = new vcalendar( $config );                             // <span class="comment">create a new <strong>calendar</strong> instance</span>
273
274 $v->setConfig( &quot;url&quot;, &quot;http://www.aDomain.net/file.ics&quot; ); // <span class="comment">iCalcreator also support remote files</span>
275 $v->parse();
276 $v->sort();                                                // <span class="comment">ensure start date order</span>
277
278 $v->setProperty( &quot;method&quot;, &quot;PUBLISH&quot; );                    // <span class="comment">required of some <strong>calendar</strong> software</span>
279 $v->setProperty( &quot;x-wr-calname&quot;, &quot;Calendar Sample&quot; );      // <span class="comment">required of some <strong>calendar</strong> software</span>
280 $v->setProperty( &quot;X-WR-CALDESC&quot;, &quot;Calendar Description&quot; ); // <span class="comment">required of some <strong>calendar</strong> software</span>
281 $v->setProperty( &quot;X-WR-TIMEZONE&quot;, &quot;Europe/Stockholm&quot; );    // <span class="comment">required of some <strong>calendar</strong> software</span>
282 </p>
283 <h4>Select components based on specific date period</h4>
284 <p class="code">$eventArray = $v->selectComponents();                      // <span class="comment">select components occurring <b>today</b></span>
285                                                            // <span class="comment">(including components with recurrence pattern)</span>
286 foreach( $eventArray as $year =&gt; $yearArray) {
287  foreach( $yearArray as $month =&gt; $monthArray ) {
288   foreach( $monthArray as $day =&gt; $dailyEventsArray ) {
289    foreach( $dailyEventsArray as $vevent ) {
290     $currddate = $event->getProperty( &quot;x-current-dtstart&quot; );
291                                                            // <span class="comment">if member of a recurrence set (2nd occurrence etc)</span>
292                                                            // <span class="comment">returns array( &quot;x-current-dtstart&quot;</span>
293                                                            // <span class="comment">      , &lt;(string) date(&quot;Y-m-d [H:i:s][timezone/UTC offset]&quot;)&gt;)</span>
294     $dtstart = $vevent->getProperty( &quot;dtstart&quot; );          // <span class="comment">dtstart required, one occurrence, (orig. start date)</span>
295     $summary = $vevent->getProperty( &quot;summary&quot; );
296     $description = $vevent->getProperty( &quot;description&quot; );
297     .. .
298     .. .
299    }
300   }
301  }
302 }
303 </p>
304 <h4>Select specific property values</h4>
305 <p class="code">$valueOccur = $v->getProperty( &quot;RESOURCES&quot; );              // <span class="comment">fetch specific property (unique) values and occurrences</span>
306                                                            // <span class="comment">ATTENDEE, CATEGORIES, DTSTART, LOCATION,</span>
307                                                            // <span class="comment">ORGANIZER, PRIORITY, RESOURCES, STATUS,</span>
308                                                            // <span class="comment">SUMMARY, UID</span>
309 foreach( $valueOccur as $uniqueValue =&gt; $occurCnt ) {
310   echo &quot;The RESOURCES value &lt;b&gt;$uniqueValue&lt;/b&gt; occurs &lt;b&gt;$occurCnt&lt;/b&gt; times&lt;br /&gt;&quot;;
311   .. .
312 }
313 </p>
314 <h4>Select components based on specific property value</h4>
315 <p class="code">$selectSpec = array( &quot;CATEGORIES&quot; =&gt; &quot;course1&quot; );
316 $specComps = $v->selectComponents( $selectSpec );          // <span class="comment">selects components based on specific property value(-s)</span>
317                                                            // <span class="comment">ATTENDEE, CATEGORIES, LOCATION, ORGANIZER,</span>
318                                                            // <span class="comment">PRIORITY, RESOURCES, STATUS, SUMMARY, UID</span>
319 foreach( $specComps as $comp ) {
320  .. .
321 }
322 </p>
323 <br />
324 <br />
325
326 <h2>OUTPUT</h2>
327 <p class="code">require_once( &quot;iCalcreator.class.php&quot; );
328 $config = array( &quot;unique_id&quot; =&gt; &quot;kigkonsult.se&quot; );         // <span class="comment">set a (site) unique id</span>
329 $v = new vcalendar( $config );                             // <span class="comment">create a new calendar instance</span>
330
331 $v->setProperty( &quot;method&quot;, &quot;PUBLISH&quot; );                    // <span class="comment">required of some <strong>calendar</strong> software</span>
332 $v->setProperty( &quot;x-wr-calname&quot;, &quot;Calendar Sample&quot; );      // <span class="comment">required of some <strong>calendar</strong> software</span>
333 $v->setProperty( &quot;X-WR-CALDESC&quot;, &quot;Calendar Description&quot; ); // <span class="comment">required of some <strong>calendar</strong> software</span>
334 $v->setProperty( &quot;X-WR-TIMEZONE&quot;, &quot;Europe/Stockholm&quot; );    // <span class="comment">required of some <strong>calendar</strong> software</span>
335 .. .
336 .. .                                                       // <span class="comment">continue process (edit, parse,select) the iCalcreator instance</span>
337 .. .
338 </p>
339 <h4>opt 1</h4>
340 <p class="code">.. .
341 $v->returnCalendar();                                      // <span class="comment">redirect calendar file to browser</span>
342 </p>
343
344 <h4>opt 2</h4>
345 <p class="code">.. .
346 $config = array( &quot;directory&quot; =&gt; &quot;depot&quot;, &quot;filename&quot; =&gt; &quot;calendar.ics&quot; );
347 $v->setConfig( $config );                                  // <span class="comment">set output directory and file name</span>
348 $v->saveCalendar();                                        // <span class="comment">save calendar to (local) file</span>
349 .. .
350 </p>
351
352 <h4>opt 3, xCal</h4>
353 <p class="code">.. .
354 $xmlstr = iCal2XML( $v );                                  // <span class="comment">create well-formed XML, rfc6321</span>
355 ...
356 </p>
357 <br />
358 <br />
359
360
361 <h2>COPYRIGHT AND LICENSE</h2>
362
363 <h4>Copyright</h4>
364 iCalcreator v2.12<br />
365 copyright (c) 2007-2012 Kjell-Inge Gustafsson, kigkonsult<br />
366 <a href="http://kigkonsult.se/iCalcreator/index.php" title="kigkonsult.se/iCalcreator" target="_blank">kigkonsult.se iCalcreator</a><br>
367 <a href="http://kigkonsult.se/contact/index.php" title="kigkonsult.se/contact" target="_blank">kigkonsult.se contact</a><br>
368 <br />
369
370 <h4>License</h4>
371
372 This library is free software; you can redistribute it and/or
373 modify it under the terms of the GNU Lesser General Public
374 License as published by the Free Software Foundation; either
375 version 2.1 of the License, or (at your option) any later version.
376 <br /><br />
377 This library is distributed in the hope that it will be useful,
378 but WITHOUT ANY WARRANTY; without even the implied warranty of
379 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
380 Lesser General Public License for more details.
381 <br /><br />
382 You should have received a copy of the GNU Lesser General Public
383 License along with this library; if not, write to the Free Software
384 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
385 or download it <a href="http://kigkonsult.se/downloads/dl.php?f=LGPL" target="_blank">here</a>.
386 </body>
387 </html>