iWebCal READ ME
iWebCal version 2.1
Last updated May 6, 2006
Copyright (C) 2003-2006 David A. Feldman

GETTING STARTED
To get started displaying calendars with iWebCal:
(1) Place the iWebCal source folder (the folder containing this file)
    on your Web server. Your server must have PHP installed and
    running.
(2) Point your Web browser at the address corresponding to the folder.
    You should see the sample calendar (Sample.ics).
(3) If you have not already done so, place your calendar on your
    Web server.
(4) Open config.inc and change the value of $iWebCal_CALENDAR_FILE
    to the location of your calendar file.
(5) Repeat step 2. You should now see your calendar.

Additional settings in config.inc allow you to customize iWebCal
further. 

IF YOU ARE UPGRADING FROM 2.0b2 and have modified your config.inc
file, note that config.inc has changed, adding the 
$iWebCal_CALENDAR_LIFETIME variable. If you do not define this variable
(i.e. merge in the changes) you may get PHP Notice-level errors.

LICENSING (GPL)
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License 
as published by the Free Software Foundation.


This program is distributed in the hope that it will be useful, but 
WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
General Public License for more details.


You should have received a copy of the GNU General Public License 
along with this program; if not, write to the Free Software Foundation, 
Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. Or, 
visit http://gnu.org.



DOCUMENTATION
Further API Documentation is available on the Web at 
http://iWebCal.com/doc. We're still in the process of updating it from
the v1.1 documentation.


VERSION HISTORY
Also available at http://iWebCal.com/doc

v2.1
- Added support for Google Calendar. One can now supply an email address
  as URL and fetch the corresponding Google Calendar.
- iWebCal now uses CURL by default to fetch remote calendars.
- Updated handling of repeating events. In this respect it now conforms
  to the iCalendar specification.
- KNOWN ISSUE: Google Calendar time zones are not always handled correctly.
  This keeps changing, apparently as Google makes revisions to the service.
  A future update will fix this, but we may wait until Google Calendar
  settles down. In the meantime, you can achieve the desired results by
  setting your calendar's time zone to GMT.
- KNOWN ISSUE: Multiple calendar support is still not working. This is
  among our highest-priority issues for 2.2.

v2.0b4
- Fixed a bug that caused popup-event-info.php to display an error
  rather than the requested content.
- Added a line to main.inc that sets gc_probability so session cache
  files are cleaned up more often.

v2.0b3
- Fixed a bug that caused some repeating events to show up on
  the day after they should have stopped repeating. The fix is
  time-zone based and the vCalendar and PHP time zone handling
  don't get along very well, so additional data about time zones 
  and daylight savings time may be required to correct the 
  problem in all cases.
- Fixed a problem where weekly repeating events were sometimes
  appearing on the wrong days.
- Fixed a bug that caused some events to be drawn on top
  of each other, due to incorrect sorting in Calendar::getDayLayout.
- Added $iWebCal_CALENDAR_LIFETIME so that calendars will expire
  after a period of inactivity (even if the browser is not quit).
  This allows calendar updates to be reflected properly for users
  who rarely quit their browsers.
- Fixed some calendar file parsing code so it handles whitespace
  properly. Most notably, this results in better display of event
  details.
- Corrected some parse errors, most notable one that prevented
  event details from displaying.

v2.0b2
- Minor bug fix in iWebCal.css

v2.0b1
- Rewrote most of the HTML and HTML-generation code, removing the table-
  based layout except where absolutely necessary and replacing it with
  CSS in centralized CSS files.
- Created a new look & feel with all-new graphics.
- Created a new iWebCal logo and associated images.
- Added code and associated global variables for limiting the space used
  for iWebCal session storage files on the server.
- Expanded the event popup window to include attendees, location, and URL
  as well as notes. Added the summary as well for reference. Moved the
  link to open the popup to make it more prominent and gave it a label.
- Fixed a bug that displayed the wrong column headers in month view.
- Fixed a bug that caused extra instances of repeating events to appear
  in some cases.
- Changed text encodings so the event popup window can display 
  non-English characters properly.
- Changed all HTML to XHTML.
- Numerous other bug fixes, including all bugs reported on the SourceForge
  page as of 4/8/2005.

v1.1
- Safari support in all views (workaround for variable dimensions)
- Fixed bug where anything in a sixth week wouldn't be shown
- In the Calendar object, improved parsing of input file: Can now read local files (on the server) in addition to remote (via http).
- If the Calendar object is passed a folder rather than a file, its isValid variable is still set to false, but a new folderContents variable now contains an array of ics files in the folder. In all other cases, folderContents is set to false, so it can also be used to verify that a folder was passed in.
- Modified the sample index.php file so it can read folders: It uses the above feature of the Calendar object to
get the list of ICS files in the folder, then displays the first and provides a popup list of calendars in place
of the usual static calendar title. Selecting from the list switches to the selected calendar.
- Sub-items of calendar items (like alarms) are now ignored properly at calendar creation time. A future version may store this data instead.
- Added support for the Notes (DESCRIPTION) field of an event.
- Added a global variable for the width of the task display, and set its default to a static value.
- Updated the Property object so calendar information containing colons and semicolons (as part of the actual data) is read correctly.
- Calendar objects can now tack extra developer-specified variables onto the URLs they create for navigating around the calendar. You can specify additional URL variables using the new Calendar method addURLVariable(), which takes a variable name and a variable value, in that order. The sample index.php file includes an example.
- Some code clean-up.

v1.0.5 (January 27, 2003)
- iCal 1.0.2 stores all-day events differently from previous versions. This update supports the new format. (The old format is still supported.)
- iCal 1.0.2 stores repeating events differently from previous versions. This update supports the new format. (The old format is no longer supported for some events.)
- Events created in programs other than iCal and ending at midnight are not displayed with the correct duration.

v1.0.4 (January 15, 2003)
- Note that the version numbering scheme has changed slightly.
- Improved support for RFC 2445, including better support for non-iCal ICS files. Fix submitted by Randy Pearson.

v1.03 (November 21, 2002)
- Added a new index.php file that should display a single calendar with a minimum of coding. This should help get new users up and running quickly. It's not covered in the API docs, but in fact may allow a quick start without reading the docs.
- Some minor bug fixes and changes to global variable handling so the index page and original site can coexist without maintaining two code bases.

v1.02 (November 20, 2002)
Made some minor alterations in preparation for releasing the source.

v1.01 (October 30, 2002)
- Updated Task code to support configurations other than that on the iWebCal server, with the addition of a variable in the main iWebCal.php file to specify where a re-sort should link.
- Added copyright info to all PHP files in preparation for licensing and open sourcing.

v1.0 (October 23, 2002)
- Added Task view, including priority- and completion-based coloring, the ability to show and hide completed tasks, and sorting by field.

v1.0b4
- Improved the repeating event bug fix to support multiple PHP versions
- Reorganized source files for easier modification
- Added and incorporated variables for portability between server configurations

v1.0b3 (October 3, 2002)
- Fixed a bug that caused weekly repeating events to appear every day (works in PHP 4.2.3 only now).

v1.0b2
- Changed character encoding to support accent marks, Japanese characters, etc.

v1.0b1
Initial version.
