I've just released v0.1 of Revolution, a Ruby binding to the excellent
Evolution personal information management (PIM) application.  

Here's how you can use it to get to contact/calendar/task information:

==============================
require 'revolution'

r = Revolution::Revolution.new

r.get_all_contacts.each {|c|
        puts "First name: #{c.first_name}"
        puts "Last name: #{c.last_name}"
        puts "Work email: #{c.work_email}" if !c.work_email.nil?
}

last_week = Time.new.to_i-(7*24*60*60)
next_week = Time.new.to_i+(7*24*60*60)
r.get_all_appointments(last_week, next_week).each {|appt|
        puts "Summary: #{appt.summary}"
        puts "Location: #{appt.location}"
        puts "Start time: #{appt.start}"
}

r.get_all_tasks.each {|t|
        puts "Task (#{t.uid})"
        puts "Summary: #{t.summary}"
        puts "Description: #{t.description.slice(0,70)}"
        puts "Start date: #{t.start}"
}
==============================

You can install the Gem using "gem install --remote revolution", or you
can download various things here:

http://rubyforge.org/frs/?group_id=576

and more documentation is available here:

http://revolution.rubyforge.org/

Thanks to InfoEther (http://infoether.com/) for sponsoring development
of this library!

Yours,

Tom