|
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. |
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 |

Calgoo Core can be deployed as:
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;
}
}
We pride ourselves as the experts in calendar inter-operability, synchronization, sharing and anything electronic calendar related. Our team can help you solve your calendar inter-operability problems and achieve your objectives, saving you time and money.
Whether you are looking for consulting services, help with a small integration project, or need an entire system built, we can help you. Please contact us with the scope of your project, and we would be happy to to discuss it with you.
Please feel free to contact us for more information:
