Direct Booking of Resource Calendars

## Direct Booking of Resource Calendars |

"Direct booking" is the ability to directly add appointments to the calendar of an Exchange "user" that represents a resource. ("Resource" almost always means a conference room, but in theory could also be a video projector, white board, or anything else reservable.)

Connector's implementation of this functionality is designed to be basically identical to Outlook's.

### Creating a Resource

Any Exchange account can be a resource. Nothing special needs to be done in Exchange or Active Directory. There are three properties, stored on the account's personal free/busy message that control whether or not Outlook and Evolution treat it as a resource:

`PR_PROCESS_MEETING_REQUESTS` | If `TRUE`, then the account is a resource.
`PR_DECLINE_RECURRING_MEETING_REQUESTS` | If `TRUE`, the resource cannot be booked for recurring events.
`PR_DECLINE_CONFLICTING_MEETING_REQUESTS` | If `TRUE`, the resource cannot be double-booked.

Connector doesn't currently provide any way to set these properties on a mailbox. (Outlook does.)

Of course, to be able to act as a resource, the account's Calendar must be writable by other users. (And the properties on the free/busy message must be readable as well. If you use the Delegates dialog in either Outlook or Evolution, it will make sure the free/busy message is readable to any user who can read the Calendar.)

### Booking a Resource

Outlook's convention is that direct booking happens when all of the following are true:

1. An Exchange user is added to the meeting with an attendee type of `RESOURCE`.

2. That user has the `PR_PROCESS_MEETING_REQUESTS` property set.

3. The user creating the meeting has permission to create the appointment in the resource user's Calendar.

If any of these criteria are not met, then it silently falls back to normal mail-based scheduling. (Among other things, this allows you to set up a resource such that some users can book it directly, but if anyone else tries to, it will just send a meeting request to that account, which can then be accepted or rejected manually by a secretary.)

If all the criteria are met, but the meeting must be rejected because of the settings of the `PR_DECLINE_RECURRING_MEETING_REQUESTS` or `PR_DECLINE_CONFLICTING_MEETING_REQUESTS` properties, then Outlook will pop up an error dialog explaining the problem, and refuse to save/send the meeting request.

If the resource can be booked, then Outlook will update the meeting request to show that the resource has accepted it, save that meeting request in the resource's calendar, and then send that meeting request to all of the remaining users (but NOT the resource) by mail.

### Cancelation

If you cancel a meeting that has a booked resource, Outlook does not remove the event from the resource's calendar. Instead, it prepends "Cancelled: " to the event's summary and changes its `TRANSP` property to `TRANSPARENT` so that it no longer shows up as busy. This leaves the original event in the calendar, for record-keeping purposes, but allows a new event to use the resource instead.