Visual Basic API for OpenXchange

Welcome to the VB<>OX project

The VB<>OX (say "vbox") project aims at delivering an easy-to-use API for accessing an OpenXchange server from within Visual Basic (for Applications) programs (in the following referred to as VB and VBA, respectively). It provides an abstraction layer to the VB application, hiding most of the complexity of the OpenXchange interfaces behind a number of Visual Basic classes.

As of release 0.1.1, the library already provides a rudimentary interface for accessing the OpenXchange calendar. You can


You can download the latest release from SourceForge.


VB<>OX comes as a compressed ZIP archive that extracts into a subdirectory named vbox-<major.minor.patchlevel>, with "major", "minor" and "patchlevel" standing for the respective numbers.

Make VB<>OX available to your application: In the distribution directory, you will find the API as a number of files having .bas and .cls filename extensions. In order to use VB<>OX, you have to import all these files as (class) modules into your VB(A) project.

Try to compile the project after importing the VB<>OX modules (via "Debug -> Compile"). If you get no compilation errors, chances are good that you are ready to start using it. Have a look at the code examples in the mdlVboxExampleCode module to get an idea how this works.


Following is an example of how you can use the API in your own VB programs:

Function checkAppointmentData()
' ==================================================================
' Demonstrates how to connect to an OpenXchange server and how to
' retrieve, modify and store an appointment
' ==================================================================

  Dim moOxs As clsOxServer
  Dim moApp As clsOxAppointment

  Set moOxs = New clsOxServer

  'Initialize the connection to the OpenXchange server
  moOxs.init "http://my.openxchange.server", _
    "/servlet/webdav.calendar", _
    "someUsername", "somePassword"

  'Load an appointment from the server (assuming we know the
  'appointment's ID)
  Set moApp = moOxs.getAppointment(4711)

  'Check whether the appointment could be retrieved successfully
  If moApp.ObjectId <> 0 Then
    'Print date and location of the appointment
    Debug.Print "The appointment starts at " & _
    Format(moApp.StartDate, " hh:nn")
    Debug.Print "The appointment happens at "; moApp.Location

    'Add an user
    moApp.addUser ("Jon Doe")

    'Save the appointment
    moOxs.saveAppointment moApp
  End If
End Function


VB<>OX is free software. It is released under the GNU Lesser General Public License.


To contact the VB<>OX maintainer, send an e-mail to cp AT cpohle DOT de (and sorry for this little inconvenience of an unclickable mail-address due to spam-prevention).