Work in progress

Proof of concept code can be downloaded at You will need evolution data server and ruby development files/packages. You will need the evolution data server developer packages. the ruby developer packages and SWIG 1.3.24 or above. Then download and untar the file to some directory, open a command line in that directory and follow this steps:

 $ cd evo-swig
 $ sh
 $ cd ruby
 $ ruby extconf && make

If you are lucky and it compiled well (it will show a couple of warnings but it should compile and link) you can try to install it and run the tests:

 $ sudo make install
 $ cd tests
 $ ruby run_tests.rb

Test by invoking irb:

 $ irb 
 irb(main):001:0> require 'evolution'
 => true
 irb(main):002:0> Evolution.get_esource_groups.each{ |group|
 irb(main):003:1*     group.each { |source|
 irb(main):004:2*         puts "------------------------------------------"
 irb(main):005:2>         puts "Calendar: #{}"
 irb(main):006:2>         puts "------------------------------------------"
 irb(main):008:2>         puts cal
 irb(main):009:2>     }
 irb(main):010:1> }

This ought to dump all your calendars in ical form. A more involved example is detailed in Evolution/SWIGCalendarShare. A brief tutorial can be found in Evolution/SWIGForEDSTutorial

Some notes:

  • This is proof of concept code! Don't expect it to work.
  • Any changes made to the interface files may/will require following steps from sh and on.
  • Only wraps some functionality of ESource, ESourceGroup, ECalComponent and ECal.
  • Only generates a ruby interface right now.
  • Writing a python interface should be very easy.
  • The code has no license right now (public domain). Unless developers have any suggestions (mail them to the evolution-hackers mailing list) or incompatibilities arise, a LGPL license may be adopted in the future.
  • <s> The code is in a mercurial repository (included in the tar file) </s>

  • Compiles with SWIG 1.3.22, 1.3.24 and 1.3.26, GCC 3.3.5 and GCC 4.0 (using g++)
  • Tested in Ubuntu Hoary and Mac OS X [*] (special thanks to Shreyas for testing in this platform)

[*] Irb may misbehave on MacOS X if we pass command line parameters. It is much better to first fire irb and then type require 'evolution' to load the evolution module. --Evolution/Vicent SeguA­

Apps/Evolution/SWIGforEDS (last edited 2013-08-08 22:50:03 by WilliamJonMcCann)