7. Room Booking
7.1. Bookings
7.1.1. Creating bookings
7.1.1.1. General Information
The Room Booking API is only available for authenticated users, i.e. when using an API key and a signature (if enabled). If the room booking system is restricted to certain users/groups this restriction applies for this API, too. The request will fail if there is a collision with another booking, blocking or unavailable period.
Note that it is not possible to pre-book a room through this api.
7.1.1.2. URL Format
/api/roomBooking/bookRoom.TYPE
TYPE should be json or xml.
7.1.1.3. Parameters
The following parameters are required:
Param |
Values |
Description |
---|---|---|
location |
text |
Room location, e.g. CERN |
roomid |
text |
Room id |
from/to |
f/t |
|
reason |
text |
Reason for booking a room |
username |
text |
User login name for whom the booking will be created |
7.1.1.3.1. Booking a room
POST request
Returns reservation id if the booking was successful or error information it there were any problems.
For example:
curl --data "username=jdoe&from=2012-12-30T21:30&to=2012-12-30T22:15&reason=meeting&location=CERN&roomid=189" 'http://indico.server/indico/api/roomBooking/bookRoom.json'
Result:
{
{
"url": "\/api\/roomBooking\/bookRoom.json",
"_type": "HTTPAPIResult",
"results": {
"reservationID": 45937
},
"ts": 1354695663
}
}
7.1.2. Retrieving bookings
7.1.2.1. General Information
The reservation export is only availabled for authenticated users, i.e. when using an API key and a signature (if enabled). If the room booking system is restricted to certain users/groups this restriction applies for the reservation export API, too.
Please note that the room export with the reservations detail level is much more appropriate if you need reservations for specific rooms.
7.1.2.2. URL Format
/export/reservation/LOCATION.TYPE
The LOCATION should be the room location, e.g. CERN. A - separated list of multiple locations is allowed, too.
7.1.2.3. Parameters
Param |
Short |
Values |
Description |
---|---|---|---|
occurrences |
occ |
yes, no |
Include all occurrences of room reservations. |
cancelled |
cxl |
yes, no |
If specified only include cancelled (yes) or non-cancelled (no) reservations. |
rejected |
rej |
yes, no |
If specified only include rejected/non-rejected resvs. |
confirmed |
- |
yes, no, pending |
If specified only include bookings/pre-bookings with the given state. |
archival |
arch |
yes, no |
If specified only include bookings (not) from the past. |
recurring |
rec |
yes, no |
If specified only include bookings which are (not) recurring. |
repeating |
rep |
yes, no |
Alias for recurring |
bookedfor |
bf |
text (wildcards) |
Only include bookings where the booked for field matches the given wildcard string. |
occurs |
- |
yyyy-mm-dd |
Only include bookings which have a valid occurrence on the given date. Multiple dates can be separated by commas. |
7.1.2.4. Detail Levels
7.1.2.4.1. reservations
Returns detailed data about the reservations and the most important information about the booked room.
{
"count": 1,
"additionalInfo": {},
"_type": "HTTPAPIResult",
"url": "/export/reservation/CERN.json?ak=00000000-0000-0000-0000-000000000000&detail=reservation&from=today&to=today&pretty=yes",
"results": [
{
"_type": "Reservation",
"repeat_unit": 1,
"endDT": {
"date": "2014-08-14",
"tz": "Europe/Zurich",
"time": "12:30:00"
},
"room": {
"_type": "Room",
"fullName": "500-1-001 - Main Auditorium",
"id": 57
},
"isConfirmed": true,
"isValid": true,
"repeatability": "daily",
"repeat_step": 1,
"vcList": [],
"reason": "Summer Student Lecture programme",
"bookedForName": "DOE, John",
"is_rejected": false,
"is_cancelled": false,
"startDT": {
"date": "2014-07-02",
"tz": "Europe/Zurich",
"time": "08:30:00"
},
"id": 63779,
"bookingUrl": "http://indico.server/rooms/booking/CERN/63779/",
"location": "CERN"
}
],
"ts": 1406727843
}
7.2. Rooms
General Information
The room export is only availabled for authenticated users, i.e. when using an API key and a signature (if enabled). If the room booking system is restricted to certain users/groups this restriction applies for the room export API, too.
7.2.1. URL Format
/export/room/LOCATION/ID.TYPE
The LOCATION should be the room location, e.g. CERN. The ID can be either a single room ID or a - separated list.
7.2.2. Parameters
Param |
Short |
Values |
Description |
---|---|---|---|
occurrences |
occ |
yes, no |
Include all occurrences of room reservations. |
cancelled |
cxl |
yes, no |
If specified only include cancelled (yes) or non-cancelled (no) reservations. |
rejected |
rej |
yes, no |
If specified only include rejected/non-rejected resvs. |
confirmed |
- |
yes, no, pending |
If specified only include bookings/pre-bookings with the given state. |
archival |
arch |
yes, no |
If specified only include bookings (not) from the past. |
recurring |
rec |
yes, no |
If specified only include bookings which are (not) recurring. |
repeating |
rep |
yes, no |
Alias for recurring |
bookedfor |
bf |
text (wildcards) |
Only include bookings where the booked for field matches the given wildcard string. |
occurs |
- |
yyyy-mm-dd |
Only include bookings which have a valid occurrence on the given date. Multiple dates can be separated by commas. |
7.2.3. Detail Levels
7.2.3.1. rooms
Returns basic data about the rooms.
For example, https://indico.server/export/room/CERN/57.json?ak=00000000-0000-0000-0000-000000000000&pretty=yes:
{
"count": 1,
"additionalInfo": {},
"_type": "HTTPAPIResult",
"url": "/export/room/CERN/57.json?ak=00000000-0000-0000-0000-000000000000&pretty=yes",
"results": [
{
"building": "500",
"_type": "Room",
"name": "Main Auditorium",
"floor": "1",
"longitude": "6.0542704900999995",
"vcList": [
"Audio Conference",
"Built-in (MCU) Bridge",
"CERN MCU",
"ESnet MCU",
"EVO",
"H323 point2point",
"Vidyo"
],
"equipment": [
"Blackboard",
"Computer Projector",
"Ethernet",
"Microphone",
"PC",
"Telephone conference",
"Video conference",
"Webcast/Recording",
"Wireless"
],
"roomNr": "001",
"location": "CERN",
"latitude": "46.23141394580001",
"fullName": "500-1-001 - Main Auditorium",
"id": 57,
"bookingUrl": "/indico/rooms/room/CERN/57/book"
}
],
"ts": 1406729635
}
7.2.3.2. reservations
Returns basic data about the rooms and their reservations in the given timeframe.
{
"count": 1,
"additionalInfo": {},
"_type": "HTTPAPIResult",
"url": "/export/room/CERN/57.json?ak=00000000-0000-0000-0000-000000000000&detail=reservations&from=today&to=today&pretty=yes",
"results": [
{
"building": "500",
"_type": "Room",
"name": "Main Auditorium",
"floor": "1",
"reservations": [
{
"_type": "Reservation",
"repeat_unit": 1,
"endDT": {
"date": "2014-08-14",
"tz": "Europe/Zurich",
"time": "12:30:00"
},
"isConfirmed": true,
"isValid": true,
"repeatability": "daily",
"repeat_step": 1,
"vcList": [],
"reason": "Summer Student Lecture programme",
"bookedForName": "DOE, John",
"is_rejected": false,
"is_cancelled": false,
"startDT": {
"date": "2014-07-02",
"tz": "Europe/Zurich",
"time": "08:30:00"
},
"id": 63779,
"bookingUrl": "http://pcavc005.cern.ch:8000/indico/rooms/booking/CERN/63779/",
"location": "CERN"
}
],
"longitude": "6.0542704900999995",
"vcList": [
"Audio Conference",
"Built-in (MCU) Bridge",
"CERN MCU",
"ESnet MCU",
"EVO",
"H323 point2point",
"Vidyo"
],
"equipment": [
"Blackboard",
"Computer Projector",
"Ethernet",
"Microphone",
"PC",
"Telephone conference",
"Video conference",
"Webcast/Recording",
"Wireless"
],
"roomNr": "001",
"location": "CERN",
"latitude": "46.23141394580001",
"fullName": "500-1-001 - Main Auditorium",
"id": 57,
"bookingUrl": "/indico/rooms/room/CERN/57/book"
}
],
"ts": 1406731966
}
7.3. Get room by room name
General Information
The search room export is guest allowed because the room data is public (no the reservations).
7.3.1. URL Format
/export/roomName/LOCATION/ROOMNAME.TYPE
The LOCATION should be the room location, e.g. CERN. The ROOMNAME is a single ROOMNAME.
7.3.2. Parameters
No parameters needed.
7.3.3. Results
Returns basic data about the rooms.
For example, https://indico.server/export/roomName/CERN/Main Auditorium.json?ak=00000000-0000-0000-0000-000000000000&pretty=yes:
{
"count": 1,
"additionalInfo": {},
"_type": "HTTPAPIResult",
"url": "/export/roomName/CERN/Main Auditorium.json?ak=00000000-0000-0000-0000-000000000000&pretty=yes",
"results": [
{
"building": "500",
"_type": "Room",
"name": "Main Auditorium",
"floor": "1",
"longitude": "6.0542704900999995",
"vcList": [
"Audio Conference",
"Built-in (MCU) Bridge",
"CERN MCU",
"ESnet MCU",
"EVO",
"H323 point2point",
"Vidyo"
],
"equipment": [
"Blackboard",
"Computer Projector",
"Ethernet",
"Microphone",
"PC",
"Telephone conference",
"Video conference",
"Webcast/Recording",
"Wireless"
],
"roomNr": "001",
"location": "CERN",
"latitude": "46.23141394580001",
"fullName": "500-1-001 - Main Auditorium",
"id": 57,
"bookingUrl": "/indico/rooms/room/CERN/57/book"
}
],
"ts": 1406732578
}