Versions Compared

Key

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

Table of Contents

...

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"
    ]
}

/timetabletypesdetails   (since MyTimetable 3.0)

MethodGET

Description: Query all possible timetable types and return them including some details regards naming, whether or not they can include child timetables and their ordering in the menus. 

...

Description: Query the schedule for the specified timetable identifier.

Parameters

...

 The activityType* properties are deprecated since MyTimetable 3.4, in favour of the eventType object.

Parameters

NameDescriptionDefault value
key (required)
The key corresponding with the specific timetable, as retrieved using the /timetables call.-
fetchByUse 'hostKey' to retrieve the events by it's timetable host key instead of timetable key. Do not include this parameter to retrieve by timetable key. (MyTimetable v2.3 and higher)-
typeThe type of the timetable to retrieve, only used in combination with fetchBy=hostKey. 
startDate
The start date to retrieve events from, or 'today' for the current date at 0:00, or 'tomorrow' for tomorrow at 0:00, or none for the beginning of times.-
endDate
The end date to retrieve events till, or 'today' for the current date at 0:00, or 'tomorrow' for tomorrow at 0:00, or none for the end of times.-
limit
The maximum amount of records returned, 0 for no limit.0

...

Code Block
languagenone
[
    {
        "activityDescription": "Tsjechische letterkunde 2",
        "activityTypeDescriptionactivityTypeColor": "Werkcollege#0000ff",
        "activityTypeNameactivityTypeDescription": "Werkcollege",
        "endDateactivityTypeName": 1355320800000"Werkcollege",
        "highlightedconferenceUrl": falsenull,
        "locationsdepartment": [{
            {
"id": "2010!1E65DFEB58C56AAF042109ECF86B3149",
            "name": "Department of Languages"avoidConcurrencyLocationIds":
[],        },
        "capacityendDate": 161355320800000,
        "eventType": {
            "idcolor": "492E26C5A6F3BDE74C11240C046C3257#0000ff",
                "keydescription": "908K04SEM1Lecture",
            "eventTypeGroup": {
  "name": "Bungehuis K.04",                 "urldescription": null
         "Group Session",
  }         ],         "moduleCodeid": "UvA/FGW/TLK_133214266",Group Session"
        "notes": null,   },
     "staffMembers": [             "dr. E.R.G. Metz"id": "lecture"
        ]},
        "startDatefiltered": 1355313600000false,
        "studentSetshighlighted": []false,
        "timetableKeyslocations": [
            "2010!module!40B7FB6233A4AD9834C7B999276851F5"{
                "avoidConcurrencyLocationIds": [],
				"tagsbookUrl": [null,
                 {"capacity": 118,
                "keycustomAttributes": {},
   "weblecture"             "examCapacity": null,
                 "namecapacity": "Web Lecture" 16,
                "customAttributes": {},
          ]      }
]

/timetables/{key}/options    (since MyTimetable 3.1)

MethodGET

Description: Query the available options for the specified timetable. These options can be set on the subscription using the PUT call on a subscription. The allEquivalent boolean in the output will be true if any choice of options results in the same timetable.

Parameters

NameDescriptionDefault value
key (required)
The key corresponding with the specific timetable, as retrieved using the /timetables or /subscriptions call.-

Example request URLs

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

Example response body

Code Block
languagenone
{"id": "492E26C5A6F3BDE74C11240C046C3257",
                "key": "908K04SEM1",
                "name": "Bungehuis K.04",
                "allEquivalentsipAddress": falsenull,
     "options": [           "url": null
  {          }
  "id": "3772C4D1BFA1033EDD5E0539C89DD331",     ],
        "namemoduleCode": "MODULE A - GROEP 1"UvA/FGW/TLK_133214266",
        "notes": "Group 14 }only",
         {
   "notes2": "",
        "idnotes3": "3772C4D1BFA1033EDD5E0539C89DD336",
             "namestaffMembers": "MODULE[
A - GROEP 2"         }, 
 "dr. E.R.G. Metz"
      {   ],
         "idstartDate": "3772C4D1BFA1033EDD5E0539C89DD334"1355313600000,
             "namestudentSets": "MODULE[],
A - GROEP 3"     "timetableKeys": [
  },          {"2010!module!40B7FB6233A4AD9834C7B999276851F5"
            "id],
		"tags": "3772C4D1BFA1033EDD5E0539C89DD335",[
            {
"name": "MODULE A - GROEP 4"         },    "key": "weblecture", 
   {             "idname": "3772C4D1BFA1033EDD5E0539C89DD333Web Lecture",
            }
"name": "MODULE A - GROEP 5"    ]
    }
   
]
}

/timetables/{

...

key}/options    (since MyTimetable 3.1)

MethodGET

Description: Query the available options for the specified child of a timetable. These options can be set on the subscription using the PUT call on a subscription. The The allEquivalent boolean boolean in the output will be true if any choice of options results in the same timetable.

...

The key of the parent of the subscription
NameDescriptionDefault value
key (required)
The key of the child subscription you wish to retrieve the options for.-parent (required)
corresponding with the specific timetable, as retrieved using the /timetables or /subscriptions call.-

Example request URLs

Code Block
languagenone
$base_url/api/v0/timetables/2011!posmodule!49CBD432F01E8C5057B344E02604A710/6473C4D1BFD103FEDD5E0539C89DD334/options

Example response body

Code Block
languagenone
{
    "allEquivalent": false, 
    "options": [
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD331", 
            "name": "MODULE A - GROEP 1"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD336", 
            "name": "MODULE A - GROEP 2"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD334", 
            "name": "MODULE A - GROEP 3"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD335", 
            "name": "MODULE A - GROEP 4"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD333", 
            "name": "MODULE A - GROEP 5"
        }
    ]
}

...

/timetables/{parent}/{key}/options    (since MyTimetable 3.1)

MethodGET

Description: Query the personal timetable for the current user (as identified by the OAuth token or elevated API token)available options for the specified child of a timetable. These options can be set on the subscription using the PUT call on a subscription. The allEquivalent boolean in the output will be true if any choice of options results in the same timetable.

Parameters

startDate start date to retrieve events from, or 'today' for the current date at 0:00, or 'tomorrow' for tomorrow at 0:00, or none for the beginning of times.
NameDescriptionDefault value
key (required)The -
endDate
The end date to retrieve events till, or 'today' for the current date at 0:00, or 'tomorrow' for tomorrow at 0:00, or none for the end of times.-
limit
The maximum amount of records returned, 0 for no limit.0
type
Specifies the type of the subscriptions to include when returning the timetable, can be specified multiple times, useful to exclude zone and location subscriptions when requesting the timetable. If not specified all subscriptions will be included in the result.-
excludeResourceTimetablesSet this to true to exclude any resource (location, zone, equipment) timetables. Generally you will want this for portal integrations etc. (added in MyTimetable 3.1)false

Example request URL

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

Example response body

...

languagenone

...

key of the child subscription you wish to retrieve the options for.-
parent (required)
The key of the parent of the subscription.-

Example request URLs

Code Block
languagenone
$base_url/api/v0/timetables/2011!pos!49CBD432F01E8C5057B344E02604A710/6473C4D1BFD103FEDD5E0539C89DD334/options

Example response body

Code Block
languagenone
{
    "allEquivalent": false, 
    "options": [
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD331", 
            "name": "MODULE A - GROEP 1"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD336", 
            "name": "MODULE A - GROEP 2"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD334", 
            "name": "MODULE A - GROEP 3"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD335", 
            "name": "MODULE A - GROEP 4"
        }, 
        {
            "id": "3772C4D1BFA1033EDD5E0539C89DD333", 
            "name": "MODULE A - GROEP 5"
        }
    ]
}

/timetable

Method: GET

Description: Query the personal timetable for the current user (as identified by the OAuth token or elevated API token). The activityType* properties are deprecated since MyTimetable 3.4, in favour of the eventType object.

Parameters

NameDescriptionDefault value
startDate
The start date to retrieve events from, or 'today' for the current date at 0:00, or 'tomorrow' for tomorrow at 0:00, or none for the beginning of times.-
endDate
The end date to retrieve events till, or 'today' for the current date at 0:00, or 'tomorrow' for tomorrow at 0:00, or none for the end of times.-
limit
The maximum amount of records returned, 0 for no limit.0
type
Specifies the type of the subscriptions to include when returning the timetable, can be specified multiple times, useful to exclude zone and location subscriptions when requesting the timetable. If not specified all subscriptions will be included in the result.-
excludeResourceTimetablesSet this to true to exclude any resource (location, zone, equipment) timetables. Generally you will want this for portal integrations etc. (added in MyTimetable 3.1)false

Example request URL

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

Example response body

Code Block
languagenone
[
    {
        "activityDescription": "Tsjechische letterkunde 2",
        "activityTypeColor": "#0000ff",
        "activityTypeDescription": "Werkcollege",
        "activityTypeName": "Werkcollege",
        "conferenceUrl": null,
        "department": {
            "id": "2010!1E65DFEB58C56AAF042109ECF86B3149",
            "name": "Department of Languages"
        },
        "endDate": 1355320800000,
        "eventType": {
            "color": "#0000ff",
            "description": "Lecture",
            "eventTypeGroup": {
                "description": "Group Session",
                "id": "Group Session"
            },
            "activityDescriptionid": "Tsjechische letterkunde 2"lecture"
        },

        "filtered": false,
        "activityTypeDescriptionhighlighted": false,
 "Werkcollege",       "locations": [
            {
                "activityTypeNameavoidConcurrencyLocationIds": "Werkcollege",[],
				"bookUrl": null,
                "endDatecapacity": 1355320800000118,
        "highlighted": false,         "locationscustomAttributes": [ {},
                {"examCapacity": null,
                "avoidConcurrencyLocationIdscapacity": []16,
                "capacitycustomAttributes": 16{},
                "id": "492E26C5A6F3BDE74C11240C046C3257",
                "key": "908K04SEM1",
                "name": "Bungehuis K.04",
                "sipAddress": null,
                "url": null
            }
        ],
        "moduleCode": "UvA/FGW/TLK_133214266",
        "notes": null "Group 14 only",
        "notes2": "",
        "notes3": "",
        "staffMembers": [
            "dr. E.R.G. Metz"
        ],
        "startDate": 1355313600000,
        "studentSets": [],
        "timetableKeys": [
            "2010!module!40B7FB6233A4AD9834C7B999276851F5"
        ],
		"tags": [
            {
                "key": "weblecture", 
                "name": "Web Lecture"
            }
        ]
    }
]

...

/subscriptions/{key}/options     (since MyTimetable 3.1)

MethodPUT

Description: Set selected options of a subscription. Specifying all possible options will cause the list of selected options to be cleared, showing the complete timetable to the user.

...

/subscriptions/{parent}/{key}/options     (since MyTimetable 3.1)

MethodPUT

Description: Set selected options of a subscription nested under a parent. Specifying all possible options will cause the list of selected options to be cleared, showing the complete timetable to the user.

...

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)

Method: GET

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)

MethodGET

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)

MethodGET

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.

...

Code Block
languagejs
{
    "key": "SYLLABUS",
    "isDefault": true,
    "weeklabels": [
        {
            "year": 2014,
            "week": 4,
            "description": "wk 4"
        },
        {
            "year": 2014,
            "week": 5,
            "description": "wk 5"
        }
    ]
}

/databases    (deprecated since MyTimetable 3.1, replaced by: /databasedetails)

MethodGET

Description: Query the available datasources, see API Documentation for more information. For MyTimetable 3.1+, please use the /databasedetails call, which also provides the labels of the databases.

...

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

/databasedetails   (since MyTimetable 3.1)

MethodGET

Description: Query the available datasources, see API Documentation for more information. The key (to be used in the query string of other calls) and the label are returned.

...

Code Block
languagenone
{
    "databases": [
        {
            "key": "2015",
            "label": "2015/2016"
        },
        {
            "key": "2016",
            "label": "2016/2017"
        },
        {
            "key": "TimetableDB",
            "label": "Custom"
        }
    ]
}

/eventtypegroups   (since MyTimetable 3.0)

Method: GET

Description: Query the event type groups and event filtering settings.

...

Code Block
languagenone
$base_url/api/v0/eventtypegroups

Request Content-Type

application/x-www-form-urlencoded

Example request body

Code Block
languagenone
eventTypeGroups%5BExcursie%5D%5BisFiltered%5D=true&eventTypeGroups%5BHoorcollege%5D%5BisFiltered%5D=false&eventTypeGroups%5BOther%5D%5BisFiltered%5D=false

...