...
- Personal timetable
- Request access to the user's personal timetable by using OAuth, or use impersonation using an API token (if available).
- Retrieve a list of a user's subscriptions using the
/subscriptions
call. - Retrieve the timetable of a user using the
/timetable
call. - Add or remove subscriptions to a user's profile by using the
/subscriptions
calls. To retrieve a list of timetables that can be added, one can use the/timetables
call.
- Single timetable
- Retrieve a list of timetables for a certain type by using the
/timetables
call. - The list of the previous call can be filtered using several filter options. The values for these filters can be retrieved using the
/timetablefilters
call. - After choosing the right timetable, the contents of the timetable can be retrieved using the
/timetables/<key>
call{key}
call.
- Retrieve a list of timetables for a certain type by using the
A timetable always consists of a list of Event objects and is sorted by event start and end date. The events contain the following values:
...
The API uses a version numbering scheme and the base URL of the API is: $base_url/api/v$version
. The current API version is version 0. Non-breaking changes (like the addition of extra information or methods) will be done without incrementing the version number. On breaking changes the version number will be increased. Multiple API versions may exist at the same time. Eveoh will try to support older API versions when technically and economically feasible, but users are encouraged to always use the latest API version.
Multiple databases
During a year rollover, multiple databases with timetabling data may be available. By specifying a GET parameter d
, it is possible to select a certain database for the request. The list of possible databases can be retrieved with the API Documentation call. If no database is specified, the default database will be used, which is usually the most sensible option. In the future, the API will remove the need to specify a database with a request and will transparently query multiple databases when necessary.
Resources
/timetables
Description: Query all timetables with a specified type.
...
type | the type of the timetables, e.g. 'module' |
limit | the maximum amount of records returned |
offset | starting position of the records returned (e.g. offset=5 skips the first 5 records) |
departmentFilter | filter on a specific department |
posFilter | filter on a specific pos |
zoneFilter | filter on a specific zone |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/timetables?type=module |
Response BodyExample response body
Code Block | ||
---|---|---|
| ||
[ { "description": "VMT for Informatics", "value": "2011!module!49CBD432F01E8C5057B344E02604A710" } ] |
...
key | the key corresponding with the specific timetable |
startDate | the start date for the timetable |
endDate | the end date for the timetable |
limit | the maximum amount of records returned (default = 25) |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/timetables/2011!module!49CBD432F01E8C5057B344E02604A710 |
Response BodyExample response body
Code Block | ||
---|---|---|
| ||
[ { "activityDescription": "VMT for Informatics", "activityTypeDescription": "Lecture", "activityTypeName": "Class", "endDate": 1341930600000, "locations": [ { "capacity": 18, "id": "D2D0C6A8E334B242289FBAA7F69759C3", "key": "#SPLUS9759C3", "name": "B3.022" } ], "moduleCode": "#SPLUS04A710", "notes": null, "staffMembers": [ "Mr. Moore (Moo)" ], "startDate": 1341919800000, "studentSets": [ "BI group 1A", "BI group 1B" ] } ] |
...
startDate | the start date for the timetable |
endDate | the end date for the timetable |
limit | the maximum amount of records returned |
type | the type of the timetables, e.g. 'module' |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/timetable?startDate=2012/07/10&endDate=2012/07/10 |
Response BodyExample response body
Code Block | ||
---|---|---|
| ||
{ "activityDescription": "System biology", "activityTypeDescription": "Lecture", "activityTypeName": "Class", "endDate": 1341916200000, "locations": [ { "capacity": 24, "id": "D2D0C6A8E334B242289FBAA7F69759BB", "key": "#SPLUS9759BB", "name": "G3.104" }, { "capacity": 24, "id": "D2D0C6A8E334B242289FBAA7F69759BC", "key": "#SPLUS9759BC", "name": "G3.110" } ], "moduleCode": "#SPLUS969C58", "notes": null, "staffMembers": [ "Mr. Martinez (Maz)", "Ms. Adams (Ada)" ], "startDate": 1341909000000, "studentSets": [ "BI group 3A" ] } |
...
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/timetabletypes |
Response BodyExample response body
Code Block | ||
---|---|---|
| ||
{ "timetableType": [ "location", "zone", "module", "student", "staff", "pos", "posss", "studentset", "studentsetgroup", "modulegroup", "user" ] } |
...
Description: Query all filters available for a specific timetable type.
Type: GET
Parameters
type | the type of the timetable |
departmentFilter | a specific filter |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/timetablefilters?type=pos |
Response Example response Body
Code Block | ||
---|---|---|
| ||
{ "filterattribute": [ { "option": [ { "name": " Faculty of Informatics", "value": "646ADCA666D4A88402CA46C26A73803C" }, { "name": " Faculty of Law", "value": "646ADCA666D4A88402CA46C26A738046" } ], "type": "department" } ] } |
...
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/databases |
Response BodyExample response body
Code Block | ||
---|---|---|
| ||
{ "database": [ "2011" ] } |
...
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/weeklabels |
Response BodyExample response body
Code Block | ||
---|---|---|
| ||
{ "value": "23", "week": 11223 } |
...
Description: Delete all subscriptions
Parameters: none
Request URLExample response body
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/subscriptions |
...
Description: Add a new subscription
Parameters
key | the key of the subscription you wish to add |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/subscriptions/2011!pos!0F2C927DF37F3A2BEF1F1713768E4EE6 |
...
key | the key of the subscription you wish to delete |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/subscriptions/2011!pos!0F2C927DF37F3A2BEF1F1713768E4EE6 |
...
Description: Edit a subscription. Use boolean values to trigger the subscription on or off.
Parameters
key | the key of the subscription you wish to edit |
state | boolean value indicating the state of the subscription |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/subscriptions/2011!pos!0F2C927DF37F3A2BEF1F1713768E4EE6?state=false |
Response Code: 204 (No content)
...
Description: Edit a subscription nested under a parent. Use boolean values to trigger the subscription on or off.
Parameters
key | the key of the subscription you wish to edit |
parent | the key of the parent of the subscription |
state | boolean value indicating the state of the subscription |
Request Example request URL
Code Block | ||
---|---|---|
| ||
$base_url/api/v0/subscriptions/2011!location!D2D0C6A8E334B242289FBAA7F69759C3/2011!module!49CBD432F01E8C5057B344E02604A773?state=false |
Response Code: 204 (No content)