Thursday, December 10, 2009

Convert your Exchange Calendar to iCalendar with Ruby

This example is one that is already in the README, but I thought I'd post it here anyway.  The reasons for converting an Exchange calendar to ical may be many so I won't surmise why you want to do this.  I for one use it to export out to my Orage calendar.

So without further ado ...

2 comments:

  1. Hi

    Thanks for sharing ViewPoint. I'm working through the sample and ran into a problem when authenticating. The error is below. Any suggestions would be very much appreciated.

    The error:

    at depth 1 - 20: unable to get local issuer certificate
    OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:247:in `connect'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:247:in `ssl_connect'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:639:in `connect'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/timeout.rb:128:in `timeout'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:631:in `connect'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:522:in `query'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:147:in `query'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:953:in `do_get_block'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:765:in `do_request'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:848:in `protect_keep_alive_disconnected'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:764:in `do_request'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:666:in `request'
    from /usr/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:596:in `post'
    from /Projects/UCSF/rcal/vendor/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:238:in `send_post'
    from /Projects/UCSF/rcal/vendor/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:172:in `send'
    from /Projects/UCSF/rcal/vendor/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:179:in `route'
    from /Projects/UCSF/rcal/vendor/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:143:in `call'
    from /Projects/UCSF/rcal/vendor/gems/soap4r-1.5.8/lib/soap/rpc/driver.rb:181:in `call'
    from (eval):6:in `resolveNames'
    from /Projects/UCSF/rcal/vendor/gems/viewpoint-0.0.5/lib/viewpoint/exchwebserv.rb:176:in `resolve_name'
    from /Projects/UCSF/rcal/vendor/gems/viewpoint-0.0.5/lib/viewpoint/exchwebserv.rb:216:in `do_auth'
    from /Projects/UCSF/rcal/vendor/gems/viewpoint-0.0.5/lib/viewpoint/exchwebserv.rb:165:in `authenticate'
    from (irb):2>>

    ReplyDelete
  2. I got beyond the error above by creating a property file that soap4r reads from and adding:

    client.protocol.http.ssl_config.ca_file = /path/to_ca_file

    However, I still get nothing but 401 responses from the server.

    Any advice?

    ReplyDelete