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
}