The scheduling open service interface definition (OSID) is an Open Knowledge Initiative specification. OSIDs are programmatic interfaces which comprise a service-oriented architecture for designing and building reusable and interoperable software. The Scheduling OSID provides a means of associating Agents with specific activities (ScheduleItems). This OSID provides a way for an application to integrate or use an external calendaring system. In this way, an application can provide calendaring functionality while still allowing integration with an existing Enterprise calendar system, such as one based on CalDAV, for example. Software architecture