CampusAPI Calendaring Services API documentation version 0.1.5
Based on OSID version 3.0.0
https://base.url/calendaring
Overview
The Calendaring service package manages events, commitments and calendars. Calendaring offers a rich set of event management services.
This package includes the following entities:
Events
An Event is range of time associated with a Location and event sponsors. Events may be managed singularly, or be generated of of one of the types of events listed below.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this event, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this event, provided by system. | string(uri) |
displayName | The name of this event for display. | string |
description | The description of this event. | string |
genusTypeId (read‑only) | Id of the immutable type of this event. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this event. | string(date‑time) |
endDate | The ending date of this event. | string(date‑time) |
sequestered | Whether this event is sequestered in that it should not appear outside of its aggregation. | boolean |
locationDescription | A descriptive location. | string |
locationId | The Location. References a mapping.Location object | string(osid‑id) |
sponsorIds | The Sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
RecurringEvents
A RecurringEvent generates a series of Events from a Schedule. A Schedule is a series of times and locations.
A RecurringEvent may include SupersedingEvents to replace specific events in the series with another Event which may, in turn, be another RecurringEvent. RecurringEvents may also have a set of blackout dates in which Event generation is suppressed.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this recurring event, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this recurring event, provided by system. | string(uri) |
displayName | The name of this recurring event for display. | string |
description | The description of this recurring event. | string |
genusTypeId (read‑only) | Id of the immutable type of this recurring event. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this recurring event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
active (read‑only) | Whether this recurring event is active. Active is true if operational is true and disabled is false, or enabled is true. | boolean |
enabled | Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler. | boolean |
disabled | Whether this recurring event is administravely disabled. Administratively disabling overrides any applied enabler. | boolean |
operational (read‑only) | Whether this recurring event is operational. This recurring event is operational if any of the applied enablers are true. | boolean |
ruleId | An explicit rule for this recurring event. References a rules.Rule object. | string(osid‑id) |
sequestered | Whether this recurring event is sequestered in that it should not appear outside of its aggregation. | boolean |
sponsorIds | The Sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
SupersedingEvents
A SupersedingEvent is a Rule for replacing another Event. Typically, SupersedingEvents are used for replacing a generated Event from a recurring event series. Events may be superseded by date or position in a recurring even series. Examples are "replace the event on 12/25 with an event scheduled for 12/26" or "replace the 10th event in a course schedule with an exam."
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this superseding event, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this superseding event, provided by system. | string(uri) |
displayName | The name of this superseding event for display. | string |
description | The description of this superseding event. | string |
genusTypeId (read‑only) | Id of the immutable type of this superseding event. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this superseding event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
active (read‑only) | Whether this superseding event is active. Active is true if operational is true and disabled is false, or enabled is true. | boolean |
enabled | Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler. | boolean |
disabled | Whether this superseding event is administravely disabled. Administratively disabling overrides any applied enabler. | boolean |
operational (read‑only) | Whether this superseding event is operational. This superseding event is operational if any of the applied enablers are true. | boolean |
ruleId | An explicit rule for this superseding event. References a rules.Rule object. | string(osid‑id) |
supersededEventId (read‑only) | The superseded event associated with this superseding event. References a calendaring.Event object. | string(osid‑id) |
supersedingEventId (read‑only) | The superseding event associated with this superseding event. References a calendaring.Event object. | string(osid‑id) |
supersededDate | The date of an event to replace if a recurring event is offered on that date. | string(date‑time) |
supersededEventPosition | The position in the denormalized recurring series of the event to replace. | integer |
OffsetEvents
An OffSetEvent is a Rule for generating an Event off of another Event. An OffsetEvent may be offset by a fixed period of time, a weekday, or include an external Rule to determine the offset. Example OffsetEvents are "the first Tuesday after Labor Day" or "24 hours before a due date."
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this offset event, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this offset event, provided by system. | string(uri) |
displayName | The name of this offset event for display. | string |
description | The description of this offset event. | string |
genusTypeId (read‑only) | Id of the immutable type of this offset event. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this offset event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
active (read‑only) | Whether this offset event is active. Active is true if operational is true and disabled is false, or enabled is true. | boolean |
enabled | Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler. | boolean |
disabled | Whether this offset event is administravely disabled. Administratively disabling overrides any applied enabler. | boolean |
operational (read‑only) | Whether this offset event is operational. This offset event is operational if any of the applied enablers are true. | boolean |
ruleId | An explicit rule for this offset event. References a rules.Rule object. | string(osid‑id) |
fixedStartTime | The fixed start time for this event. | string(date‑time) |
startReferenceEventId | The Event to which the start of this event is offset. References a calendaring.Event object | string(osid‑id) |
fixedStartOffset | The fixed starting time offset. | string(duration) |
relativeWeekdayStartOffset | The starting offset as the nth weekday from the relative event. | integer |
relativeStartWeekday | The starting weekday number. | integer |
fixedDuration | The duration of the offset event. | string(duration) |
endReferenceEventId | The Event to which the end of this event is offset. References a calendaring.Event object | string(osid‑id) |
fixedEndOffset | The fixed ending time offset. | string(duration) |
relativeWeekdayEndOffset | The ending offset as the nth weekday from the relative event. | integer |
relativeEndWeekday | The ending weekday number. | integer |
locationDescription | A descriptive location. | string |
locationId | The Location. References a mapping.Location object | string(osid‑id) |
sponsorIds | The Sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
Schedules
A Schedule describes a repeating time and Location. Schedules may be bounded by dates or by using a TimePeriod. A TimePeriod is a reusable date range and may include a set of exception Events to define a set of time ranges that any RecurringEvent mapped to the TimePeriod may not occur.
Schedules are composed of ScheduleSlots. ScheduleSlots are normalized weekly time slots. A ScheduleSlot may be composed of other ScheduleSlots.
To make a RecurringEvent for MWF 3pm in room 26-100 during the summer except July 4th:
- A ScheduleSlot for MWF 3pm is created.
- A Schedule is created using the ScheduleSlot for room 10-250 in the summer TimePeriod.
- A RecurringEvent is created using the Schedule.
- A blackout date for Independence Day is added to the RecurringEvent.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this schedule, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this schedule, provided by system. | string(uri) |
displayName | The name of this schedule for display. | string |
description | The description of this schedule. | string |
genusTypeId (read‑only) | Id of the immutable type of this schedule. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this schedule. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
scheduleSlotId | The schedule slot included inside this one. References a calendaring.ScheduleSlot object | string(osid‑id) |
timePeriodId | The TimePeriod for this recurring event. References a calendaring.TimePeriod object | string(osid‑id) |
scheduleStart | The start date of this schedule. | string(date‑time) |
scheduleEnd | The end date of this schedule. | string(date‑time) |
limit | The limit of the number of occurences of this schedule. | integer[] |
locationId | The Location. References a mapping.Location object | string(osid‑id) |
ScheduleSlots
A ScheduleSlot describes a repeating time slot. The time slot can be defined as a fixed time interval or be defined on a weekly interval specifying the days of the week.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this schedule slot, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this schedule slot, provided by system. | string(uri) |
displayName | The name of this schedule slot for display. | string |
description | The description of this schedule slot. | string |
genusTypeId (read‑only) | Id of the immutable type of this schedule slot. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this schedule slot. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
sequestered | Whether this schedule slot is sequestered in that it should not appear outside of its aggregation. | boolean |
weekday | -- could someone please write a description for this -- | integer[] |
weeklyInterval | The number of weeks of the interval. | integer |
weekOfMonth | The week of the month for the interval. | integer |
weekdayTime | The time of this recurring schedule. | string(time) |
fixedInterval | The repeating interval. | string(duration) |
duration | The duration of the schedule slot. | string(duration) |
TimePeriods
A TimePeriod represents a span of time in which recurring events are expanded.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this time period, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this time period, provided by system. | string(uri) |
displayName | The name of this time period for display. | string |
description | The description of this time period. | string |
genusTypeId (read‑only) | Id of the immutable type of this time period. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this time period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
start | The start time of the time period. | string(date‑time) |
end | The end time of the time period. | string(date‑time) |
Commitments
Commitments are Relationships between Resources and Events. Commitments may include any data specific to the relationship.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this commitment, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this commitment, provided by system. | string(uri) |
displayName | The name of this commitment for display. | string |
description | The description of this commitment. | string |
genusTypeId (read‑only) | Id of the immutable type of this commitment. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this commitment. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this commitment. | string(date‑time) |
endDate | The ending date of this commitment. | string(date‑time) |
endReasonId | The reason this commitment ended. References a process.State object. | string(osid‑id) |
eventId (read‑only) | The event associated with this commitment. References a calendaring.Event object. | string(osid‑id) |
resourceId (read‑only) | The resource associated with this commitment. References a resource.Resource object. | string(osid‑id) |
Calendars
Events and Schedules are cataloged into Calendars. The Calendar is simply a Catalog representing a collection of Events that may be federated using the hierarchy pattern to create virtual calendars.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this calendar, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this calendar, provided by system. | string(uri) |
displayName | The name of this calendar for display. | string |
description | The description of this calendar. | string |
genusTypeId (read‑only) | Id of the immutable type of this calendar. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this calendar. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this calendar. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this calendar. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this calendar. | string |
License
CampusAPI REST Documentation Copyright 2023 DXtera Institute. Based on the Open Service Interface Definitions: http://osid.org
/events
Collection of Events in a system, federation of systems, or in a default Calendar.
Get all Events in the system or default Calendar.
Create a new Event in the default Calendar.
get /events
Get all Events in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleEventType%40campusapi.org
- fromDate: (string)
Get all events from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all events up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Event:7422@base.url",
"uri": "http://base.url/open/campusapi/calendaring/event/calendaring.Event%3A7422%40base.url",
"displayName": "Display Name of this Event",
"description": "The description of this Event",
"genusTypeId": "type.Type:defaultEventType@base.url",
"recordTypeIds": [ "type.Type:exampleEventRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:239@base.url",
"sponsorIds": [ "resource.Resource:4608@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /events
Create a new Event in the default Calendar.
Query Parameters
- genusType: (string)
specify a particular event type to create
Example:
type.Type%3AexampleEventType%40dxtera.org
- recordType: (array of )
specify support for one or more event record types
Example:
[ "type.Type%3AexampleEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this event
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Event",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this event for display.",
"type": "string"
},
"description": {
"description": "The description of this event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this event.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this event.",
"type": "string",
"format": "date-time"
},
"sequestered": {
"description": "Whether this event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string"
},
"locationId": {
"description": "The Location.",
"type": "string",
"format": "osid-id"
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Event",
"description": "The description of this Event",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:5644@base.url",
"sponsorIds": [ "resource.Resource:4757@base.url", "..." ]
}
Query the collection of Events in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a EventQuery object.
post /events/event-query
Submit a query using a EventQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "EventQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchSequestered": {
"description": "Match containables that are sequestered. true to match any sequestered containables, false to match non-sequestered containables",
"type": "boolean"
},
"matchLocationDescription": {
"description": "List of LocationDescription strings to match. Boolean OR performed among multiple locationDescriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationDescriptions": {
"description": "locationDescriptions to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyLocationDescription": {
"description": "Match locationDescriptions with any value. true to match Events with any location description, false to match ProgramOfferings with no location description",
"type": "boolean"
},
"matchLocationIds": {
"description": "List of Location Ids for this query to match location.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"locationQueries": {
"description": "mapping.LocationQueries to match the Location. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLocation": {
"description": "Match location with any value. true to match Events with any location, false to match Events with no location",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsor.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsor. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsor with any value. true to match Events with any sponsor, false to match Events with no sponsor",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Event:7422@base.url",
"uri": "http://base.url/open/campusapi/calendaring/event/calendaring.Event%3A7422%40base.url",
"displayName": "Display Name of this Event",
"description": "The description of this Event",
"genusTypeId": "type.Type:defaultEventType@base.url",
"recordTypeIds": [ "type.Type:exampleEventRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:239@base.url",
"sponsorIds": [ "resource.Resource:4608@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Event form metadata.
Get form metadata for creating a new Event.
get /events/metadata
Get form metadata for creating a new Event.
Query Parameters
- genusType: (string)
specify a particular event type to create
Example:
type.Type%3AexampleEventType%40dxtera.org
- recordType: (array of )
specify support for one or more event record types
Example:
[ "type.Type%3AexampleEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this event
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Event",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this event",
"linked": false
},
"description": {
"description": "The description of this event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this event.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this event",
"linked": false
},
"endDate": {
"description": "The ending date of this event.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this event",
"linked": false
},
"sequestered": {
"description": "Whether this event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "Event.Event:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this event is sequestered",
"linked": false
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Event:locationDescription@dxtera.org",
"existingValue": "The existing location description",
"elementLabel": "Location Description",
"instructions": "Enter a location description for this event.",
"linked": false
},
"locationId": {
"description": "The Location.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Event:location@dxtera.org",
"existingValue": null,
"elementLabel": "Location",
"instructions": "Enter the Id of the location for this event.",
"linked": false
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "calendaring.Event:sponsor@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsor",
"instructions": "Enter Ids for sponsor of this event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Event
Get a particular Event given its id.
Update a particular Event given its id.
Delete a particular Event given its id.
get /events/{eventId}
Get a particular Event given its id.
URI Parameters
- eventId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.Event:7422@base.url",
"uri": "http://base.url/open/campusapi/calendaring/event/calendaring.Event%3A7422%40base.url",
"displayName": "Display Name of this Event",
"description": "The description of this Event",
"genusTypeId": "type.Type:defaultEventType@base.url",
"recordTypeIds": [ "type.Type:exampleEventRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:239@base.url",
"sponsorIds": [ "resource.Resource:4608@base.url", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Event not found" }
put /events/{eventId}
Update a particular Event given its id.
URI Parameters
- eventId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Event",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this event for display.",
"type": "string"
},
"description": {
"description": "The description of this event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this event.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this event.",
"type": "string",
"format": "date-time"
},
"sequestered": {
"description": "Whether this event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string"
},
"locationId": {
"description": "The Location.",
"type": "string",
"format": "osid-id"
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Event",
"description": "The description of this Event",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:5644@base.url",
"sponsorIds": [ "resource.Resource:4757@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Event has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Event not found" }
delete /events/{eventId}
Delete a particular Event given its id.
URI Parameters
- eventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Event has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Event not found" }
Entity representing a Event form metadata for update
Get form metadata for updating an existing Event.
get /events/{eventId}/metadata
Get form metadata for updating an existing Event.
URI Parameters
- eventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Event",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this event",
"linked": false
},
"description": {
"description": "The description of this event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this event.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this event",
"linked": false
},
"endDate": {
"description": "The ending date of this event.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Event.Event:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this event",
"linked": false
},
"sequestered": {
"description": "Whether this event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "Event.Event:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this event is sequestered",
"linked": false
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Event:locationDescription@dxtera.org",
"existingValue": "The existing location description",
"elementLabel": "Location Description",
"instructions": "Enter a location description for this event.",
"linked": false
},
"locationId": {
"description": "The Location.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Event:location@dxtera.org",
"existingValue": null,
"elementLabel": "Location",
"instructions": "Enter the Id of the location for this event.",
"linked": false
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "calendaring.Event:sponsor@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsor",
"instructions": "Enter Ids for sponsor of this event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "event not found" }
/recurring-events
Collection of RecurringEvents in a system, federation of systems, or in a default Calendar.
Get all RecurringEvents in the system or default Calendar.
Create a new RecurringEvent in the default Calendar.
get /recurring-events
Get all RecurringEvents in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleRecurringEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleRecurringEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleRecurringEventType%40campusapi.org
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.RecurringEvent:4182@base.url",
"uri": "http://base.url/open/campusapi/calendaring/recurringEvent/calendaring.RecurringEvent%3A4182%40base.url",
"displayName": "Display Name of this RecurringEvent",
"description": "The description of this RecurringEvent",
"genusTypeId": "type.Type:defaultRecurringEventType@base.url",
"recordTypeIds": [ "type.Type:exampleRecurringEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"sequestered": false,
"sponsorIds": [ "resource.Resource:8641@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /recurring-events
Create a new RecurringEvent in the default Calendar.
Query Parameters
- genusType: (string)
specify a particular recurringEvent type to create
Example:
type.Type%3AexampleRecurringEventType%40dxtera.org
- recordType: (array of )
specify support for one or more recurringEvent record types
Example:
[ "type.Type%3AexampleRecurringEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this recurringEvent
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RecurringEvent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this recurring event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this recurring event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this recurring event for display.",
"type": "string"
},
"description": {
"description": "The description of this recurring event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this recurring event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this recurring event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"active": {
"description": "Whether this recurring event is active. Active is true if operational is true and disabled is false, or enabled is true.",
"type": "boolean",
"readOnly": true
},
"enabled": {
"description": "Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"disabled": {
"description": "Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"operational": {
"description": "Whether this recurring event is operational. This recurring event is operational if any of the applied enablers are true.",
"type": "boolean",
"readOnly": true
},
"ruleId": {
"description": "An explicit Rule for this recurring event.",
"type": "string",
"format": "osid-id"
},
"sequestered": {
"description": "Whether this recurring event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this RecurringEvent",
"description": "The description of this RecurringEvent",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"sequestered": false,
"sponsorIds": [ "resource.Resource:7450@base.url", "..." ]
}
Query the collection of RecurringEvents in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a RecurringEventQuery object.
post /recurring-events/recurring-event-query
Submit a query using a RecurringEventQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RecurringEventQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchActive": {
"description": "Matches active. true to match active, false to match inactive",
"type": "boolean"
},
"matchEnabled": {
"description": "Matches administratively enabled. true to match administratively enabled, false otherwise",
"type": "boolean"
},
"matchDisabled": {
"description": "Matches administratively disabled. true to match administratively disabled, false otherwise",
"type": "boolean"
},
"matchOperational": {
"description": "Matches operational operables. true to match operational, false to match not operational",
"type": "boolean"
},
"matchRuleIds": {
"description": "List of rule Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"ruleQueries": {
"description": "rules.RuleQuery for the cyclic event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchSequestered": {
"description": "Match containables that are sequestered. true to match any sequestered containables, false to match non-sequestered containables",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsor.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsor. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsor with any value. true to match RecurringEvents with any sponsor, false to match RecurringEvents with no sponsor",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.RecurringEvent:4182@base.url",
"uri": "http://base.url/open/campusapi/calendaring/recurringEvent/calendaring.RecurringEvent%3A4182%40base.url",
"displayName": "Display Name of this RecurringEvent",
"description": "The description of this RecurringEvent",
"genusTypeId": "type.Type:defaultRecurringEventType@base.url",
"recordTypeIds": [ "type.Type:exampleRecurringEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"sequestered": false,
"sponsorIds": [ "resource.Resource:8641@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a RecurringEvent form metadata.
Get form metadata for creating a new RecurringEvent.
get /recurring-events/metadata
Get form metadata for creating a new RecurringEvent.
Query Parameters
- genusType: (string)
specify a particular recurringEvent type to create
Example:
type.Type%3AexampleRecurringEventType%40dxtera.org
- recordType: (array of )
specify support for one or more recurringEvent record types
Example:
[ "type.Type%3AexampleRecurringEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this recurringEvent
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "RecurringEvent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this recurring event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this recurring event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this recurring event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "RecurringEvent.RecurringEvent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this recurring event",
"linked": false
},
"description": {
"description": "The description of this recurring event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "RecurringEvent.RecurringEvent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this recurring event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this recurring event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this recurring event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"enabled": {
"description": "Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "RecurringEvent.RecurringEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this recurring event is enabled",
"linked": false
},
"disabled": {
"description": "Whether this recurring event is administravely disabled. Administratively disabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "RecurringEvent.RecurringEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this recurring event is enabled",
"linked": false
},
"ruleId": {
"description": "An explicit Rule for this recurring event.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "RecurringEvent.RecurringEvent:rule@base.url",
"existingValue": "",
"elementLabel": "Rule",
"instructions": "Select a Rule to apply to this recurring event",
"linked": false
},
"sequestered": {
"description": "Whether this recurring event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "RecurringEvent.RecurringEvent:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this recurring event is sequestered",
"linked": false
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "calendaring.RecurringEvent:sponsor@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsor",
"instructions": "Enter Ids for sponsor of this recurring event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a RecurringEvent
Get a particular RecurringEvent given its id.
Update a particular RecurringEvent given its id.
Delete a particular RecurringEvent given its id.
get /recurring-events/{recurringEventId}
Get a particular RecurringEvent given its id.
URI Parameters
- recurringEventId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.RecurringEvent:4182@base.url",
"uri": "http://base.url/open/campusapi/calendaring/recurringEvent/calendaring.RecurringEvent%3A4182%40base.url",
"displayName": "Display Name of this RecurringEvent",
"description": "The description of this RecurringEvent",
"genusTypeId": "type.Type:defaultRecurringEventType@base.url",
"recordTypeIds": [ "type.Type:exampleRecurringEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"sequestered": false,
"sponsorIds": [ "resource.Resource:8641@base.url", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "RecurringEvent not found" }
put /recurring-events/{recurringEventId}
Update a particular RecurringEvent given its id.
URI Parameters
- recurringEventId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RecurringEvent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this recurring event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this recurring event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this recurring event for display.",
"type": "string"
},
"description": {
"description": "The description of this recurring event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this recurring event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this recurring event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"active": {
"description": "Whether this recurring event is active. Active is true if operational is true and disabled is false, or enabled is true.",
"type": "boolean",
"readOnly": true
},
"enabled": {
"description": "Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"disabled": {
"description": "Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"operational": {
"description": "Whether this recurring event is operational. This recurring event is operational if any of the applied enablers are true.",
"type": "boolean",
"readOnly": true
},
"ruleId": {
"description": "An explicit Rule for this recurring event.",
"type": "string",
"format": "osid-id"
},
"sequestered": {
"description": "Whether this recurring event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this RecurringEvent",
"description": "The description of this RecurringEvent",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"sequestered": false,
"sponsorIds": [ "resource.Resource:7450@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The RecurringEvent has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "RecurringEvent not found" }
delete /recurring-events/{recurringEventId}
Delete a particular RecurringEvent given its id.
URI Parameters
- recurringEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The RecurringEvent has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "RecurringEvent not found" }
Entity representing a RecurringEvent form metadata for update
Get form metadata for updating an existing RecurringEvent.
get /recurring-events/{recurringEventId}/metadata
Get form metadata for updating an existing RecurringEvent.
URI Parameters
- recurringEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "RecurringEvent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this recurring event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this recurring event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this recurring event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "RecurringEvent.RecurringEvent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this recurring event",
"linked": false
},
"description": {
"description": "The description of this recurring event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "RecurringEvent.RecurringEvent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this recurring event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this recurring event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this recurring event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"enabled": {
"description": "Whether this recurring event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "RecurringEvent.RecurringEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this recurring event is enabled",
"linked": false
},
"disabled": {
"description": "Whether this recurring event is administravely disabled. Administratively disabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "RecurringEvent.RecurringEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this recurring event is enabled",
"linked": false
},
"ruleId": {
"description": "An explicit Rule for this recurring event.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "RecurringEvent.RecurringEvent:rule@base.url",
"existingValue": "",
"elementLabel": "Rule",
"instructions": "Select a Rule to apply to this recurring event",
"linked": false
},
"sequestered": {
"description": "Whether this recurring event is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "RecurringEvent.RecurringEvent:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this recurring event is sequestered",
"linked": false
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "calendaring.RecurringEvent:sponsor@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsor",
"instructions": "Enter Ids for sponsor of this recurring event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "recurringEvent not found" }
/superseding-events
Collection of SupersedingEvents in a system, federation of systems, or in a default Calendar.
Get all SupersedingEvents in the system or default Calendar.
Create a new SupersedingEvent in the default Calendar.
get /superseding-events
Get all SupersedingEvents in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "supersedingEvent", "supersededEvent", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleSupersedingEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleSupersedingEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleSupersedingEventType%40campusapi.org
- supersededEventId: (string)
the id string to match a superseded-event.
Example:
calendaring.Event%3A2816%40base.url
- supersedingEventId: (string)
the id string to match a superseding-event.
Example:
calendaring.Event%3A2992%40base.url
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.SupersedingEvent:7763@base.url",
"uri": "http://base.url/open/campusapi/calendaring/supersedingEvent/calendaring.SupersedingEvent%3A7763%40base.url",
"displayName": "Display Name of this SupersedingEvent",
"description": "The description of this SupersedingEvent",
"genusTypeId": "type.Type:defaultSupersedingEventType@base.url",
"recordTypeIds": [ "type.Type:exampleSupersedingEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"supersededEventId": "calendaring.Event:388@base.url",
"supersededDate": "2021-07-21T23:15:30.000Z",
"supersedingEventId": "calendaring.Event:1871@base.url",
"supersededEventPosition": 19
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /superseding-events
Create a new SupersedingEvent in the default Calendar.
Query Parameters
- supersededEventId: required(string)
the superseded-event of this superseding-event.
Example:
calendaring.Event%3A2816%40base.url
- supersedingEventId: required(string)
the superseding-event of this superseding-event.
Example:
calendaring.Event%3A2992%40base.url
- genusType: (string)
specify a particular supersedingEvent type to create
Example:
type.Type%3AexampleSupersedingEventType%40dxtera.org
- recordType: (array of )
specify support for one or more supersedingEvent record types
Example:
[ "type.Type%3AexampleSupersedingEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this supersedingEvent
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "SupersedingEvent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this superseding event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this superseding event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this superseding event for display.",
"type": "string"
},
"description": {
"description": "The description of this superseding event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this superseding event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this superseding event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"active": {
"description": "Whether this superseding event is active. Active is true if operational is true and disabled is false, or enabled is true.",
"type": "boolean",
"readOnly": true
},
"enabled": {
"description": "Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"disabled": {
"description": "Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"operational": {
"description": "Whether this superseding event is operational. This superseding event is operational if any of the applied enablers are true.",
"type": "boolean",
"readOnly": true
},
"ruleId": {
"description": "An explicit Rule for this superseding event.",
"type": "string",
"format": "osid-id"
},
"supersededEventId": {
"description": "The superseded event associated with this superseding event.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"supersedingEventId": {
"description": "The superseding event associated with this superseding event.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"supersededDate": {
"description": "The date of an event to replace if a recurring event is offered on that date.",
"type": "string",
"format": "date-time"
},
"supersededEventPosition": {
"description": "The position in the denormalized recurring series of the event to replace.",
"type": "integer"
}
}
}
Example:
{
"displayName": "Display Name of this SupersedingEvent",
"description": "The description of this SupersedingEvent",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"supersededDate": "2021-07-21T23:15:30.000Z",
"supersededEventPosition": 19
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The SupersedingEvent has been created",
"superseding-eventId": "calendaring.SupersedingEvent:9876@demo.dxtera.org"}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Query the collection of SupersedingEvents in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a SupersedingEventQuery object.
post /superseding-events/superseding-event-query
Submit a query using a SupersedingEventQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "supersedingEvent", "supersededEvent", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "SupersedingEventQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchActive": {
"description": "Matches active. true to match active, false to match inactive",
"type": "boolean"
},
"matchEnabled": {
"description": "Matches administratively enabled. true to match administratively enabled, false otherwise",
"type": "boolean"
},
"matchDisabled": {
"description": "Matches administratively disabled. true to match administratively disabled, false otherwise",
"type": "boolean"
},
"matchOperational": {
"description": "Matches operational operables. true to match operational, false to match not operational",
"type": "boolean"
},
"matchRuleIds": {
"description": "List of rule Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"ruleQueries": {
"description": "rules.RuleQuery for the cyclic event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchSupersededEventIds": {
"description": "List of supersededEvent Ids for this query to match superseding event that have a related supersededEvent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"supersededEventQueries": {
"description": "SupersededEventQueries to match the supersededEvent. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchSupersedingEventIds": {
"description": "List of supersedingEvent Ids for this query to match superseding event that have a related supersedingEvent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"supersedingEventQueries": {
"description": "SupersedingEventQueries to match the supersedingEvent. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchSupersededDate": {
"description": "Matches supersededDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnySupersededDate": {
"description": "Match supersededDates with any value. true to match SupersedingEvents with any superseded date, false to match ProgramOfferings with no superseded date",
"type": "boolean"
},
"matchSupersededEventPosition": {
"description": "Match SupersedingEvents with supersededEventPositions between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnySupersededEventPosition": {
"description": "Match supersededEventPositions with any value. true to match SupersedingEvents with any superseded event position, false to match ProgramOfferings with no superseded event position",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.SupersedingEvent:7763@base.url",
"uri": "http://base.url/open/campusapi/calendaring/supersedingEvent/calendaring.SupersedingEvent%3A7763%40base.url",
"displayName": "Display Name of this SupersedingEvent",
"description": "The description of this SupersedingEvent",
"genusTypeId": "type.Type:defaultSupersedingEventType@base.url",
"recordTypeIds": [ "type.Type:exampleSupersedingEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"supersededEventId": "calendaring.Event:388@base.url",
"supersededDate": "2021-07-21T23:15:30.000Z",
"supersedingEventId": "calendaring.Event:1871@base.url",
"supersededEventPosition": 19
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a SupersedingEvent form metadata.
Get form metadata for creating a new SupersedingEvent.
get /superseding-events/metadata
Get form metadata for creating a new SupersedingEvent.
Query Parameters
- supersededEventId: required(string)
the superseded-event of this metadatum.
Example:
calendaring.Event%3A2816%40base.url
- supersedingEventId: required(string)
the superseding-event of this metadatum.
Example:
calendaring.Event%3A2992%40base.url
- genusType: (string)
specify a particular supersedingEvent type to create
Example:
type.Type%3AexampleSupersedingEventType%40dxtera.org
- recordType: (array of )
specify support for one or more supersedingEvent record types
Example:
[ "type.Type%3AexampleSupersedingEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this supersedingEvent
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "SupersedingEvent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this superseding event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this superseding event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this superseding event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "SupersedingEvent.SupersedingEvent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this superseding event",
"linked": false
},
"description": {
"description": "The description of this superseding event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "SupersedingEvent.SupersedingEvent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this superseding event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this superseding event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this superseding event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"enabled": {
"description": "Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "SupersedingEvent.SupersedingEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this superseding event is enabled",
"linked": false
},
"disabled": {
"description": "Whether this superseding event is administravely disabled. Administratively disabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "SupersedingEvent.SupersedingEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this superseding event is enabled",
"linked": false
},
"ruleId": {
"description": "An explicit Rule for this superseding event.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "SupersedingEvent.SupersedingEvent:rule@base.url",
"existingValue": "",
"elementLabel": "Rule",
"instructions": "Select a Rule to apply to this superseding event",
"linked": false
},
"supersededDate": {
"description": "The date of an event to replace if a recurring event is offered on that date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.SupersedingEvent:supersededDate@dxtera.org",
"existingValue": "",
"elementLabel": "Superseded Date",
"instructions": "Enter the superseded date of this superseding event.",
"linked": false
},
"supersededEventPosition": {
"description": "The position in the denormalized recurring series of the event to replace.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.SupersedingEvent:supersededEventPosition@dxtera.org",
"existingValue": 42,
"elementLabel": "Superseded Event Position",
"instructions": "Enter the superseded event position of this superseding event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a SupersedingEvent
Get a particular SupersedingEvent given its id.
Update a particular SupersedingEvent given its id.
Delete a particular SupersedingEvent given its id.
get /superseding-events/{supersedingEventId}
Get a particular SupersedingEvent given its id.
URI Parameters
- supersedingEventId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "supersedingEvent", "supersededEvent", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.SupersedingEvent:7763@base.url",
"uri": "http://base.url/open/campusapi/calendaring/supersedingEvent/calendaring.SupersedingEvent%3A7763%40base.url",
"displayName": "Display Name of this SupersedingEvent",
"description": "The description of this SupersedingEvent",
"genusTypeId": "type.Type:defaultSupersedingEventType@base.url",
"recordTypeIds": [ "type.Type:exampleSupersedingEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"supersededEventId": "calendaring.Event:388@base.url",
"supersededDate": "2021-07-21T23:15:30.000Z",
"supersedingEventId": "calendaring.Event:1871@base.url",
"supersededEventPosition": 19
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "SupersedingEvent not found" }
put /superseding-events/{supersedingEventId}
Update a particular SupersedingEvent given its id.
URI Parameters
- supersedingEventId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "SupersedingEvent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this superseding event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this superseding event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this superseding event for display.",
"type": "string"
},
"description": {
"description": "The description of this superseding event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this superseding event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this superseding event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"active": {
"description": "Whether this superseding event is active. Active is true if operational is true and disabled is false, or enabled is true.",
"type": "boolean",
"readOnly": true
},
"enabled": {
"description": "Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"disabled": {
"description": "Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"operational": {
"description": "Whether this superseding event is operational. This superseding event is operational if any of the applied enablers are true.",
"type": "boolean",
"readOnly": true
},
"ruleId": {
"description": "An explicit Rule for this superseding event.",
"type": "string",
"format": "osid-id"
},
"supersededEventId": {
"description": "The superseded event associated with this superseding event.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"supersedingEventId": {
"description": "The superseding event associated with this superseding event.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"supersededDate": {
"description": "The date of an event to replace if a recurring event is offered on that date.",
"type": "string",
"format": "date-time"
},
"supersededEventPosition": {
"description": "The position in the denormalized recurring series of the event to replace.",
"type": "integer"
}
}
}
Example:
{
"displayName": "Display Name of this SupersedingEvent",
"description": "The description of this SupersedingEvent",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"supersededDate": "2021-07-21T23:15:30.000Z",
"supersededEventPosition": 19
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The SupersedingEvent has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "SupersedingEvent not found" }
delete /superseding-events/{supersedingEventId}
Delete a particular SupersedingEvent given its id.
URI Parameters
- supersedingEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The SupersedingEvent has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "SupersedingEvent not found" }
Entity representing a SupersedingEvent form metadata for update
Get form metadata for updating an existing SupersedingEvent.
get /superseding-events/{supersedingEventId}/metadata
Get form metadata for updating an existing SupersedingEvent.
URI Parameters
- supersedingEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "SupersedingEvent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this superseding event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this superseding event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this superseding event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "SupersedingEvent.SupersedingEvent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this superseding event",
"linked": false
},
"description": {
"description": "The description of this superseding event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "SupersedingEvent.SupersedingEvent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this superseding event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this superseding event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this superseding event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"enabled": {
"description": "Whether this superseding event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "SupersedingEvent.SupersedingEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this superseding event is enabled",
"linked": false
},
"disabled": {
"description": "Whether this superseding event is administravely disabled. Administratively disabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "SupersedingEvent.SupersedingEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this superseding event is enabled",
"linked": false
},
"ruleId": {
"description": "An explicit Rule for this superseding event.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "SupersedingEvent.SupersedingEvent:rule@base.url",
"existingValue": "",
"elementLabel": "Rule",
"instructions": "Select a Rule to apply to this superseding event",
"linked": false
},
"supersededDate": {
"description": "The date of an event to replace if a recurring event is offered on that date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.SupersedingEvent:supersededDate@dxtera.org",
"existingValue": "",
"elementLabel": "Superseded Date",
"instructions": "Enter the superseded date of this superseding event.",
"linked": false
},
"supersededEventPosition": {
"description": "The position in the denormalized recurring series of the event to replace.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.SupersedingEvent:supersededEventPosition@dxtera.org",
"existingValue": 42,
"elementLabel": "Superseded Event Position",
"instructions": "Enter the superseded event position of this superseding event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "supersedingEvent not found" }
/offset-events
Collection of OffsetEvents in a system, federation of systems, or in a default Calendar.
Get all OffsetEvents in the system or default Calendar.
Create a new OffsetEvent in the default Calendar.
get /offset-events
Get all OffsetEvents in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "startReferenceEvent", "endReferenceEvent", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleOffsetEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleOffsetEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleOffsetEventType%40campusapi.org
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.OffsetEvent:3426@base.url",
"uri": "http://base.url/open/campusapi/calendaring/offsetEvent/calendaring.OffsetEvent%3A3426%40base.url",
"displayName": "Display Name of this OffsetEvent",
"description": "The description of this OffsetEvent",
"genusTypeId": "type.Type:defaultOffsetEventType@base.url",
"recordTypeIds": [ "type.Type:exampleOffsetEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"fixedStartTime": "2020-10-03T08:00:00.000Z",
"startReferenceEventId": "calendaring.Event:9923@base.url",
"fixedStartOffset": "P3DT3H",
"relativeWeekdayStartOffset": 19,
"relativeStartWeekday": 19,
"fixedDuration": "P3DT3H",
"endReferenceEventId": "calendaring.Event:7073@base.url",
"fixedEndOffset": "P3DT3H",
"relativeWeekdayEndOffset": 19,
"relativeEndWeekday": 19,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:342@base.url",
"sponsorIds": [ "resource.Resource:3693@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /offset-events
Create a new OffsetEvent in the default Calendar.
Query Parameters
- genusType: (string)
specify a particular offsetEvent type to create
Example:
type.Type%3AexampleOffsetEventType%40dxtera.org
- recordType: (array of )
specify support for one or more offsetEvent record types
Example:
[ "type.Type%3AexampleOffsetEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this offsetEvent
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "OffsetEvent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this offset event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this offset event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this offset event for display.",
"type": "string"
},
"description": {
"description": "The description of this offset event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this offset event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this offset event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"active": {
"description": "Whether this offset event is active. Active is true if operational is true and disabled is false, or enabled is true.",
"type": "boolean",
"readOnly": true
},
"enabled": {
"description": "Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"disabled": {
"description": "Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"operational": {
"description": "Whether this offset event is operational. This offset event is operational if any of the applied enablers are true.",
"type": "boolean",
"readOnly": true
},
"ruleId": {
"description": "An explicit Rule for this offset event.",
"type": "string",
"format": "osid-id"
},
"fixedStartTime": {
"description": "The fixed start time for this event.",
"type": "string",
"format": "date-time"
},
"startReferenceEventId": {
"description": "The Event to which the start of this event is offset.",
"type": "string",
"format": "osid-id"
},
"fixedStartOffset": {
"description": "The fixed starting time offset.",
"type": "string",
"format": "duration"
},
"relativeWeekdayStartOffset": {
"description": "The starting offset as the nth weekday from the relative event.",
"type": "integer"
},
"relativeStartWeekday": {
"description": "The starting weekday number.",
"type": "integer",
"minimum": 1
},
"fixedDuration": {
"description": "The duration of the offset event.",
"type": "string",
"format": "duration"
},
"endReferenceEventId": {
"description": "The Event to which the end of this event is offset.",
"type": "string",
"format": "osid-id"
},
"fixedEndOffset": {
"description": "The fixed ending time offset.",
"type": "string",
"format": "duration"
},
"relativeWeekdayEndOffset": {
"description": "The ending offset as the nth weekday from the relative event.",
"type": "integer"
},
"relativeEndWeekday": {
"description": "The ending weekday number.",
"type": "integer",
"minimum": 1
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string"
},
"locationId": {
"description": "The Location.",
"type": "string",
"format": "osid-id"
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this OffsetEvent",
"description": "The description of this OffsetEvent",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"fixedStartTime": "2020-10-03T08:00:00.000Z",
"startReferenceEventId": "calendaring.Event:8296@base.url",
"fixedStartOffset": "P3DT3H",
"relativeWeekdayStartOffset": 19,
"relativeStartWeekday": 19,
"fixedDuration": "P3DT3H",
"endReferenceEventId": "calendaring.Event:6991@base.url",
"fixedEndOffset": "P3DT3H",
"relativeWeekdayEndOffset": 19,
"relativeEndWeekday": 19,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:8925@base.url",
"sponsorIds": [ "resource.Resource:3615@base.url", "..." ]
}
Query the collection of OffsetEvents in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a OffsetEventQuery object.
post /offset-events/offset-event-query
Submit a query using a OffsetEventQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "startReferenceEvent", "endReferenceEvent", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "OffsetEventQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchActive": {
"description": "Matches active. true to match active, false to match inactive",
"type": "boolean"
},
"matchEnabled": {
"description": "Matches administratively enabled. true to match administratively enabled, false otherwise",
"type": "boolean"
},
"matchDisabled": {
"description": "Matches administratively disabled. true to match administratively disabled, false otherwise",
"type": "boolean"
},
"matchOperational": {
"description": "Matches operational operables. true to match operational, false to match not operational",
"type": "boolean"
},
"matchRuleIds": {
"description": "List of rule Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"ruleQueries": {
"description": "rules.RuleQuery for the cyclic event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchFixedStartTime": {
"description": "Matches fixedStartTimes between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFixedStartTime": {
"description": "Match fixedStartTimes with any value. true to match OffsetEvents with any fixed start time, false to match ProgramOfferings with no fixed start time",
"type": "boolean"
},
"matchStartReferenceEventIds": {
"description": "List of Event Ids for this query to match startReferenceEvent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"startReferenceEventId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"startReferenceEventQueries": {
"description": "calendaring.EventQueries to match the Start Reference Event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyStartReferenceEvent": {
"description": "Match start reference event with any value. true to match OffsetEvents with any start reference event, false to match OffsetEvents with no start reference event",
"type": "boolean"
},
"matchFixedStartOffset": {
"description": "Matches fixedStartOffsets in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFixedStartOffset": {
"description": "Match fixedStartOffsets with any value. true to match OffsetEvents with any fixed start offset, false to match ProgramOfferings with no fixed start offset",
"type": "boolean"
},
"matchRelativeWeekdayStartOffset": {
"description": "Match OffsetEvents with relativeWeekdayStartOffsets between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRelativeWeekdayStartOffset": {
"description": "Match relativeWeekdayStartOffsets with any value. true to match OffsetEvents with any relative weekday start offset, false to match ProgramOfferings with no relative weekday start offset",
"type": "boolean"
},
"matchRelativeStartWeekday": {
"description": "Match OffsetEvents with relativeStartWeekdays between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRelativeStartWeekday": {
"description": "Match relativeStartWeekdays with any value. true to match OffsetEvents with any relative start weekday, false to match ProgramOfferings with no relative start weekday",
"type": "boolean"
},
"matchFixedDuration": {
"description": "Matches fixedDurations in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFixedDuration": {
"description": "Match fixedDurations with any value. true to match OffsetEvents with any fixed duration, false to match ProgramOfferings with no fixed duration",
"type": "boolean"
},
"matchEndReferenceEventIds": {
"description": "List of Event Ids for this query to match endReferenceEvent.",
"type": "array",
"items": {
"type": "object",
"properties": {
"endReferenceEventId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReferenceEventQueries": {
"description": "calendaring.EventQueries to match the End Reference Event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReferenceEvent": {
"description": "Match end reference event with any value. true to match OffsetEvents with any end reference event, false to match OffsetEvents with no end reference event",
"type": "boolean"
},
"matchFixedEndOffset": {
"description": "Matches fixedEndOffsets in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFixedEndOffset": {
"description": "Match fixedEndOffsets with any value. true to match OffsetEvents with any fixed end offset, false to match ProgramOfferings with no fixed end offset",
"type": "boolean"
},
"matchRelativeWeekdayEndOffset": {
"description": "Match OffsetEvents with relativeWeekdayEndOffsets between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRelativeWeekdayEndOffset": {
"description": "Match relativeWeekdayEndOffsets with any value. true to match OffsetEvents with any relative weekday end offset, false to match ProgramOfferings with no relative weekday end offset",
"type": "boolean"
},
"matchRelativeEndWeekday": {
"description": "Match OffsetEvents with relativeEndWeekdays between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRelativeEndWeekday": {
"description": "Match relativeEndWeekdays with any value. true to match OffsetEvents with any relative end weekday, false to match ProgramOfferings with no relative end weekday",
"type": "boolean"
},
"matchLocationDescription": {
"description": "List of LocationDescription strings to match. Boolean OR performed among multiple locationDescriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationDescriptions": {
"description": "locationDescriptions to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyLocationDescription": {
"description": "Match locationDescriptions with any value. true to match OffsetEvents with any location description, false to match ProgramOfferings with no location description",
"type": "boolean"
},
"matchLocationIds": {
"description": "List of Location Ids for this query to match location.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"locationQueries": {
"description": "mapping.LocationQueries to match the Location. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLocation": {
"description": "Match location with any value. true to match OffsetEvents with any location, false to match OffsetEvents with no location",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsor.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsor. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsor with any value. true to match OffsetEvents with any sponsor, false to match OffsetEvents with no sponsor",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.OffsetEvent:3426@base.url",
"uri": "http://base.url/open/campusapi/calendaring/offsetEvent/calendaring.OffsetEvent%3A3426%40base.url",
"displayName": "Display Name of this OffsetEvent",
"description": "The description of this OffsetEvent",
"genusTypeId": "type.Type:defaultOffsetEventType@base.url",
"recordTypeIds": [ "type.Type:exampleOffsetEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"fixedStartTime": "2020-10-03T08:00:00.000Z",
"startReferenceEventId": "calendaring.Event:9923@base.url",
"fixedStartOffset": "P3DT3H",
"relativeWeekdayStartOffset": 19,
"relativeStartWeekday": 19,
"fixedDuration": "P3DT3H",
"endReferenceEventId": "calendaring.Event:7073@base.url",
"fixedEndOffset": "P3DT3H",
"relativeWeekdayEndOffset": 19,
"relativeEndWeekday": 19,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:342@base.url",
"sponsorIds": [ "resource.Resource:3693@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a OffsetEvent form metadata.
Get form metadata for creating a new OffsetEvent.
get /offset-events/metadata
Get form metadata for creating a new OffsetEvent.
Query Parameters
- genusType: (string)
specify a particular offsetEvent type to create
Example:
type.Type%3AexampleOffsetEventType%40dxtera.org
- recordType: (array of )
specify support for one or more offsetEvent record types
Example:
[ "type.Type%3AexampleOffsetEventRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this offsetEvent
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "OffsetEvent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this offset event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this offset event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this offset event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "OffsetEvent.OffsetEvent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this offset event",
"linked": false
},
"description": {
"description": "The description of this offset event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "OffsetEvent.OffsetEvent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this offset event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this offset event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this offset event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"enabled": {
"description": "Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "OffsetEvent.OffsetEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this offset event is enabled",
"linked": false
},
"disabled": {
"description": "Whether this offset event is administravely disabled. Administratively disabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "OffsetEvent.OffsetEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this offset event is enabled",
"linked": false
},
"ruleId": {
"description": "An explicit Rule for this offset event.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "OffsetEvent.OffsetEvent:rule@base.url",
"existingValue": "",
"elementLabel": "Rule",
"instructions": "Select a Rule to apply to this offset event",
"linked": false
},
"fixedStartTime": {
"description": "The fixed start time for this event.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedStartTime@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Start Time",
"instructions": "Enter the fixed start time of this offset event.",
"linked": false
},
"startReferenceEventId": {
"description": "The Event to which the start of this event is offset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:startReferenceEvent@dxtera.org",
"existingValue": null,
"elementLabel": "Start Reference Event",
"instructions": "Enter the Id of the start reference event for this offset event.",
"linked": false
},
"fixedStartOffset": {
"description": "The fixed starting time offset.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedStartOffset@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Start Offset",
"instructions": "Enter the fixed start offset of this offset event.",
"linked": false
},
"relativeWeekdayStartOffset": {
"description": "The starting offset as the nth weekday from the relative event.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeWeekdayStartOffset@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative Weekday Start Offset",
"instructions": "Enter the relative weekday start offset of this offset event.",
"linked": false
},
"relativeStartWeekday": {
"description": "The starting weekday number.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeStartWeekday@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative Start Weekday",
"instructions": "Enter the relative start weekday of this offset event.",
"linked": false
},
"fixedDuration": {
"description": "The duration of the offset event.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedDuration@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Duration",
"instructions": "Enter the fixed duration of this offset event.",
"linked": false
},
"endReferenceEventId": {
"description": "The Event to which the end of this event is offset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:endReferenceEvent@dxtera.org",
"existingValue": null,
"elementLabel": "End Reference Event",
"instructions": "Enter the Id of the end reference event for this offset event.",
"linked": false
},
"fixedEndOffset": {
"description": "The fixed ending time offset.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedEndOffset@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed End Offset",
"instructions": "Enter the fixed end offset of this offset event.",
"linked": false
},
"relativeWeekdayEndOffset": {
"description": "The ending offset as the nth weekday from the relative event.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeWeekdayEndOffset@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative Weekday End Offset",
"instructions": "Enter the relative weekday end offset of this offset event.",
"linked": false
},
"relativeEndWeekday": {
"description": "The ending weekday number.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeEndWeekday@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative End Weekday",
"instructions": "Enter the relative end weekday of this offset event.",
"linked": false
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:locationDescription@dxtera.org",
"existingValue": "The existing location description",
"elementLabel": "Location Description",
"instructions": "Enter a location description for this offset event.",
"linked": false
},
"locationId": {
"description": "The Location.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:location@dxtera.org",
"existingValue": null,
"elementLabel": "Location",
"instructions": "Enter the Id of the location for this offset event.",
"linked": false
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "calendaring.OffsetEvent:sponsor@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsor",
"instructions": "Enter Ids for sponsor of this offset event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a OffsetEvent
Get a particular OffsetEvent given its id.
Update a particular OffsetEvent given its id.
Delete a particular OffsetEvent given its id.
get /offset-events/{offsetEventId}
Get a particular OffsetEvent given its id.
URI Parameters
- offsetEventId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "startReferenceEvent", "endReferenceEvent", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.OffsetEvent:3426@base.url",
"uri": "http://base.url/open/campusapi/calendaring/offsetEvent/calendaring.OffsetEvent%3A3426%40base.url",
"displayName": "Display Name of this OffsetEvent",
"description": "The description of this OffsetEvent",
"genusTypeId": "type.Type:defaultOffsetEventType@base.url",
"recordTypeIds": [ "type.Type:exampleOffsetEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"fixedStartTime": "2020-10-03T08:00:00.000Z",
"startReferenceEventId": "calendaring.Event:9923@base.url",
"fixedStartOffset": "P3DT3H",
"relativeWeekdayStartOffset": 19,
"relativeStartWeekday": 19,
"fixedDuration": "P3DT3H",
"endReferenceEventId": "calendaring.Event:7073@base.url",
"fixedEndOffset": "P3DT3H",
"relativeWeekdayEndOffset": 19,
"relativeEndWeekday": 19,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:342@base.url",
"sponsorIds": [ "resource.Resource:3693@base.url", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "OffsetEvent not found" }
put /offset-events/{offsetEventId}
Update a particular OffsetEvent given its id.
URI Parameters
- offsetEventId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "OffsetEvent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this offset event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this offset event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this offset event for display.",
"type": "string"
},
"description": {
"description": "The description of this offset event.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this offset event. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this offset event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"active": {
"description": "Whether this offset event is active. Active is true if operational is true and disabled is false, or enabled is true.",
"type": "boolean",
"readOnly": true
},
"enabled": {
"description": "Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"disabled": {
"description": "Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean"
},
"operational": {
"description": "Whether this offset event is operational. This offset event is operational if any of the applied enablers are true.",
"type": "boolean",
"readOnly": true
},
"ruleId": {
"description": "An explicit Rule for this offset event.",
"type": "string",
"format": "osid-id"
},
"fixedStartTime": {
"description": "The fixed start time for this event.",
"type": "string",
"format": "date-time"
},
"startReferenceEventId": {
"description": "The Event to which the start of this event is offset.",
"type": "string",
"format": "osid-id"
},
"fixedStartOffset": {
"description": "The fixed starting time offset.",
"type": "string",
"format": "duration"
},
"relativeWeekdayStartOffset": {
"description": "The starting offset as the nth weekday from the relative event.",
"type": "integer"
},
"relativeStartWeekday": {
"description": "The starting weekday number.",
"type": "integer",
"minimum": 1
},
"fixedDuration": {
"description": "The duration of the offset event.",
"type": "string",
"format": "duration"
},
"endReferenceEventId": {
"description": "The Event to which the end of this event is offset.",
"type": "string",
"format": "osid-id"
},
"fixedEndOffset": {
"description": "The fixed ending time offset.",
"type": "string",
"format": "duration"
},
"relativeWeekdayEndOffset": {
"description": "The ending offset as the nth weekday from the relative event.",
"type": "integer"
},
"relativeEndWeekday": {
"description": "The ending weekday number.",
"type": "integer",
"minimum": 1
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string"
},
"locationId": {
"description": "The Location.",
"type": "string",
"format": "osid-id"
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this OffsetEvent",
"description": "The description of this OffsetEvent",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"fixedStartTime": "2020-10-03T08:00:00.000Z",
"startReferenceEventId": "calendaring.Event:8296@base.url",
"fixedStartOffset": "P3DT3H",
"relativeWeekdayStartOffset": 19,
"relativeStartWeekday": 19,
"fixedDuration": "P3DT3H",
"endReferenceEventId": "calendaring.Event:6991@base.url",
"fixedEndOffset": "P3DT3H",
"relativeWeekdayEndOffset": 19,
"relativeEndWeekday": 19,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:8925@base.url",
"sponsorIds": [ "resource.Resource:3615@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The OffsetEvent has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "OffsetEvent not found" }
delete /offset-events/{offsetEventId}
Delete a particular OffsetEvent given its id.
URI Parameters
- offsetEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The OffsetEvent has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "OffsetEvent not found" }
Entity representing a OffsetEvent form metadata for update
Get form metadata for updating an existing OffsetEvent.
get /offset-events/{offsetEventId}/metadata
Get form metadata for updating an existing OffsetEvent.
URI Parameters
- offsetEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "OffsetEvent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this offset event, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this offset event, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this offset event for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "OffsetEvent.OffsetEvent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this offset event",
"linked": false
},
"description": {
"description": "The description of this offset event.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "OffsetEvent.OffsetEvent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this offset event",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this offset event. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this offset event. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"enabled": {
"description": "Whether this offset event is administravely enabled. Administratively enabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "OffsetEvent.OffsetEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this offset event is enabled",
"linked": false
},
"disabled": {
"description": "Whether this offset event is administravely disabled. Administratively disabling overrides any applied enabler.",
"type": "boolean",
"read-only": false,
"elementId": "OffsetEvent.OffsetEvent:enabled@base.url",
"existingValue": false,
"elementLabel": "Enabled",
"instructions": "Enter whether this offset event is enabled",
"linked": false
},
"ruleId": {
"description": "An explicit Rule for this offset event.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "OffsetEvent.OffsetEvent:rule@base.url",
"existingValue": "",
"elementLabel": "Rule",
"instructions": "Select a Rule to apply to this offset event",
"linked": false
},
"fixedStartTime": {
"description": "The fixed start time for this event.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedStartTime@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Start Time",
"instructions": "Enter the fixed start time of this offset event.",
"linked": false
},
"startReferenceEventId": {
"description": "The Event to which the start of this event is offset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:startReferenceEvent@dxtera.org",
"existingValue": null,
"elementLabel": "Start Reference Event",
"instructions": "Enter the Id of the start reference event for this offset event.",
"linked": false
},
"fixedStartOffset": {
"description": "The fixed starting time offset.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedStartOffset@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Start Offset",
"instructions": "Enter the fixed start offset of this offset event.",
"linked": false
},
"relativeWeekdayStartOffset": {
"description": "The starting offset as the nth weekday from the relative event.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeWeekdayStartOffset@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative Weekday Start Offset",
"instructions": "Enter the relative weekday start offset of this offset event.",
"linked": false
},
"relativeStartWeekday": {
"description": "The starting weekday number.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeStartWeekday@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative Start Weekday",
"instructions": "Enter the relative start weekday of this offset event.",
"linked": false
},
"fixedDuration": {
"description": "The duration of the offset event.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedDuration@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Duration",
"instructions": "Enter the fixed duration of this offset event.",
"linked": false
},
"endReferenceEventId": {
"description": "The Event to which the end of this event is offset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:endReferenceEvent@dxtera.org",
"existingValue": null,
"elementLabel": "End Reference Event",
"instructions": "Enter the Id of the end reference event for this offset event.",
"linked": false
},
"fixedEndOffset": {
"description": "The fixed ending time offset.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:fixedEndOffset@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed End Offset",
"instructions": "Enter the fixed end offset of this offset event.",
"linked": false
},
"relativeWeekdayEndOffset": {
"description": "The ending offset as the nth weekday from the relative event.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeWeekdayEndOffset@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative Weekday End Offset",
"instructions": "Enter the relative weekday end offset of this offset event.",
"linked": false
},
"relativeEndWeekday": {
"description": "The ending weekday number.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.OffsetEvent:relativeEndWeekday@dxtera.org",
"existingValue": 42,
"elementLabel": "Relative End Weekday",
"instructions": "Enter the relative end weekday of this offset event.",
"linked": false
},
"locationDescription": {
"description": "A descriptive location.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:locationDescription@dxtera.org",
"existingValue": "The existing location description",
"elementLabel": "Location Description",
"instructions": "Enter a location description for this offset event.",
"linked": false
},
"locationId": {
"description": "The Location.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.OffsetEvent:location@dxtera.org",
"existingValue": null,
"elementLabel": "Location",
"instructions": "Enter the Id of the location for this offset event.",
"linked": false
},
"sponsorIds": {
"description": "The Sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "calendaring.OffsetEvent:sponsor@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsor",
"instructions": "Enter Ids for sponsor of this offset event.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "offsetEvent not found" }
/schedules
Collection of Schedules in a system, federation of systems, or in a default Calendar.
Get all Schedules in the system or default Calendar.
Create a new Schedule in the default Calendar.
get /schedules
Get all Schedules in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "scheduleSlot", "timePeriod", "location", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleScheduleType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleScheduleType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleScheduleType%40campusapi.org
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Schedule:6471@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule/calendaring.Schedule%3A6471%40base.url",
"displayName": "Display Name of this Schedule",
"description": "The description of this Schedule",
"genusTypeId": "type.Type:defaultScheduleType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleRecordType@campusapi.org", "..."],
"scheduleSlotId": "calendaring.ScheduleSlot:9435@base.url",
"timePeriodId": "calendaring.TimePeriod:5264@base.url",
"scheduleStart": "2020-10-03T08:00:00.000Z",
"scheduleEnd": "2020-12-18T17:00:00.000Z",
"limit": [ "..cardinal[]..", "..." ],
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:6985@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /schedules
Create a new Schedule in the default Calendar.
Query Parameters
- genusType: (string)
specify a particular schedule type to create
Example:
type.Type%3AexampleScheduleType%40dxtera.org
- recordType: (array of )
specify support for one or more schedule record types
Example:
[ "type.Type%3AexampleScheduleRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this schedule
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Schedule",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this schedule, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule for display.",
"type": "string"
},
"description": {
"description": "The description of this schedule.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"scheduleSlotId": {
"description": "The schedule slot included inside this one.",
"type": "string",
"format": "osid-id"
},
"timePeriodId": {
"description": "The TimePeriod for this recurring event.",
"type": "string",
"format": "osid-id"
},
"scheduleStart": {
"description": "The start date of this schedule.",
"type": "string",
"format": "date-time"
},
"scheduleEnd": {
"description": "The end date of this schedule.",
"type": "string",
"format": "date-time"
},
"limit": {
"description": "The limit of the number of occurences of this schedule.",
"type": "array",
"minimum": 1
},
"locationId": {
"description": "The Location.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Schedule",
"description": "The description of this Schedule",
"scheduleSlotId": "calendaring.ScheduleSlot:5020@base.url",
"timePeriodId": "calendaring.TimePeriod:1159@base.url",
"scheduleStart": "2020-10-03T08:00:00.000Z",
"scheduleEnd": "2020-12-18T17:00:00.000Z",
"limit": [ "..cardinal[]..", "..." ],
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:1253@base.url"
}
Query the collection of Schedules in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a ScheduleQuery object.
post /schedules/schedule-query
Submit a query using a ScheduleQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "scheduleSlot", "timePeriod", "location", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ScheduleQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchScheduleSlotIds": {
"description": "List of ScheduleSlot Ids for this query to match scheduleSlot.",
"type": "array",
"items": {
"type": "object",
"properties": {
"scheduleSlotId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"scheduleSlotQueries": {
"description": "calendaring.ScheduleSlotQueries to match the Schedule Slot. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyScheduleSlot": {
"description": "Match schedule slot with any value. true to match Schedules with any schedule slot, false to match Schedules with no schedule slot",
"type": "boolean"
},
"matchTimePeriodIds": {
"description": "List of TimePeriod Ids for this query to match timePeriod.",
"type": "array",
"items": {
"type": "object",
"properties": {
"timePeriodId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"timePeriodQueries": {
"description": "calendaring.TimePeriodQueries to match the Time Period. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyTimePeriod": {
"description": "Match time period with any value. true to match Schedules with any time period, false to match Schedules with no time period",
"type": "boolean"
},
"matchScheduleStart": {
"description": "Matches scheduleStarts between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyScheduleStart": {
"description": "Match scheduleStarts with any value. true to match Schedules with any schedule start, false to match ProgramOfferings with no schedule start",
"type": "boolean"
},
"matchScheduleEnd": {
"description": "Matches scheduleEnds between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyScheduleEnd": {
"description": "Match scheduleEnds with any value. true to match Schedules with any schedule end, false to match ProgramOfferings with no schedule end",
"type": "boolean"
},
"matchLimit": {
"description": "Match Schedules with limits between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyLimit": {
"description": "Match limits with any value. true to match Schedules with any limit, false to match ProgramOfferings with no limit",
"type": "boolean"
},
"matchLocationIds": {
"description": "List of Location Ids for this query to match location.",
"type": "array",
"items": {
"type": "object",
"properties": {
"locationId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"locationQueries": {
"description": "mapping.LocationQueries to match the Location. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLocation": {
"description": "Match location with any value. true to match Schedules with any location, false to match Schedules with no location",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Schedule:6471@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule/calendaring.Schedule%3A6471%40base.url",
"displayName": "Display Name of this Schedule",
"description": "The description of this Schedule",
"genusTypeId": "type.Type:defaultScheduleType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleRecordType@campusapi.org", "..."],
"scheduleSlotId": "calendaring.ScheduleSlot:9435@base.url",
"timePeriodId": "calendaring.TimePeriod:5264@base.url",
"scheduleStart": "2020-10-03T08:00:00.000Z",
"scheduleEnd": "2020-12-18T17:00:00.000Z",
"limit": [ "..cardinal[]..", "..." ],
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:6985@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Schedule form metadata.
Get form metadata for creating a new Schedule.
get /schedules/metadata
Get form metadata for creating a new Schedule.
Query Parameters
- genusType: (string)
specify a particular schedule type to create
Example:
type.Type%3AexampleScheduleType%40dxtera.org
- recordType: (array of )
specify support for one or more schedule record types
Example:
[ "type.Type%3AexampleScheduleRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this schedule
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Schedule",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this schedule, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Schedule.Schedule:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this schedule",
"linked": false
},
"description": {
"description": "The description of this schedule.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Schedule.Schedule:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this schedule",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"scheduleSlotId": {
"description": "The schedule slot included inside this one.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:scheduleSlot@dxtera.org",
"existingValue": null,
"elementLabel": "Schedule Slot",
"instructions": "Enter the Id of the schedule slot for this schedule.",
"linked": false
},
"timePeriodId": {
"description": "The TimePeriod for this recurring event.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:timePeriod@dxtera.org",
"existingValue": null,
"elementLabel": "Time Period",
"instructions": "Enter the Id of the time period for this schedule.",
"linked": false
},
"scheduleStart": {
"description": "The start date of this schedule.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:scheduleStart@dxtera.org",
"existingValue": "",
"elementLabel": "Schedule Start",
"instructions": "Enter the schedule start of this schedule.",
"linked": false
},
"scheduleEnd": {
"description": "The end date of this schedule.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:scheduleEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Schedule End",
"instructions": "Enter the schedule end of this schedule.",
"linked": false
},
"limit": {
"description": "The limit of the number of occurences of this schedule.",
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"enum": []
},
"default": [],
"elementId": "calendaring.Schedule:limit@dxtera.org",
"existingValue": [42, 4, 7],
"elementLabel": "Limit",
"instructions": "Enter the limit of this schedule.",
"linked": false
},
"locationId": {
"description": "The Location.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:location@dxtera.org",
"existingValue": null,
"elementLabel": "Location",
"instructions": "Enter the Id of the location for this schedule.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Schedule
Get a particular Schedule given its id.
Update a particular Schedule given its id.
Delete a particular Schedule given its id.
get /schedules/{scheduleId}
Get a particular Schedule given its id.
URI Parameters
- scheduleId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "scheduleSlot", "timePeriod", "location", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.Schedule:6471@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule/calendaring.Schedule%3A6471%40base.url",
"displayName": "Display Name of this Schedule",
"description": "The description of this Schedule",
"genusTypeId": "type.Type:defaultScheduleType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleRecordType@campusapi.org", "..."],
"scheduleSlotId": "calendaring.ScheduleSlot:9435@base.url",
"timePeriodId": "calendaring.TimePeriod:5264@base.url",
"scheduleStart": "2020-10-03T08:00:00.000Z",
"scheduleEnd": "2020-12-18T17:00:00.000Z",
"limit": [ "..cardinal[]..", "..." ],
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:6985@base.url"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Schedule not found" }
put /schedules/{scheduleId}
Update a particular Schedule given its id.
URI Parameters
- scheduleId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Schedule",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this schedule, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule for display.",
"type": "string"
},
"description": {
"description": "The description of this schedule.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"scheduleSlotId": {
"description": "The schedule slot included inside this one.",
"type": "string",
"format": "osid-id"
},
"timePeriodId": {
"description": "The TimePeriod for this recurring event.",
"type": "string",
"format": "osid-id"
},
"scheduleStart": {
"description": "The start date of this schedule.",
"type": "string",
"format": "date-time"
},
"scheduleEnd": {
"description": "The end date of this schedule.",
"type": "string",
"format": "date-time"
},
"limit": {
"description": "The limit of the number of occurences of this schedule.",
"type": "array",
"minimum": 1
},
"locationId": {
"description": "The Location.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Schedule",
"description": "The description of this Schedule",
"scheduleSlotId": "calendaring.ScheduleSlot:5020@base.url",
"timePeriodId": "calendaring.TimePeriod:1159@base.url",
"scheduleStart": "2020-10-03T08:00:00.000Z",
"scheduleEnd": "2020-12-18T17:00:00.000Z",
"limit": [ "..cardinal[]..", "..." ],
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:1253@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Schedule has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Schedule not found" }
delete /schedules/{scheduleId}
Delete a particular Schedule given its id.
URI Parameters
- scheduleId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Schedule has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Schedule not found" }
Entity representing a Schedule form metadata for update
Get form metadata for updating an existing Schedule.
get /schedules/{scheduleId}/metadata
Get form metadata for updating an existing Schedule.
URI Parameters
- scheduleId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Schedule",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this schedule, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Schedule.Schedule:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this schedule",
"linked": false
},
"description": {
"description": "The description of this schedule.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Schedule.Schedule:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this schedule",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"scheduleSlotId": {
"description": "The schedule slot included inside this one.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:scheduleSlot@dxtera.org",
"existingValue": null,
"elementLabel": "Schedule Slot",
"instructions": "Enter the Id of the schedule slot for this schedule.",
"linked": false
},
"timePeriodId": {
"description": "The TimePeriod for this recurring event.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:timePeriod@dxtera.org",
"existingValue": null,
"elementLabel": "Time Period",
"instructions": "Enter the Id of the time period for this schedule.",
"linked": false
},
"scheduleStart": {
"description": "The start date of this schedule.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:scheduleStart@dxtera.org",
"existingValue": "",
"elementLabel": "Schedule Start",
"instructions": "Enter the schedule start of this schedule.",
"linked": false
},
"scheduleEnd": {
"description": "The end date of this schedule.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:scheduleEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Schedule End",
"instructions": "Enter the schedule end of this schedule.",
"linked": false
},
"limit": {
"description": "The limit of the number of occurences of this schedule.",
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"enum": []
},
"default": [],
"elementId": "calendaring.Schedule:limit@dxtera.org",
"existingValue": [42, 4, 7],
"elementLabel": "Limit",
"instructions": "Enter the limit of this schedule.",
"linked": false
},
"locationId": {
"description": "The Location.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.Schedule:location@dxtera.org",
"existingValue": null,
"elementLabel": "Location",
"instructions": "Enter the Id of the location for this schedule.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "schedule not found" }
/schedule-slots
Collection of ScheduleSlots in a system, federation of systems, or in a default Calendar.
Get all ScheduleSlots in the system or default Calendar.
Create a new ScheduleSlot in the default Calendar.
get /schedule-slots
Get all ScheduleSlots in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleScheduleSlotType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleScheduleSlotType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleScheduleSlotType%40campusapi.org
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.ScheduleSlot:9256@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule_slot/calendaring.ScheduleSlot%3A9256%40base.url",
"displayName": "Display Name of this ScheduleSlot",
"description": "The description of this ScheduleSlot",
"genusTypeId": "type.Type:defaultScheduleSlotType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleSlotRecordType@campusapi.org", "..."],
"sequestered": false,
"weekdays": [ "..cardinal[]..", "..." ],
"weeklyInterval": 19,
"weekOfMonth": 19,
"weekdayTime": "..Time..",
"fixedInterval": "P3DT3H",
"duration": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /schedule-slots
Create a new ScheduleSlot in the default Calendar.
Query Parameters
- genusType: (string)
specify a particular scheduleSlot type to create
Example:
type.Type%3AexampleScheduleSlotType%40dxtera.org
- recordType: (array of )
specify support for one or more scheduleSlot record types
Example:
[ "type.Type%3AexampleScheduleSlotRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this scheduleSlot
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ScheduleSlot",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this schedule slot, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule slot, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule slot for display.",
"type": "string"
},
"description": {
"description": "The description of this schedule slot.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule slot. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule slot. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this schedule slot is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"weekday": {
"description": "-- could someone please write a description for this --",
"type": "array",
"minimum": 1
},
"weeklyInterval": {
"description": "The number of weeks of the interval.",
"type": "integer"
},
"weekOfMonth": {
"description": "The week of the month for the interval.",
"type": "integer"
},
"weekdayTime": {
"description": "The time of this recurring schedule.",
"type": "string",
"format": "time"
},
"fixedInterval": {
"description": "The repeating interval.",
"type": "string",
"format": "duration"
},
"duration": {
"description": "The duration of the schedule slot.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this ScheduleSlot",
"description": "The description of this ScheduleSlot",
"sequestered": false,
"weekdays": [ "..cardinal[]..", "..." ],
"weeklyInterval": 19,
"weekOfMonth": 19,
"weekdayTime": "..Time..",
"fixedInterval": "P3DT3H",
"duration": "P3DT3H"
}
Query the collection of ScheduleSlots in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a ScheduleSlotQuery object.
post /schedule-slots/schedule-slot-query
Submit a query using a ScheduleSlotQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ScheduleSlotQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchSequestered": {
"description": "Match containables that are sequestered. true to match any sequestered containables, false to match non-sequestered containables",
"type": "boolean"
},
"matchWeekday": {
"description": "Match ScheduleSlots with weekdays between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeekday": {
"description": "Match weekdays with any value. true to match ScheduleSlots with any weekday, false to match ProgramOfferings with no weekday",
"type": "boolean"
},
"matchWeeklyInterval": {
"description": "Match ScheduleSlots with weeklyIntervals between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyInterval": {
"description": "Match weeklyIntervals with any value. true to match ScheduleSlots with any weekly interval, false to match ProgramOfferings with no weekly interval",
"type": "boolean"
},
"matchWeekOfMonth": {
"description": "Match ScheduleSlots with weekOfMonths between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeekOfMonth": {
"description": "Match weekOfMonths with any value. true to match ScheduleSlots with any week of month, false to match ProgramOfferings with no week of month",
"type": "boolean"
},
"matchWeekdayTime": {
"description": "Matches weekdayTimes between the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "time"
},
"to": {
"description": "end range",
"type": "string",
"format": "time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeekdayTime": {
"description": "Match weekdayTimes with any value. true to match ScheduleSlots with any weekday time, false to match ProgramOfferings with no weekday time",
"type": "boolean"
},
"matchFixedInterval": {
"description": "Matches fixedIntervals in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFixedInterval": {
"description": "Match fixedIntervals with any value. true to match ScheduleSlots with any fixed interval, false to match ProgramOfferings with no fixed interval",
"type": "boolean"
},
"matchDuration": {
"description": "Matches durations in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDuration": {
"description": "Match durations with any value. true to match ScheduleSlots with any duration, false to match ProgramOfferings with no duration",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.ScheduleSlot:9256@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule_slot/calendaring.ScheduleSlot%3A9256%40base.url",
"displayName": "Display Name of this ScheduleSlot",
"description": "The description of this ScheduleSlot",
"genusTypeId": "type.Type:defaultScheduleSlotType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleSlotRecordType@campusapi.org", "..."],
"sequestered": false,
"weekdays": [ "..cardinal[]..", "..." ],
"weeklyInterval": 19,
"weekOfMonth": 19,
"weekdayTime": "..Time..",
"fixedInterval": "P3DT3H",
"duration": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a ScheduleSlot form metadata.
Get form metadata for creating a new ScheduleSlot.
get /schedule-slots/metadata
Get form metadata for creating a new ScheduleSlot.
Query Parameters
- genusType: (string)
specify a particular scheduleSlot type to create
Example:
type.Type%3AexampleScheduleSlotType%40dxtera.org
- recordType: (array of )
specify support for one or more scheduleSlot record types
Example:
[ "type.Type%3AexampleScheduleSlotRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this scheduleSlot
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ScheduleSlot",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this schedule slot, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule slot, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule slot for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ScheduleSlot.ScheduleSlot:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this schedule slot",
"linked": false
},
"description": {
"description": "The description of this schedule slot.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ScheduleSlot.ScheduleSlot:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this schedule slot",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule slot. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule slot. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this schedule slot is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "ScheduleSlot.ScheduleSlot:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this schedule slot is sequestered",
"linked": false
},
"weekday": {
"description": "-- could someone please write a description for this --",
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"enum": []
},
"default": [],
"elementId": "calendaring.ScheduleSlot:weekday@dxtera.org",
"existingValue": [42, 4, 7],
"elementLabel": "Weekday",
"instructions": "Enter the weekday of this schedule slot.",
"linked": false
},
"weeklyInterval": {
"description": "The number of weeks of the interval.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.ScheduleSlot:weeklyInterval@dxtera.org",
"existingValue": 42,
"elementLabel": "Weekly Interval",
"instructions": "Enter the weekly interval of this schedule slot.",
"linked": false
},
"weekOfMonth": {
"description": "The week of the month for the interval.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.ScheduleSlot:weekOfMonth@dxtera.org",
"existingValue": 42,
"elementLabel": "Week Of Month",
"instructions": "Enter the week of month of this schedule slot.",
"linked": false
},
"weekdayTime": {
"description": "The time of this recurring schedule.",
"type": "string",
"format": "time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.ScheduleSlot:weekdayTime@dxtera.org",
"existingValue": "",
"elementLabel": "Weekday Time",
"instructions": "Enter the weekday time of this schedule slot.",
"linked": false
},
"fixedInterval": {
"description": "The repeating interval.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.ScheduleSlot:fixedInterval@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Interval",
"instructions": "Enter the fixed interval of this schedule slot.",
"linked": false
},
"duration": {
"description": "The duration of the schedule slot.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.ScheduleSlot:duration@dxtera.org",
"existingValue": "",
"elementLabel": "Duration",
"instructions": "Enter the duration of this schedule slot.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a ScheduleSlot
Get a particular ScheduleSlot given its id.
Update a particular ScheduleSlot given its id.
Delete a particular ScheduleSlot given its id.
get /schedule-slots/{scheduleSlotId}
Get a particular ScheduleSlot given its id.
URI Parameters
- scheduleSlotId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.ScheduleSlot:9256@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule_slot/calendaring.ScheduleSlot%3A9256%40base.url",
"displayName": "Display Name of this ScheduleSlot",
"description": "The description of this ScheduleSlot",
"genusTypeId": "type.Type:defaultScheduleSlotType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleSlotRecordType@campusapi.org", "..."],
"sequestered": false,
"weekdays": [ "..cardinal[]..", "..." ],
"weeklyInterval": 19,
"weekOfMonth": 19,
"weekdayTime": "..Time..",
"fixedInterval": "P3DT3H",
"duration": "P3DT3H"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "ScheduleSlot not found" }
put /schedule-slots/{scheduleSlotId}
Update a particular ScheduleSlot given its id.
URI Parameters
- scheduleSlotId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ScheduleSlot",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this schedule slot, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule slot, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule slot for display.",
"type": "string"
},
"description": {
"description": "The description of this schedule slot.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule slot. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule slot. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this schedule slot is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"weekday": {
"description": "-- could someone please write a description for this --",
"type": "array",
"minimum": 1
},
"weeklyInterval": {
"description": "The number of weeks of the interval.",
"type": "integer"
},
"weekOfMonth": {
"description": "The week of the month for the interval.",
"type": "integer"
},
"weekdayTime": {
"description": "The time of this recurring schedule.",
"type": "string",
"format": "time"
},
"fixedInterval": {
"description": "The repeating interval.",
"type": "string",
"format": "duration"
},
"duration": {
"description": "The duration of the schedule slot.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this ScheduleSlot",
"description": "The description of this ScheduleSlot",
"sequestered": false,
"weekdays": [ "..cardinal[]..", "..." ],
"weeklyInterval": 19,
"weekOfMonth": 19,
"weekdayTime": "..Time..",
"fixedInterval": "P3DT3H",
"duration": "P3DT3H"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ScheduleSlot has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "ScheduleSlot not found" }
delete /schedule-slots/{scheduleSlotId}
Delete a particular ScheduleSlot given its id.
URI Parameters
- scheduleSlotId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ScheduleSlot has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "ScheduleSlot not found" }
Entity representing a ScheduleSlot form metadata for update
Get form metadata for updating an existing ScheduleSlot.
get /schedule-slots/{scheduleSlotId}/metadata
Get form metadata for updating an existing ScheduleSlot.
URI Parameters
- scheduleSlotId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ScheduleSlot",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this schedule slot, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this schedule slot, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this schedule slot for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ScheduleSlot.ScheduleSlot:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this schedule slot",
"linked": false
},
"description": {
"description": "The description of this schedule slot.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ScheduleSlot.ScheduleSlot:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this schedule slot",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this schedule slot. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this schedule slot. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this schedule slot is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "ScheduleSlot.ScheduleSlot:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this schedule slot is sequestered",
"linked": false
},
"weekday": {
"description": "-- could someone please write a description for this --",
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"enum": []
},
"default": [],
"elementId": "calendaring.ScheduleSlot:weekday@dxtera.org",
"existingValue": [42, 4, 7],
"elementLabel": "Weekday",
"instructions": "Enter the weekday of this schedule slot.",
"linked": false
},
"weeklyInterval": {
"description": "The number of weeks of the interval.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.ScheduleSlot:weeklyInterval@dxtera.org",
"existingValue": 42,
"elementLabel": "Weekly Interval",
"instructions": "Enter the weekly interval of this schedule slot.",
"linked": false
},
"weekOfMonth": {
"description": "The week of the month for the interval.",
"type": "integer",
"minimum": null,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "calendaring.ScheduleSlot:weekOfMonth@dxtera.org",
"existingValue": 42,
"elementLabel": "Week Of Month",
"instructions": "Enter the week of month of this schedule slot.",
"linked": false
},
"weekdayTime": {
"description": "The time of this recurring schedule.",
"type": "string",
"format": "time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.ScheduleSlot:weekdayTime@dxtera.org",
"existingValue": "",
"elementLabel": "Weekday Time",
"instructions": "Enter the weekday time of this schedule slot.",
"linked": false
},
"fixedInterval": {
"description": "The repeating interval.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.ScheduleSlot:fixedInterval@dxtera.org",
"existingValue": "",
"elementLabel": "Fixed Interval",
"instructions": "Enter the fixed interval of this schedule slot.",
"linked": false
},
"duration": {
"description": "The duration of the schedule slot.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.ScheduleSlot:duration@dxtera.org",
"existingValue": "",
"elementLabel": "Duration",
"instructions": "Enter the duration of this schedule slot.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "scheduleSlot not found" }
/commitments
Collection of Commitments in a system, federation of systems, or in a default Calendar.
Get all Commitments in the system or default Calendar.
Create a new Commitment in the default Calendar.
get /commitments
Get all Commitments in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "event", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCommitmentType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCommitmentType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCommitmentType%40campusapi.org
- fromDate: (string)
Get all commitments from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all commitments up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- eventId: (string)
the id string to match a event.
Example:
calendaring.Event%3A550%40base.url
- resourceId: (string)
the id string to match a resource.
Example:
resource.Resource%3A640%40base.url
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Commitment:9344@base.url",
"uri": "http://base.url/open/campusapi/calendaring/commitment/calendaring.Commitment%3A9344%40base.url",
"displayName": "Display Name of this Commitment",
"description": "The description of this Commitment",
"genusTypeId": "type.Type:defaultCommitmentType@base.url",
"recordTypeIds": [ "type.Type:exampleCommitmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:9344@base.url",
"eventId": "calendaring.Event:7551@base.url",
"resourceId": "resource.Resource:2811@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /commitments
Create a new Commitment in the default Calendar.
Query Parameters
- eventId: required(string)
the event of this commitment.
Example:
calendaring.Event%3A550%40base.url
- resourceId: required(string)
the resource of this commitment.
Example:
resource.Resource%3A640%40base.url
- genusType: (string)
specify a particular commitment type to create
Example:
type.Type%3AexampleCommitmentType%40dxtera.org
- recordType: (array of )
specify support for one or more commitment record types
Example:
[ "type.Type%3AexampleCommitmentRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this commitment
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Commitment",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this commitment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this commitment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this commitment for display.",
"type": "string"
},
"description": {
"description": "The description of this commitment.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this commitment. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this commitment. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this commitment.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this commitment.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this commitment ended.",
"type": "string",
"format": "osid-id"
},
"eventId": {
"description": "The event associated with this commitment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"resourceId": {
"description": "The resource associated with this commitment.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Commitment",
"description": "The description of this Commitment",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:3284@base.url"
}
Query the collection of Commitments in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a CommitmentQuery object.
post /commitments/commitment-query
Submit a query using a CommitmentQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "event", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CommitmentQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match Commitments with any end reason, false to match Commitments with no end reason",
"type": "boolean"
},
"matchEventIds": {
"description": "List of event Ids for this query to match commitment that have a related event.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"eventQueries": {
"description": "EventQueries to match the event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchResourceIds": {
"description": "List of resource Ids for this query to match commitment that have a related resource.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"resourceQueries": {
"description": "ResourceQueries to match the resource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Commitment:9344@base.url",
"uri": "http://base.url/open/campusapi/calendaring/commitment/calendaring.Commitment%3A9344%40base.url",
"displayName": "Display Name of this Commitment",
"description": "The description of this Commitment",
"genusTypeId": "type.Type:defaultCommitmentType@base.url",
"recordTypeIds": [ "type.Type:exampleCommitmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:9344@base.url",
"eventId": "calendaring.Event:7551@base.url",
"resourceId": "resource.Resource:2811@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Commitment form metadata.
Get form metadata for creating a new Commitment.
get /commitments/metadata
Get form metadata for creating a new Commitment.
Query Parameters
- eventId: required(string)
the event of this metadatum.
Example:
calendaring.Event%3A550%40base.url
- resourceId: required(string)
the resource of this metadatum.
Example:
resource.Resource%3A640%40base.url
- genusType: (string)
specify a particular commitment type to create
Example:
type.Type%3AexampleCommitmentType%40dxtera.org
- recordType: (array of )
specify support for one or more commitment record types
Example:
[ "type.Type%3AexampleCommitmentRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this commitment
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Commitment",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this commitment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this commitment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this commitment for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this commitment",
"linked": false
},
"description": {
"description": "The description of this commitment.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this commitment",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this commitment. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this commitment. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this commitment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this commitment",
"linked": false
},
"endDate": {
"description": "The ending date of this commitment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this commitment",
"linked": false
},
"endReasonId": {
"description": "The reason this commitment ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this commitment ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Commitment
Get a particular Commitment given its id.
Update a particular Commitment given its id.
Delete a particular Commitment given its id.
get /commitments/{commitmentId}
Get a particular Commitment given its id.
URI Parameters
- commitmentId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "event", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.Commitment:9344@base.url",
"uri": "http://base.url/open/campusapi/calendaring/commitment/calendaring.Commitment%3A9344%40base.url",
"displayName": "Display Name of this Commitment",
"description": "The description of this Commitment",
"genusTypeId": "type.Type:defaultCommitmentType@base.url",
"recordTypeIds": [ "type.Type:exampleCommitmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:9344@base.url",
"eventId": "calendaring.Event:7551@base.url",
"resourceId": "resource.Resource:2811@base.url"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Commitment not found" }
put /commitments/{commitmentId}
Update a particular Commitment given its id.
URI Parameters
- commitmentId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Commitment",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this commitment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this commitment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this commitment for display.",
"type": "string"
},
"description": {
"description": "The description of this commitment.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this commitment. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this commitment. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this commitment.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this commitment.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this commitment ended.",
"type": "string",
"format": "osid-id"
},
"eventId": {
"description": "The event associated with this commitment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"resourceId": {
"description": "The resource associated with this commitment.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Commitment",
"description": "The description of this Commitment",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:3284@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Commitment has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Commitment not found" }
delete /commitments/{commitmentId}
Delete a particular Commitment given its id.
URI Parameters
- commitmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Commitment has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Commitment not found" }
Entity representing a Commitment form metadata for update
Get form metadata for updating an existing Commitment.
get /commitments/{commitmentId}/metadata
Get form metadata for updating an existing Commitment.
URI Parameters
- commitmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Commitment",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this commitment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this commitment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this commitment for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this commitment",
"linked": false
},
"description": {
"description": "The description of this commitment.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this commitment",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this commitment. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this commitment. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this commitment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this commitment",
"linked": false
},
"endDate": {
"description": "The ending date of this commitment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this commitment",
"linked": false
},
"endReasonId": {
"description": "The reason this commitment ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Commitment.Commitment:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this commitment ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "commitment not found" }
/time-periods
Collection of TimePeriods in a system, federation of systems, or in a default Calendar.
Get all TimePeriods in the system or default Calendar.
Create a new TimePeriod in the default Calendar.
get /time-periods
Get all TimePeriods in the system or default Calendar.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleTimePeriodType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleTimePeriodType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleTimePeriodType%40campusapi.org
- calendarId: (string)
The id string to match a calendar
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.TimePeriod:9187@base.url",
"uri": "http://base.url/open/campusapi/calendaring/time_period/calendaring.TimePeriod%3A9187%40base.url",
"displayName": "Display Name of this TimePeriod",
"description": "The description of this TimePeriod",
"genusTypeId": "type.Type:defaultTimePeriodType@base.url",
"recordTypeIds": [ "type.Type:exampleTimePeriodRecordType@campusapi.org", "..."],
"start": "2020-10-03T08:00:00.000Z",
"end": "2020-12-18T17:00:00.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /time-periods
Create a new TimePeriod in the default Calendar.
Query Parameters
- genusType: (string)
specify a particular timePeriod type to create
Example:
type.Type%3AexampleTimePeriodType%40dxtera.org
- recordType: (array of )
specify support for one or more timePeriod record types
Example:
[ "type.Type%3AexampleTimePeriodRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this timePeriod
Example:
calendaring.Calendar%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TimePeriod",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this time period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this time period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this time period for display.",
"type": "string"
},
"description": {
"description": "The description of this time period.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this time period. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this time period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"start": {
"description": "The start time of the time period.",
"type": "string",
"format": "date-time"
},
"end": {
"description": "The end time of the time period.",
"type": "string",
"format": "date-time"
}
}
}
Example:
{
"displayName": "Display Name of this TimePeriod",
"description": "The description of this TimePeriod",
"start": "2020-10-03T08:00:00.000Z",
"end": "2020-12-18T17:00:00.000Z"
}
Query the collection of TimePeriods in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a TimePeriodQuery object.
post /time-periods/time-period-query
Submit a query using a TimePeriodQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TimePeriodQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchStart": {
"description": "Matches starts between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyStart": {
"description": "Match starts with any value. true to match TimePeriods with any start, false to match ProgramOfferings with no start",
"type": "boolean"
},
"matchEnd": {
"description": "Matches ends between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyEnd": {
"description": "Match ends with any value. true to match TimePeriods with any end, false to match ProgramOfferings with no end",
"type": "boolean"
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.TimePeriod:9187@base.url",
"uri": "http://base.url/open/campusapi/calendaring/time_period/calendaring.TimePeriod%3A9187%40base.url",
"displayName": "Display Name of this TimePeriod",
"description": "The description of this TimePeriod",
"genusTypeId": "type.Type:defaultTimePeriodType@base.url",
"recordTypeIds": [ "type.Type:exampleTimePeriodRecordType@campusapi.org", "..."],
"start": "2020-10-03T08:00:00.000Z",
"end": "2020-12-18T17:00:00.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a TimePeriod form metadata.
Get form metadata for creating a new TimePeriod.
get /time-periods/metadata
Get form metadata for creating a new TimePeriod.
Query Parameters
- genusType: (string)
specify a particular timePeriod type to create
Example:
type.Type%3AexampleTimePeriodType%40dxtera.org
- recordType: (array of )
specify support for one or more timePeriod record types
Example:
[ "type.Type%3AexampleTimePeriodRecordType%40campusapi.org", "..." ]
- calendarId: (string)
specify in which calendar to create this timePeriod
Example:
calendaring.Calendar%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "TimePeriod",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this time period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this time period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this time period for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "TimePeriod.TimePeriod:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this time period",
"linked": false
},
"description": {
"description": "The description of this time period.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "TimePeriod.TimePeriod:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this time period",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this time period. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this time period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"start": {
"description": "The start time of the time period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.TimePeriod:start@dxtera.org",
"existingValue": "",
"elementLabel": "Start",
"instructions": "Enter the start of this time period.",
"linked": false
},
"end": {
"description": "The end time of the time period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.TimePeriod:end@dxtera.org",
"existingValue": "",
"elementLabel": "End",
"instructions": "Enter the end of this time period.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a TimePeriod
Get a particular TimePeriod given its id.
Update a particular TimePeriod given its id.
Delete a particular TimePeriod given its id.
get /time-periods/{timePeriodId}
Get a particular TimePeriod given its id.
URI Parameters
- timePeriodId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.TimePeriod:9187@base.url",
"uri": "http://base.url/open/campusapi/calendaring/time_period/calendaring.TimePeriod%3A9187%40base.url",
"displayName": "Display Name of this TimePeriod",
"description": "The description of this TimePeriod",
"genusTypeId": "type.Type:defaultTimePeriodType@base.url",
"recordTypeIds": [ "type.Type:exampleTimePeriodRecordType@campusapi.org", "..."],
"start": "2020-10-03T08:00:00.000Z",
"end": "2020-12-18T17:00:00.000Z"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "TimePeriod not found" }
put /time-periods/{timePeriodId}
Update a particular TimePeriod given its id.
URI Parameters
- timePeriodId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TimePeriod",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this time period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this time period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this time period for display.",
"type": "string"
},
"description": {
"description": "The description of this time period.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this time period. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this time period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"start": {
"description": "The start time of the time period.",
"type": "string",
"format": "date-time"
},
"end": {
"description": "The end time of the time period.",
"type": "string",
"format": "date-time"
}
}
}
Example:
{
"displayName": "Display Name of this TimePeriod",
"description": "The description of this TimePeriod",
"start": "2020-10-03T08:00:00.000Z",
"end": "2020-12-18T17:00:00.000Z"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The TimePeriod has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "TimePeriod not found" }
delete /time-periods/{timePeriodId}
Delete a particular TimePeriod given its id.
URI Parameters
- timePeriodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The TimePeriod has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "TimePeriod not found" }
Entity representing a TimePeriod form metadata for update
Get form metadata for updating an existing TimePeriod.
get /time-periods/{timePeriodId}/metadata
Get form metadata for updating an existing TimePeriod.
URI Parameters
- timePeriodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "TimePeriod",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this time period, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this time period, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this time period for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "TimePeriod.TimePeriod:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this time period",
"linked": false
},
"description": {
"description": "The description of this time period.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "TimePeriod.TimePeriod:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this time period",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this time period. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this time period. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"start": {
"description": "The start time of the time period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.TimePeriod:start@dxtera.org",
"existingValue": "",
"elementLabel": "Start",
"instructions": "Enter the start of this time period.",
"linked": false
},
"end": {
"description": "The end time of the time period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "calendaring.TimePeriod:end@dxtera.org",
"existingValue": "",
"elementLabel": "End",
"instructions": "Enter the end of this time period.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "timePeriod not found" }
/calendars
Collection of Calendars in a system or federation of systems.
Get all Calendars.
Create a new Calendar.
get /calendars
Get all Calendars.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCalendarType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCalendarType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCalendarType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- eventId: (string)
Get calendars mapped to this event.
Example:
calendaring.Event%3A440%40demo.dxtera.org
- recurringEventId: (string)
Get calendars mapped to this recurring-event.
Example:
calendaring.RecurringEvent%3A1320%40demo.dxtera.org
- supersedingEventId: (string)
Get calendars mapped to this superseding-event.
Example:
calendaring.SupersedingEvent%3A1496%40demo.dxtera.org
- offsetEventId: (string)
Get calendars mapped to this offset-event.
Example:
calendaring.OffsetEvent%3A1056%40demo.dxtera.org
- scheduleId: (string)
Get calendars mapped to this schedule.
Example:
calendaring.Schedule%3A704%40demo.dxtera.org
- scheduleSlotId: (string)
Get calendars mapped to this schedule-slot.
Example:
calendaring.ScheduleSlot%3A1144%40demo.dxtera.org
- timePeriodId: (string)
Get calendars mapped to this time-period.
Example:
calendaring.TimePeriod%3A968%40demo.dxtera.org
- commitmentId: (string)
Get calendars mapped to this commitment.
Example:
calendaring.Commitment%3A880%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Calendar:9690@base.url",
"uri": "http://base.url/open/campusapi/calendaring/calendar/calendaring.Calendar%3A9690%40base.url",
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"genusTypeId": "type.Type:defaultCalendarType@base.url",
"recordTypeIds": [ "type.Type:exampleCalendarRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /calendars
Create a new Calendar.
Query Parameters
- genusType: (string)
specify a particular calendar type to create
Example:
type.Type%3AexampleCalendarType%40dxtera.org
- recordType: (array of )
specify support for one or more calendar record types
Example:
[ "type.Type%3AexampleCalendarRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Calendar",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this calendar, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this calendar, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this calendar for display.",
"type": "string"
},
"description": {
"description": "The description of this calendar.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this calendar. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this calendar. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this calendar.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this calendar. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this calendar.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
}
Query the collection of Calendars in a system, federation of systems, or in a default calendar by posting a Query object.
Submit a query using a CalendarQuery object.
post /calendars/calendar-query
Submit a query using a CalendarQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CalendarQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Calendar with any provider, false to match Calendar with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Calendar with any branding, false to match Calendar with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchCalendarIds": {
"description": "List of Calendar Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"calendarId": {
"description": "Calendar id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"calendarQueries": {
"description": "CalendarQueries to match Calendar. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Calendar:9690@base.url",
"uri": "http://base.url/open/campusapi/calendaring/calendar/calendaring.Calendar%3A9690%40base.url",
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"genusTypeId": "type.Type:defaultCalendarType@base.url",
"recordTypeIds": [ "type.Type:exampleCalendarRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Calendar form metadata.
Get form metadata for creating a new Calendar.
get /calendars/metadata
Get form metadata for creating a new Calendar.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Calendar",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this calendar, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this calendar, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this calendar for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this calendar",
"linked": false
},
"description": {
"description": "The description of this calendar.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this calendar",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this calendar. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this calendar. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this calendar.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this calendar",
"linked": false
},
"brandingIds": {
"description": "The branding of this calendar. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Calendar.Calendar:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this calendar",
"linked": false
},
"license": {
"description": "The licensing that applies to this calendar.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this calendar",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Calendars in the Calendar hierarchy. A node with no parents is an orphan. While all Calendar Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-calendar
get /calendars/root-calendar
Get all root root-calendar
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Calendar:9690@base.url",
"uri": "http://base.url/open/campusapi/calendaring/calendar/calendaring.Calendar%3A9690%40base.url",
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"genusTypeId": "type.Type:defaultCalendarType@base.url",
"recordTypeIds": [ "type.Type:exampleCalendarRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Calendar
Get a particular Calendar given its id.
Update a particular Calendar given its id.
Delete a particular Calendar given its id.
get /calendars/{calendarId}
Get a particular Calendar given its id.
URI Parameters
- calendarId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "calendaring.Calendar:9690@base.url",
"uri": "http://base.url/open/campusapi/calendaring/calendar/calendaring.Calendar%3A9690%40base.url",
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"genusTypeId": "type.Type:defaultCalendarType@base.url",
"recordTypeIds": [ "type.Type:exampleCalendarRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Calendar not found" }
put /calendars/{calendarId}
Update a particular Calendar given its id.
URI Parameters
- calendarId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Calendar",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this calendar, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this calendar, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this calendar for display.",
"type": "string"
},
"description": {
"description": "The description of this calendar.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this calendar. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this calendar. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this calendar.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this calendar. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this calendar.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Calendar has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Calendar not found" }
delete /calendars/{calendarId}
Delete a particular Calendar given its id.
URI Parameters
- calendarId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Calendar has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Calendar not found" }
Entity representing a Calendar form metadata for update
Get form metadata for updating an existing Calendar.
get /calendars/{calendarId}/metadata
Get form metadata for updating an existing Calendar.
URI Parameters
- calendarId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Calendar",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this calendar, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this calendar, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this calendar for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this calendar",
"linked": false
},
"description": {
"description": "The description of this calendar.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this calendar",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this calendar. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this calendar. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this calendar.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this calendar",
"linked": false
},
"brandingIds": {
"description": "The branding of this calendar. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Calendar.Calendar:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this calendar",
"linked": false
},
"license": {
"description": "The licensing that applies to this calendar.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Calendar.Calendar:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this calendar",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "calendar not found" }
Get child Calendars for the given Calendar in the hierarchy.
get /calendars/{calendarId}/children
Get child Calendars for the given Calendar in the hierarchy.
URI Parameters
- calendarId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Calendar:9690@base.url",
"uri": "http://base.url/open/campusapi/calendaring/calendar/calendaring.Calendar%3A9690%40base.url",
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"genusTypeId": "type.Type:defaultCalendarType@base.url",
"recordTypeIds": [ "type.Type:exampleCalendarRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Calendar as child of the given Calendar in the hierarchy.
Remove the given Calendar as a child of the given Calendar in the hierarchy.
put /calendars/{calendarId}/children/{childId}
Add Calendar as child of the given Calendar in the hierarchy.
URI Parameters
- calendarId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Calendar has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "calendar not found" }
delete /calendars/{calendarId}/children/{childId}
Remove the given Calendar as a child of the given Calendar in the hierarchy.
URI Parameters
- calendarId: required(string)
- childId: required(string)
Get parent Calendars for the given Calendar in the hierarchy.
get /calendars/{calendarId}/parents
Get parent Calendars for the given Calendar in the hierarchy.
URI Parameters
- calendarId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Calendar:9690@base.url",
"uri": "http://base.url/open/campusapi/calendaring/calendar/calendaring.Calendar%3A9690%40base.url",
"displayName": "Display Name of this Calendar",
"description": "The description of this Calendar",
"genusTypeId": "type.Type:defaultCalendarType@base.url",
"recordTypeIds": [ "type.Type:exampleCalendarRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Calendar@base.url",
"license": "The license that applies to this Calendar"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Events in this Calendar
get /calendars/{calendarId}/events
Get all Events in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleEventType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Event:7422@base.url",
"uri": "http://base.url/open/campusapi/calendaring/event/calendaring.Event%3A7422%40base.url",
"displayName": "Display Name of this Event",
"description": "The description of this Event",
"genusTypeId": "type.Type:defaultEventType@base.url",
"recordTypeIds": [ "type.Type:exampleEventRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:239@base.url",
"sponsorIds": [ "resource.Resource:4608@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Event to this Calendar
Remove the given Event from the Calendar.
put /calendars/{calendarId}/events/{eventId}
Add the given Event to this Calendar
URI Parameters
- calendarId: required(string)
- eventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Event has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Event not found" }
delete /calendars/{calendarId}/events/{eventId}
Remove the given Event from the Calendar.
URI Parameters
- calendarId: required(string)
- eventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Event has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Event not found" }
Get all RecurringEvents in this Calendar
get /calendars/{calendarId}/recurring-events
Get all RecurringEvents in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleRecurringEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleRecurringEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleRecurringEventType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.RecurringEvent:4182@base.url",
"uri": "http://base.url/open/campusapi/calendaring/recurringEvent/calendaring.RecurringEvent%3A4182%40base.url",
"displayName": "Display Name of this RecurringEvent",
"description": "The description of this RecurringEvent",
"genusTypeId": "type.Type:defaultRecurringEventType@base.url",
"recordTypeIds": [ "type.Type:exampleRecurringEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"sequestered": false,
"sponsorIds": [ "resource.Resource:8641@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given RecurringEvent to this Calendar
Remove the given RecurringEvent from the Calendar.
put /calendars/{calendarId}/recurring-events/{recurringEventId}
Add the given RecurringEvent to this Calendar
URI Parameters
- calendarId: required(string)
- recurringEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "RecurringEvent has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "RecurringEvent not found" }
delete /calendars/{calendarId}/recurring-events/{recurringEventId}
Remove the given RecurringEvent from the Calendar.
URI Parameters
- calendarId: required(string)
- recurringEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "RecurringEvent has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "RecurringEvent not found" }
Get all SupersedingEvents in this Calendar
get /calendars/{calendarId}/superseding-events
Get all SupersedingEvents in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "supersedingEvent", "supersededEvent", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleSupersedingEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleSupersedingEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleSupersedingEventType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.SupersedingEvent:7763@base.url",
"uri": "http://base.url/open/campusapi/calendaring/supersedingEvent/calendaring.SupersedingEvent%3A7763%40base.url",
"displayName": "Display Name of this SupersedingEvent",
"description": "The description of this SupersedingEvent",
"genusTypeId": "type.Type:defaultSupersedingEventType@base.url",
"recordTypeIds": [ "type.Type:exampleSupersedingEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"supersededEventId": "calendaring.Event:388@base.url",
"supersededDate": "2021-07-21T23:15:30.000Z",
"supersedingEventId": "calendaring.Event:1871@base.url",
"supersededEventPosition": 19
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given SupersedingEvent to this Calendar
Remove the given SupersedingEvent from the Calendar.
put /calendars/{calendarId}/superseding-events/{supersedingEventId}
Add the given SupersedingEvent to this Calendar
URI Parameters
- calendarId: required(string)
- supersedingEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "SupersedingEvent has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "SupersedingEvent not found" }
delete /calendars/{calendarId}/superseding-events/{supersedingEventId}
Remove the given SupersedingEvent from the Calendar.
URI Parameters
- calendarId: required(string)
- supersedingEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "SupersedingEvent has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "SupersedingEvent not found" }
Get all OffsetEvents in this Calendar
get /calendars/{calendarId}/offset-events
Get all OffsetEvents in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "rule", "startReferenceEvent", "endReferenceEvent", "location", "sponsors", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleOffsetEventType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleOffsetEventType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleOffsetEventType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.OffsetEvent:3426@base.url",
"uri": "http://base.url/open/campusapi/calendaring/offsetEvent/calendaring.OffsetEvent%3A3426%40base.url",
"displayName": "Display Name of this OffsetEvent",
"description": "The description of this OffsetEvent",
"genusTypeId": "type.Type:defaultOffsetEventType@base.url",
"recordTypeIds": [ "type.Type:exampleOffsetEventRecordType@campusapi.org", "..."],
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@base.url",
"fixedStartTime": "2020-10-03T08:00:00.000Z",
"startReferenceEventId": "calendaring.Event:9923@base.url",
"fixedStartOffset": "P3DT3H",
"relativeWeekdayStartOffset": 19,
"relativeStartWeekday": 19,
"fixedDuration": "P3DT3H",
"endReferenceEventId": "calendaring.Event:7073@base.url",
"fixedEndOffset": "P3DT3H",
"relativeWeekdayEndOffset": 19,
"relativeEndWeekday": 19,
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:342@base.url",
"sponsorIds": [ "resource.Resource:3693@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given OffsetEvent to this Calendar
Remove the given OffsetEvent from the Calendar.
put /calendars/{calendarId}/offset-events/{offsetEventId}
Add the given OffsetEvent to this Calendar
URI Parameters
- calendarId: required(string)
- offsetEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "OffsetEvent has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "OffsetEvent not found" }
delete /calendars/{calendarId}/offset-events/{offsetEventId}
Remove the given OffsetEvent from the Calendar.
URI Parameters
- calendarId: required(string)
- offsetEventId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "OffsetEvent has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "OffsetEvent not found" }
Get all Schedules in this Calendar
get /calendars/{calendarId}/schedules
Get all Schedules in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "scheduleSlot", "timePeriod", "location", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleScheduleType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleScheduleType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleScheduleType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Schedule:6471@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule/calendaring.Schedule%3A6471%40base.url",
"displayName": "Display Name of this Schedule",
"description": "The description of this Schedule",
"genusTypeId": "type.Type:defaultScheduleType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleRecordType@campusapi.org", "..."],
"scheduleSlotId": "calendaring.ScheduleSlot:9435@base.url",
"timePeriodId": "calendaring.TimePeriod:5264@base.url",
"scheduleStart": "2020-10-03T08:00:00.000Z",
"scheduleEnd": "2020-12-18T17:00:00.000Z",
"limit": [ "..cardinal[]..", "..." ],
"locationDescription": "This is the LocationDescription",
"locationId": "mapping.Location:6985@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Schedule to this Calendar
Remove the given Schedule from the Calendar.
put /calendars/{calendarId}/schedules/{scheduleId}
Add the given Schedule to this Calendar
URI Parameters
- calendarId: required(string)
- scheduleId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Schedule has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Schedule not found" }
delete /calendars/{calendarId}/schedules/{scheduleId}
Remove the given Schedule from the Calendar.
URI Parameters
- calendarId: required(string)
- scheduleId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Schedule has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Schedule not found" }
Get all ScheduleSlots in this Calendar
get /calendars/{calendarId}/schedule-slots
Get all ScheduleSlots in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleScheduleSlotType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleScheduleSlotType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleScheduleSlotType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.ScheduleSlot:9256@base.url",
"uri": "http://base.url/open/campusapi/calendaring/schedule_slot/calendaring.ScheduleSlot%3A9256%40base.url",
"displayName": "Display Name of this ScheduleSlot",
"description": "The description of this ScheduleSlot",
"genusTypeId": "type.Type:defaultScheduleSlotType@base.url",
"recordTypeIds": [ "type.Type:exampleScheduleSlotRecordType@campusapi.org", "..."],
"sequestered": false,
"weekdays": [ "..cardinal[]..", "..." ],
"weeklyInterval": 19,
"weekOfMonth": 19,
"weekdayTime": "..Time..",
"fixedInterval": "P3DT3H",
"duration": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given ScheduleSlot to this Calendar
Remove the given ScheduleSlot from the Calendar.
put /calendars/{calendarId}/schedule-slots/{scheduleSlotId}
Add the given ScheduleSlot to this Calendar
URI Parameters
- calendarId: required(string)
- scheduleSlotId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ScheduleSlot has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "ScheduleSlot not found" }
delete /calendars/{calendarId}/schedule-slots/{scheduleSlotId}
Remove the given ScheduleSlot from the Calendar.
URI Parameters
- calendarId: required(string)
- scheduleSlotId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ScheduleSlot has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "ScheduleSlot not found" }
Get all Commitments in this Calendar
get /calendars/{calendarId}/commitments
Get all Commitments in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "event", "resource", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCommitmentType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCommitmentType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCommitmentType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.Commitment:9344@base.url",
"uri": "http://base.url/open/campusapi/calendaring/commitment/calendaring.Commitment%3A9344%40base.url",
"displayName": "Display Name of this Commitment",
"description": "The description of this Commitment",
"genusTypeId": "type.Type:defaultCommitmentType@base.url",
"recordTypeIds": [ "type.Type:exampleCommitmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:9344@base.url",
"eventId": "calendaring.Event:7551@base.url",
"resourceId": "resource.Resource:2811@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Commitment to this Calendar
Remove the given Commitment from the Calendar.
put /calendars/{calendarId}/commitments/{commitmentId}
Add the given Commitment to this Calendar
URI Parameters
- calendarId: required(string)
- commitmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Commitment has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Commitment not found" }
delete /calendars/{calendarId}/commitments/{commitmentId}
Remove the given Commitment from the Calendar.
URI Parameters
- calendarId: required(string)
- commitmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Commitment has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Commitment not found" }
Get all TimePeriods in this Calendar
get /calendars/{calendarId}/time-periods
Get all TimePeriods in this Calendar
URI Parameters
- calendarId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleTimePeriodType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleTimePeriodType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleTimePeriodType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "calendaring.TimePeriod:9187@base.url",
"uri": "http://base.url/open/campusapi/calendaring/time_period/calendaring.TimePeriod%3A9187%40base.url",
"displayName": "Display Name of this TimePeriod",
"description": "The description of this TimePeriod",
"genusTypeId": "type.Type:defaultTimePeriodType@base.url",
"recordTypeIds": [ "type.Type:exampleTimePeriodRecordType@campusapi.org", "..."],
"start": "2020-10-03T08:00:00.000Z",
"end": "2020-12-18T17:00:00.000Z"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given TimePeriod to this Calendar
Remove the given TimePeriod from the Calendar.
put /calendars/{calendarId}/time-periods/{timePeriodId}
Add the given TimePeriod to this Calendar
URI Parameters
- calendarId: required(string)
- timePeriodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "TimePeriod has been added to Calendar" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "TimePeriod not found" }
delete /calendars/{calendarId}/time-periods/{timePeriodId}
Remove the given TimePeriod from the Calendar.
URI Parameters
- calendarId: required(string)
- timePeriodId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "TimePeriod has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "TimePeriod not found" }