Ri_cal 0.7.7 Released

ri_cal version 0.7.7 has been released!

NOTE: This is identical to 0.7.6 other than the version number. For
some reason github failed to publish a gem for that version.

A new Ruby implementation of RFC2445 iCalendar.

The existing Ruby iCalendar libraries (e.g. icalendar, vpim) provide
for parsing and generating icalendar files,
but do not support important things like enumerating occurrences of
repeating events.

This is a clean-slate implementation of RFC2445.

A Google group for discussion of this library has been set up


0.7.7 - 6 August 2009

  • No changes other than a version number bump. github seems to
    have failed to notice the commit of v0.7.6
    and didn’t build the gem. Hopefully it will notice this one.

0.7.6 - 6 August 2009

  • Fixes
    RiCal::PropertyValue::Period was returning a nil ruby value.

0.7.5 - 3 August 2009

  • Fixes
    Microsoft ical exports double quote tzid values in parameters,
    which caused a failure to find VTIMEZONES
    This exposed an issue with parameter parsing. Did the simplest
    thing which could work which was to
    strip the quotes. Need to BOLO for other pathological cases
    showing up in future, which may require
    smarter parameter parsing.

0.7.4 - 21 July 2009

  • Fixes
    Problem with Alarm trigger property value
  • Fixes
    Problem with exporting components with sub-components

0.7.3 - 13 July 2009

Added pointers to rdoc in README

0.7.2 - 6 July 2009

updated to use newest versions of newgem and hoe, in order to make
run-code-run work again

0.7.1 - 6 July 2009

  • Fixes
    duration validation issues
  • Fixes
    event finish_time loses timezone info when event has a dtstart
    and duration

0.7.0 - 29 June 2009

  • Fixes
    component without recurrence properties should enumerate just
    itself only if it is within the period between starting and before
  • added the :overlapping option to OccurrenceEnumerator#occurrences
  • Allows the enumeration of occurrences which are either partiall or
    completely within a timespan given by a pair of Dates/Times/DateTimes
    • Fixes some Ruby 1.9 incompatibilities
    • Added some new rake tasks to run specs under multi-ruby

0.6.3 - 14 June 2009

  • Fixes

0.6.2 - 11 June 2009

  • Fixes

0.6.1 - 6 June 2009

  • Fixes problem with file which loads activesupport for the rake
    spec:with_activesupport task, it now
    requires >=2.2 instead of <=2.2 - Thanks to Paul Scott-Murphy for
    finding this.

0.6.0 - 5 June 2009

Time for a minor version bump.

  • Improved overall enumeration performance bypassing most of the
    effects of the poor performance of Ruby’s DateTime class.
  • Added a framework for performance monitoring during development.
  • New performance directory with subdirs for code to be monitored
    for performance (subjects)
  • New script files:
    script/benchmark_subject runs a ruby benchmark on one
    performance subject
    script/profile_subject runs ruby-prof for a subject and puts a
    kcachegrind compatible calltree in the performance_data directory.
  • New rake tasks:
    performance:benchmark runs benchmarks against all subjects in
    the performance directory and produces a consolidated output file in
    performance:profile runs script/profile_subject against all
    subjects in the performance directory.

0.5.3 - 1 June, 2009

  • Improved performance of time zone enumeration, TimeZonePeriod now
    caches occurrences
  • Added a profiling directory which contains ruby programs which
    benchmark and/or profile performance


  • Fixes
    Export folding is not UTF-8 Safe


  • Fixes README to acknowledge release on RubyForge

0.5.0 rubyforge release candidate Tue May 26 10:26:43 2009 -0400

  • Added OccurrenceEnumerator#zulu_occurrence_range

0.0.11 Sat May 23 18:24:57 2009 -0400

  • Fixes
  • Fixes


  • Fixes


  • Fixes
    Missing comparison methods in PropertyValue::Date
  • Fixes
    Type of dtstart and dtend (DATE or DATETIME) now preserved on


  • Fixes
    EXDATE and RDATE now pick up the timezone from DateTime, Time, and
    TimeWithZone values
  • Fixes
    Missing arithmetic methods in PropertyValue::Date
  • Fixes
    Components with no recurrence rules or rdate properties failed
    on enumeration, they now
    will enumerate a single occurrence


  • Fixes a bug relating to properly recognizing
  • DATETIME propertyvalues will now return an instance of
    TimeWithZone instead of DateTime when
    activesupport is present, and it is appropriate. See the README for


  • Added rake tasks to run specs with either the tzinfo gem or
    activesupport (<=2.2)
  • Default rake task now runs both of these


  • Fixes a bug in occurrence enumeration reported by paulsm on github


  • Fixes a bug in imported timezones reported by paulsm on github


  • Added tzid method to Ruby Time and DateTime instances, and to
    ActiveRecord::TimeWithZone if it is defined this method is used to
    determine the desired
    timezone when an instance of one of these classes is given as the
    value of a datetime property. If the tzid is nil then the default
    tzid is used,
    if it is set to :floating then the property will be a floating time.
  • Removed the ability to pass an array with a tzid string and a
    date-time since the above made it unnecessary
  • The ruby datetime property returned from the ruby_value method on
    the DateTime property will return an instance of ::DateTime with:
    – The proper utc offset
    – The tzid set to the right tzid
  • Made exdate/rdate building possible
  • Added a default_tzid attribute to the Calendar component, if this
    attribute is not set for a particular calendar it will delegate to the
    default set
    for the DateTime property class.
  • Added fix patches from
    GitHub - wesmaldonado/ri_cal: New Rfc 2445 (iCalendar) gem for Ruby

Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale