Below are the steps needed to upgrade from a previous version:

To upgrade to 0.9.22:

  A new table was added to support layering.  Look at
  tables-mysql.sql, tables-oracle.sql, or tables-postgres.sql.
  Execute the SQL for creating the webcal_entry_repeats.  For MySQL,
  the SQL is:
    CREATE TABLE webcal_user_layers (
      cal_layerid INT DEFAULT '0' NOT NULL,
      cal_login varchar(25) NOT NULL,
      cal_layeruser varchar(25) NOT NULL,
      cal_color varchar(25) NULL,
      cal_dups CHAR(1) DEFAULT 'N',
      PRIMARY KEY ( cal_login, cal_layeruser )
    );


To upgrade to 0.9.14:
  A new table was added to support repeating events.  Look at
  tables-mysql.sql, tables-oracle.sql, or tables-postgres.sql.
  Execute the SQL for creating the webcal_entry_repeats.  For MySQL,
  the SQL is:
    CREATE TABLE webcal_entry_repeats (
      cal_id INT DEFAULT '0' NOT NULL,
      cal_type VARCHAR(20),
      cal_end INT,
      cal_frequency INT DEFAULT '1',
      cal_days CHAR(7),
      PRIMARY KEY (cal_id)
   );

To upgrade from 0.9.7-0.9.11 to 0.9.12:
  To fix a bug in the handing of events at midnight, all the
  entries with NULL for cal_time are changed to -1.  Use the
  following SQL command:
    update webcal_entry set cal_time = -1 where cal_time is null;
To upgrade from 0.9.[23456] to 0.9.7:
  Entirely new tables are used.  Use the following commands to
  convery your existing MySQL tables to the new tables:
    cd tools
    ./upgrade_to_0.9.7.pl
    mysql intranet < commands.sql
  where "intranet" is the name of the MySQL database that contains
  your WebCalendar tables.

To upgrade from 0.9.[23]:
  Not a thing....

To upgrade from 0.9.1:
  You only need to create the table cal_user_pref in tables.sql

To upgrade from 0.9:
  You need to create the table cal_user_pref in tables.sql
  You need to create the table cal_entry_user in tables.sql that
    was mistakenly created as "cal_event_user" in the 0.9 release
