Ri_cal 0.7.2 Released

ri_cal version 0.7.2 has been released!

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.2 - 6 July 2007

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

0.7.1 - 6 July 2007

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

0.7.0 - 29 June 2009

  • fixed
    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
    • Fixed some Ruby 1.9 incompatibilities
    • Added some new rake tasks to run specs under multi-ruby

0.6.3 - 14 June 2009

  • Fixed

0.6.2 - 11 June 2009

  • Fixed

0.6.1 - 6 June 2009

  • Fixed 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


  • Fixed
    Export folding is not UTF-8 Safe


  • Fixed 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

  • Fixed http://rick_denatale.lighthouseapp.com/projects/30941/tickets/5
  • Fixed http://rick_denatale.lighthouseapp.com/projects/30941/tickets/9


  • Fixed http://rick_denatale.lighthouseapp.com/projects/30941/tickets/8


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


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


  • Fixed 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


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


  • Fixed 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
    ** http://github.com/kjwierenga/ri_cal
    ** GitHub - wesmaldonado/ri_cal: New Rfc 2445 (iCalendar) gem for Ruby


  • Fixed gemspec


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