Versions Compared

Key

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

Table of Contents

...

TypeMeaning
studentPersonal timetable of a student (when available, most institutions do not have personal timetables available in their timetabling application).
staffPersonal timetable of a staff member.
moduleTimetable for a module or course.
posTimetable for a programme of study (group of modules).
posssTimetable for a programme of study (group of studentsets and associated modules). This is a different implementation that the pos type, and the exact type available depends on the institution.
studentsetTimetable for a certain group of students (usually the timetable for a class or study group).
studentsetgroupTimetable for a group of student sets (most customers use either studentset or studentsetgroup to the outside world).
moduleposTimetable for a certain module, but limited to the studentsets of a certain study programme. This is used if a module is shared between study programmes, but contains activities that are specific to a certain study programme.
userPersonal timetable for a user (can be both a student or a staff member).
locationTimetable for a certain (class)room.
zoneTimetable for a building or other grouping of rooms.
tagTimetable for all events that are marked with a specific tag.

The API gives the option to either query a user's complete personal timetable, based on his or her MyTimetable subscriptions, or a single timetable which is not based on a user's profile. The first option always requires a certain form of authentication, whereas the second option may be available without any authentication or only requires an API token. An example workflow for both scenarios:

...

NameDescription
activityDescriptionThe description of the activity, could be the course, module or activity name. This should be shown to the user as 'main description'.
moduleCodeSome customers have a separate module code available which is a (semi-) unique identifier for a certain course of module.
activityTypeNameThe name of the activity type this event belongs to. Key value which can be used to group and colour activities. Should not be shown to the end-user directly.
activityTypeDescriptionThe description of the activity type of this event. This value should be shown to the user and indicates whether the activity is a lecture, practical, exam, etc. Not all institutions provide (sensible) activity type information.
startDateStart date and time of the event. See below for the date format.
endDateEnd date and time of the event. See below for the date format.
studentSetsList of student sets (e.g., classes, groups) associated with the event.
locationsList of locations associated with the event (consists of identifier, name, key, capacity, url and avoidConcurrencyLocationIds (MyTimetable v2.5+, list of id's of locations that are also occupied if this location is occupied)).
staffMembersList of staff members associated with the event.
notesSome notes or additional information about the event, not all customers use this field.

timetableKeys

Contains the list of subscriptions (timetables) this event is part of (MyTimetable v2.5+)
highlightedTrue iff the event should be highlighted in the interface (reason is customer or department specific) (MyTimetable v2.5+)
tagsList of tags assigned to the event (MyTimetable 2.7+)

New fields may be added to objects without incrementing the version number. See API Documentation for details.

...

Input can be provided in the form of HTTP GET URL parameters (which should be URL encoded properly) or an HTTP POST/PUT body that is in application/x-www-form-urlencoded. Most parameters are optional, when this is not the case this is mentioned in the documentation. Dates and times can be specified in one of the following format:

  • 'today' or 'tomorrow' for the current or next day at 0:00;
  • Unix timestamp format (in milliseconds sinds 1970, so don't forget to multiply/divide by 1000);
  • ISO 8601 format (yyyy-MM-ddTHH:mm:ss±HH:mm): elements on the right side (time, time zone) are optional;
  • Legacy format (YYYY/MM/DD HH:MM): the time is optional.

Authentication and authorisation

...

Code Block
languagenone
{
    "timetableType": [
        "location", 
        "zone", 
        "module", 
        "student", 
        "staff", 
        "pos", 
        "posss", 
        "studentset", 
        "studentsetgroup", 
        "modulegroup", 
        "user"
 ,
		"tag"
    ]
}

/timetables

Method: GET

Description: Query a list of timetables for a specified type. The filters that can be specified can be retrieved using the /timetablefilters call. Returns a list of descriptions and identifiers. The identifiers can be used in subsequent calls to /timetables/{key} and /subscriptions/{key}.

...

Code Block
languagenone
[
    {
        "activityDescription": "Tsjechische letterkunde 2",
        "activityTypeDescription": "Werkcollege",
        "activityTypeName": "Werkcollege",
        "endDate": 1355320800000,
        "highlighted": false,
        "locations": [
            {
                "avoidConcurrencyLocationIds": [],
                "capacity": 16,
                "id": "492E26C5A6F3BDE74C11240C046C3257",
                "key": "908K04SEM1",
                "name": "Bungehuis K.04",
                "url": null
            }
        ],
        "moduleCode": "UvA/FGW/TLK_133214266",
        "notes": null,
        "staffMembers": [
            "dr. E.R.G. Metz"
        ],
        "startDate": 1355313600000,
        "studentSets": [],
        "timetableKeys": [
            "2010!module!40B7FB6233A4AD9834C7B999276851F5"
        ],
		"tags": [
            {
               }
]

/timetable

Method: GET

...

 "key": "weblecture", 
                "name": "Web Lecture"
            }
        ]
    }
]

/timetable

Method: GET

Description: Query the personal timetable for the current user (as identified by the OAuth token or elevated API token).

...

Code Block
languagenone
[
    {
        "activityDescription": "Tsjechische letterkunde 2",
        "activityTypeDescription": "Werkcollege",
        "activityTypeName": "Werkcollege",
        "endDate": 1355320800000,
        "highlighted": false,
        "locations": [
            {
                "avoidConcurrencyLocationIds": [],
                "capacity": 16,
                "id": "492E26C5A6F3BDE74C11240C046C3257",
                "key": "908K04SEM1",
                "name": "Bungehuis K.04",
                "url": null
            }
        ],
        "moduleCode": "UvA/FGW/TLK_133214266",
        "notes": null,
        "staffMembers": [
            "dr. E.R.G. Metz"
        ],
        "startDate": 1355313600000,
        "studentSets": [],
        "timetableKeys": [
            "2010!module!40B7FB6233A4AD9834C7B999276851F5"
        ],
		"tags": [
            {
                "key": "weblecture", 
                "name": "Web Lecture"
            }
        ]
    }
]

/timetablefilters

MethodGET

...

Code Block
languagenone
{
    "feedUrl": "http://myuniversity/ical?eu=FKW92Fawier&t=556cf8a1-704a-4997-bc4d-5acf395eccaf",
    "username": "testuser"
}

/weeklabels   (deprecated since MyTimetable 2.7, replaced by: /weeklabelmaps)

Description: Query the weeklabels. This provides custom labels for the weeks when available. The response includes a value (the custom label) and a week (year - 1900 + the ISO week number).

...

Code Block
languagejs
{
    weeklabel: [
        {
            "week": 11223,
            "value": "23"
        },
        {
            "week": 11224,
            "value": "24"
        }
    ]
}

/weeklabelmaps   (since MyTimetable 2.7)

Description: Query the weeklabel maps. This provides the available maps with custom labels for the weeks. Per weeklabel map, the response includes a key and a boolean which indicates whether the map is the default weeklabel map for the requested user.

...

Code Block
languagejs
{
    "weeklabelmaps": [
        {
            "key": "SYLLABUS",
            "isDefault": true
        }
    ]
}

/weeklabelmaps/{key}   (since MyTimetable 2.7)

Description: Retrieve the specified weeklabel map. This provides the key, a boolean which indicates if this is the default weeklabel map for the requested user and the actiual map with custom labels for the weeks.

...