kigkonsult logo

Downloads Downloads Downloads

iCal

iCalcreator iCalcreator
iCalcreator iCalcreator

iCalcreator iCalcreator iCalcreator
iCalcreator manual iCalcreator manual iCalcreator manual

rsscalCreator rsscalCreator
rsscalCreator rsscalCreator

rsscalCreator rsscalCreator rsscalCreator
rsscalCreator manual rsscalCreator manual rsscalCreator manual

Deploying examples

tinycal tinycal tinycal
iCal file web calendar

eventCreator eventCreator eventCreator
iCal file event web editor

iCal utilities

dbiCal dbiCal dbiCal
iCal database interface

iCal csv xls
iCal csvl xls

iCalcnv iCalcnv iCalcnv
iCal converting package

tiCalFile tiCalFile tiCalFile
creating iCal test files

Communities

Forum Reports
Get iCalcreator at SourceForge.net. Fast, secure and Free Open Source software downloads

Freshmeat freshmeat.net

PHP Classes

sLog

sLog sLog sLog
event tracking database

Communities

Forum Reports
SourceForge.net Logo





Resources

iCal
RFC 2445
RFC 2446
iCalDictionary
PHP iCalendar
PHP iCalendar demo
Calendaring and Scheduling
Consortium

Glossary of Terms
Date and Time on the Internet
iCalendarUML
Time zone

RSS/RDF Resources
RSS Tutorial
Resource Description Framework
RDF Site Summary 1.0
RDF Site Summary 1.0 spec.
RSS Module Dublin Core
RSS Module Event
FEED Validator

Web Calendar Services

CalendarHub
Goggle Calenda
Kiko

Donations

In order of being capable of support, maintenance and development of iCalcreator over time, we appreciate donations, needed to cover the time and cost, taken from work projects.
You can support the work of iCalcreator through a regular donation which will help build our capacity for planning and development; to strengthen independent development and achieve long term change. Or you can make a one-off donation whenever you feel like it.
Most donors have preferred to be anonymous: if you want to make a more public statement of support, you could submit an ad for publication.
Support This Project

Credits

lastRSS 0.9.1 (GPL)
PHP iCalendar 2.22  (GPL)
PHPMailer 1.72 (LGPL)
prototype 1.5.1 (CC BY-SA)
Snoopy 1.2.3 (LGPL)

Contact


Copyright © 2008 kigkonsult


iCalcreator

iCalcreator is a PHP class managing iCal formatted files for non-calendar systems like CMS, project management systems and other applications able to process calendar information like agendas, tasks, reports, totos, journaling data and for communication with calendar systems and applications.

iCalcreator is built of a single class file with a simple interface and are calendar component property oriented.

iCalcreator features create, parse, edit and select calendar and calendar components.

Knowledge of calendar and rfc2445 is necessary! All functions calls are made as simple as possible BUT (, !!!,) read this rfc properly!

Howto summary

A short summary how to use iCalcreator; create, parse, edit and output.

CREATE 
CREATE 

require_once( 'iCalcreator.class.php' );
$v = new vcalendar();
  // create a new calendar instance
$v->setConfig( 'unique_id', 'icaldomain.com' );
  // set Your unique id

$v->setProperty( 'method', 'PUBLISH' );
  // required of some calendar software
$v->setProperty( "x-wr-calname", "Calendar Sample" );
  // required of some calendar software
$v->setProperty( "X-WR-CALDESC", "Calendar Description" );
  // required of some calendar software
$v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" );
  // required of some calendar software
.. .
$vevent = new vevent();
  // create an event calendar component
$start = array( 'year'=>2007, 'month'=>4, 'day'=>1, 'hour'=>19, 'min'=>0, 'sec'=>0 );
$vevent->setProperty( 'dtstart', $start );
$end = array( 'year'=>2007, 'month'=>4, 'day'=>1, 'hour'=>22, 'min'=>30, 'sec'=>0 );
$vevent->setProperty( 'dtend', $end );
$vevent->setProperty( 'LOCATION', 'Central Placa' );
  // property name - case independent
$vevent->setProperty( 'summary', 'PHP summit' );
$vevent->setProperty( 'description', 'This is a description' );
$vevent->setProperty( 'comment', 'This is a comment' );
$vevent->setProperty( 'attendee', 'attendee1@icaldomain.net' );
$v->setComponent ( $vevent );
  // add event to calendar
.. .
$vevent = new vevent();
$vevent->setProperty( 'dtstart', '20070401', array('VALUE' => 'DATE'));
  // alt. date format, now for an all-day event
$vevent->setProperty( "organizer" , 'boss@icaldomain.com' );
$vevent->setProperty( 'summary', 'ALL-DAY event' );
$vevent->setProperty( 'description', 'This is a description for an all-day event' );
$vevent->setProperty( 'resources', 'COMPUTER PROJECTOR' );
$vevent->setProperty( 'rrule', array( 'FREQ' => 'WEEKLY', 'count' => 4));
  // weekly, four occasions
$vevent->parse( 'LOCATION:1CP Conference Room 4350' );
  // supporting parse of strict rfc2445 formatted text
$v->setComponent ( $vevent );
  // add event to calendar
.. .
  // all calendar components are described in rfc2445
  // a complete iCalcreator function list (ex. setProperty) in iCalcreator manual
.. .
$v->returnCalendar();
  // redirect calendar file to browser

PARSE 
PARSE 

require_once( 'iCalcreator.class.php' );
$v = new vcalendar();
  // create a new calendar instance
$v->setConfig( 'unique_id', 'icaldomain.com' );
  // set Your unique id, required if any component UID is missing

$v->setProperty( 'method', 'PUBLISH' );
  // required of some calendar software
$v->setProperty( "x-wr-calname", "Calendar Sample" );
  // required of some calendar software
$v->setProperty( "X-WR-CALDESC", "Calendar Description" );
// required of some calendar software
$v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" );
  // required of some calendar software

/* start parse of local file */
$v->setConfig( 'directory', 'calendar' );
  // set directory
$v->setConfig( 'filename', 'file.ics' );
  // set file name
$v->parse();

/* start parse of remote file */
$v->setConfig( 'url', 'http://www.aDomain.net/file.ics' );
  // iCalcreator also support remote files
$v->parse();

.. .
$v->sort();
  // ensure start date order
.. .

EDIT 
EDIT 

require_once( 'iCalcreator.class.php' );
$v = new vcalendar();
  // create a new calendar instance
$v->setConfig( 'unique_id', 'icaldomain.com' );
  // set Your unique id

$v->setProperty( 'method', 'PUBLISH' );
  // required of some calendar software
$v->setProperty( "x-wr-calname", "Calendar Sample" );
  // required of some calendar software
$v->setProperty( "X-WR-CALDESC", "Calendar Description" );
// required of some calendar software
$v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" );
  // required of some calendar software

$v->setConfig( 'directory', 'calendar' );
  // set directory
$v->setConfig( 'filename', 'file.ics' );
  // set file name
$v->parse();

while( $vevent = $v->getComponent( 'vevent' )) {
  // read events, one by one
  $uid = $vevent->getProperty( 'uid' );
  // uid required, one occurence (unique id/key for component)
  .. .
  $dtstart = $vevent->getProperty( 'dtstart' );
  // dtstart required, one occurence
  .. .
  if( $description = $vevent->getProperty( 'description', 1 )) {
    // description optional, first occurence
    .. .
    // edit the description
    .. .
    $vevent->setProperty( 'description', $description, FALSE, 1 );
    // update/replace the description
  }
  while( $comment = $vevent->getProperty( 'comment' )) {
    // comment optional, may occur more than once   .. .
    // manage comments
  }
  .. .
  while( $vevent->deleteProperty( 'attendee' ))
    continue;
    // remove all ATTENDEE properties .. .
  .. .
  $v->setComponent ( $vevent, $uid );
  // update/replace event in calendar with uid as key }
.. .
.. .
// a complete iCalcreator function list (ex. getProperty, deleteProperty) in iCalcreator manual
.. .

SELECT 
SELECT 

require_once( 'iCalcreator.class.php' );
$v = new vcalendar();
  // create a new calendar instance
$v->setConfig( 'unique_id', 'icaldomain.com' );
  // set Your unique id

$v->setProperty( 'method', 'PUBLISH' );
  // required of some calendar software
$v->setProperty( "x-wr-calname", "Calendar Sample" );
  // required of some calendar software
$v->setProperty( "X-WR-CALDESC", "Calendar Description" );
// required of some calendar software
$v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" );
  // required of some calendar software

$v->setConfig( 'url', 'http://www.aDomain.net/file.ics' );
  // iCalcreator also support remote files
$v->parse();
$v->sort();
  // ensure start date order

$eventArray = $v->selectComponents();
  // select components occuring today
  // (including components with recurrence pattern)
foreach( $eventArray as $year => $yearArray) {
 foreach( $yearArray as $month => $monthArray ) {
  foreach( $monthArray as $day => $dailyEventsArray ) {
   foreach( $dailyEventsArray as $vevent ) {
    $currddate = $event->getProperty( 'x-current-dtstart' );
      // if member of a recurrence set,
      // returns array( 'x-current-dtstart', <DATE>)
      // <DATE> = (string) date("Y-m-d [H:i:s][timezone/UTC offset]")
    $dtstart = $vevent->getProperty( 'dtstart' );
      // dtstart required, one occurence, (orig. start date)
    $summary = $vevent->getProperty( 'summary' );
    $description = $vevent->getProperty( 'description' );
    .. .
    .. .

OUTPUT 
OUTPUT 

require_once( 'iCalcreator.class.php' );
$v = new vcalendar();
  // create a new calendar instance
$v->setConfig( 'unique_id', 'icaldomain.com' );

$v->setProperty( 'method', 'PUBLISH' );
  // required of some calendar software
$v->setProperty( "x-wr-calname", "Calendar Sample" );
  // required of some calendar software
$v->setProperty( "X-WR-CALDESC", "Calendar Description" );
  // required of some calendar software
$v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" );
  // required of some calendar software
.. .
.. .// parse calendar file(s) and/or edit/create calendar components.. .
.. .
  // opt 1
$v->returnCalendar();
  // redirect calendar file to browser

  // opt 2
$v->setConfig( 'directory', 'depot' );
  // set directory
$v->setConfig( 'filename', 'calendar.ics' );
  // set file name
$v->saveCalendar();
  // save calendar to file

Many more examples.. .

Create/edit/show iCal/xCal files

iCalcreator iCalcreator iCalcreator iCalcreator rsscalCreator rsscalCreator rsscalCreator rsscalCreator

You can test iCalcreator online and produce iCal/xCal/rssCal files from a HTML form, eventCreator, create iCal event file on-the-fly, example of how to employ iCalcreator in software development.

An example how to present and display information, tinycal, from iCal files, using iCalcreator class in the server software.

Roadmap

New release of eventCreator (2.4), using the new features from iCalcreator 2.6 and will support
- parsing and editing of existing iCal files and included events
- using iCalcnv package to allow import csv and export csv/xls files.
- creation of iCal file and events
- event alarms and recurrent events
- extended Ajax support.

New release of eventManager, a port of eventCreator (2.4) to Joomla.

Minor bug fix/function improvement releases of iCalcreator.

Next major release (3.x) of iCalcreator is a PHP 5.x, more strict object-oriented, refactored version.

Release news

iCalcreator-2.6 extensions: tinycal, dbiCal, iCalcnv
tinycal is a small HTML calendar box, displaying calendar information from local and/or remote calendar files or even urls, ex. Google calendar. tinycal displays calendar information in a month, week, day, list or component view, only 220px in width
(Sat, 14 Feb 2009 18:42:26 GMT)
iCalcreator version 2.6 released 23/11 2008
iCalcreator is a PHP class managing iCal formatted files for non-calendar systems like CMS, project management systems and other applications able to process calendar information like agendas, tasks, reports, totos, journaling data and for communication with calendar systems and applications.
(Sun, 23 Nov 2008 16:28:46 GMT)
iCalcreator version 2.4.3 released 18/2 2008
- Function selectComponents
For all recurrence instances for a calendar component, an x-property, &quot;x-current-dtstart&quot; and opt. also &quot;x-current-dtend&quot; alt. &quot;x-current-due&quot;,
has been created with a TEXT content,
(Mon, 18 Feb 2008 21:28:26 GMT)
iCalcreator version 2.4 released 9/1 2008
New functionality
- New function for selection of components within date period
- support of remote files, update functions saveCalendar, parse and useCachedCalendar
(Wed, 09 Jan 2008 21:26:47 GMT)
iCalcreator version 2.2.8 released 10/9 2007
Updated functions
- major correction/refine sort function
- update of UID to include microseconds, used in sort
(Mon, 10 Sep 2007 19:46:17 GMT)
iCalcreator version 2.2.6 released 5/8 2007
Updated functions
- iCal files merge,
- date managing, header cache directives etc,
(Sun, 05 Aug 2007 07:27:53 GMT)
iCalcreator version 2.2 released 14/7 2007
iCalcreator 2.2 new functions
- iCal file sort
(Sat, 14 Jul 2007 11:13:21 GMT)
version 2.0 released 25/5 2007
iCalcreator 2.0 supports iCal calendar file create, parse and edit.
(Sat, 26 May 2007 19:34:29 GMT)
version 1.0 released 21/4 2007
Due to the low frequence of bug-reports, here is iCalcreator 1.0, finaly!!
This is, as usual, a minor bugfix and function update version:
(Sat, 21 Apr 2007 21:19:20 GMT)
version 0.9.15 released 13/1 2007
Minor bugfix and function improvement version.
(Sat, 13 Jan 2007 13:31:43 GMT)

Free images

iCalcreator iCalcreator iCalcreator iCalcreator

rsscalCreator rsscalCreator rsscalCreator rsscalCreator

rdf rss rss1 rss2 rss2

csvl csv xls xls