Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

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.

...

typethe type of the timetables, e.g. 'module'
limitthe maximum amount of records returned
offsetstarting position of the records returned (e.g. offset=5 skips the first 5 records)
departmentFilterfilter on a specific department
posFilterfilter on a specific pos
zoneFilterfilter on a specific zone

Request Example request URL

Code Block
languagenone
$base_url/api/v0/timetables?type=module 

Response BodyExample response body

Code Block
languagenone
[
    {
    	"description": "VMT for Informatics", 
    	"value": "2011!module!49CBD432F01E8C5057B344E02604A710"
    }
]

...

keythe key corresponding with the specific timetable
startDatethe start date for the timetable
endDatethe end date for the timetable
limitthe maximum amount of records returned (default = 25)

Request Example request URL

Code Block
languagenone
$base_url/api/v0/timetables/2011!module!49CBD432F01E8C5057B344E02604A710

Response BodyExample response body

Code Block
languagenone
[
   {
        "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"
        ]
    }
]

...

startDatethe start date for the timetable
endDatethe end date for the timetable
limitthe maximum amount of records returned
typethe type of the timetables, e.g. 'module'

Request Example request URL

Code Block
languagenone
$base_url/api/v0/timetable?startDate=2012/07/10&endDate=2012/07/10

Response BodyExample response body

Code Block
languagenone
{
        "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
languagenone
$base_url/api/v0/timetabletypes

Response BodyExample response body

Code Block
languagenone
{
    "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

typethe type of the timetable
departmentFiltera specific filter

Request Example request URL

Code Block
languagenone
$base_url/api/v0/timetablefilters?type=pos 

Response Example response Body

Code Block
languagenone
{
    "filterattribute": [
        {
            "option": [
                {
                    "name": " Faculty of Informatics", 
                    "value": "646ADCA666D4A88402CA46C26A73803C"
                }, 
                {
                    "name": " Faculty of Law", 
                    "value": "646ADCA666D4A88402CA46C26A738046"
                }
            ], 
            "type": "department"
        }
    ]
}

...

Code Block
languagenone
$base_url/api/v0/databases

Response BodyExample response body

Code Block
languagenone
{
    "database": [
        "2011"
    ]
}

...

Code Block
languagenone
$base_url/api/v0/weeklabels

Response BodyExample response body

Code Block
languagenone
{
     "value": "23", 
     "week": 11223
}

...

Description: Delete all subscriptions

Parameters: none

Request URLExample response body

Code Block
languagenone
$base_url/api/v0/subscriptions

...

Description: Add a new subscription

Parameters

keythe key of the subscription you wish to add

Request Example request URL 

Code Block
languagenone
$base_url/api/v0/subscriptions/2011!pos!0F2C927DF37F3A2BEF1F1713768E4EE6

...

keythe key of the subscription you wish to delete

Request Example request URL

Code Block
languagenone
$base_url/api/v0/subscriptions/2011!pos!0F2C927DF37F3A2BEF1F1713768E4EE6

...

Description: Edit a subscription. Use boolean values to trigger the subscription on or off.

Parameters

keythe key of the subscription you wish to edit
stateboolean value indicating the state of the subscription

Request Example request URL

Code Block
languagenone
$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

keythe key of the subscription you wish to edit
parentthe key of the parent of the subscription
stateboolean value indicating the state of the subscription

Request Example request URL

Code Block
languagenone
$base_url/api/v0/subscriptions/2011!location!D2D0C6A8E334B242289FBAA7F69759C3/2011!module!49CBD432F01E8C5057B344E02604A773?state=false

Response Code: 204 (No content)