<< Return to Calgoo Website
Calgoo Software

Calgoo Core

Calendar Collaboration API

Calgoo Core is for software developers who develop calendar, scheduling and collaboration solutions and who need to aggregate, sync or access multiple calendar platforms.

A robust and scaleable API, Calgoo Core saves developers the time, effort and risk of developing their own multi-platform calendar collaboration solutions.

Unlike end-to-end calendar API’s such as Google gdata or Outlook COM objects that only allow you to implement single calendar platforms in isolation, Calgoo Core reconciles the data models of disparate calendar platforms and provides a common interface for communication.

Calgoo Core supports the world’s major calendar formats and comes with documentation, sample code, maintenance updates and developer support.

Details

Calgoo Core comprises a set of core libraries to handle calendar and event aggregation, synchronization and access. The responsibilities of the API include: 

Data definition

our internal model to describe calendars and events 

Transformation

data mapping between ours and other calendar systems 

Data access

performs read and write operations on local and online data sources 

Conflict resolution

handles conflicting event changes and determines the truth 

Workflow

Calgoo Synchronization Workflow

Feature List

Working with Calgoo Core

Calgoo Core can be deployed as:

  1. A hosted service on our servers. We would host and maintain the server for you. We would provide you documentation to communicate with our hosted services via our RESTful XML/HTTP API. This approach allows you to use any programming language on your side, such as C#, Java, Python, PHP, Javascript, etc. We can also provide a Java thin-client to simplify interaction with our servers.

  2. Deploy the whole API as a thick-client on your own servers, or on your customer’s machines. Our thick client has been proven to work well in a consumer environment, as well as in an Intranet server environment. Calgoo Core can be compiled as a binary executable in Windows or Linux, or as a jar in Mac.

Sample Code

Here is a piece of sample Java code, assuming you are using approach #1 above.

public SynchronizationDemo() {
    // Listen for application events, e.g. when the synchronization process finishes
    CalGooEventHandler.getInstance().addCalGooEventListener(this);

    // Load all calendars
    List calendars = BCalendar.getInstance().loadCalendars();

    // This time we only want to synchronize the first calendar
    syncMgr.setCalendars(calendars.subList(0, 1));

    // Start the synchronization immediately ...
    syncMgr.start();

    // ... Alternative: Schedule a synchronization process every X minutes
    // syncMgr.schedule(120);
}

public void uiEventOccurred(CalGooEvent e) {
    switch (e.type) {
        case SYNCHRONIZATION_FINISHED:

        // Create a filter that describes a date range
        Calendar cal = Calendar.getInstance();
        Date startRange = cal.getTime();
        cal.add(Calendar.DATE, 7);
        Date endRange = cal.getTime();
        DateRangeFilter dateRangeFilter = new DateRangeFilter(startRange, endRange);

        // Get all calendars which contain modified events after synchronization
        List calendars = syncMgr.getUpdatedCalendars();

        BEvent bevent = BEvent.getInstance();
        for (CCalendar calendar : calendars) {
            // Load all the timespaces for a given date range
            // A timespace describes an occurrence of an event, e.g. a recurring event can have multiple timespaces
            List timeSpaces = bevent.loadTimeSpaces(calendar, dateRangeFilter);

            System.out.println("Found " + timeSpaces.size() + " timespaces in calendar " +calendar.getName());
        }
    break;
    }
}

Sales

Calgoo Core is commercially licensed software.  Please contact us for pricing.

More Information

Please feel free to contact us for more information: