| Requires any of the roles: | bookingsupplier-administrator-write, superadmin | 
| PUT | /timeexceptions/{Id} | Updates a time exception for a given resource belonging to the current user | Updates a time exception for a given resource belonging to the current user if no colliding bookings are found. If a colliding booking is found. A time exception must be either recurring (DaysOfWeek is set and From and To is the valid range for the recurrency) or non recurring (From and To are set) | 
|---|
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| CompanyId | body | Guid? | No | The company id, if empty will use the company id for the user you are logged in with. | 
| Id | path | int | No | Time exceptions id | 
| From | body | DateTime? | No | Time exception starting datestamp, only the date of day part is used of this value | 
| To | body | DateTime? | No | Time exception ending datestamp, only the date of day part is used of this value | 
| ResourceIds | body | int[] | Yes | Resource id of the resource that owns this exception | 
| FromTime | body | TimeSpan? | No | This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the start time for each recurring day. | 
| ToTime | body | TimeSpan? | No | This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the end time for each recurring day. | 
| DaysOfWeek | body | int[] | Yes | A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. | 
| ReasonText | body | string | Yes | The reason of the time exception, example: Vacation, doctors appointment, ... | 
| ReasonTextPublic | body | string | Yes | The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ... | 
| Color | body | string | Yes | What hexadecimal color code the exception should have in the scheduler | 
| BlockTime | body | bool? | No | If the time exception should block the time in the scheduler so it's not available to book | 
| Private | body | bool? | No | If the ReasonText should only be visible to connected resources. If false, all resources will be able to see it | 
| CollidingBookingOptions | body | CollidingBookingOptions | No | By default sets to 1, which is to add time exception without canceling colliding bookings | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Force | form | bool | No | If this equals true it will it add the time exception with the option you have selected in CollidingBookingOption. Default is to cancel all colliding bookings. | 
| CancelMessage | form | string | Yes | When Force=true and colliding bookings exist, this message is the message that are sent to the users when canceling their bookings. | 
| SendSmsConfirmation | form | bool? | No | When Force=true and colliding bookings exist, send cancel message as SMS Confirmation | 
| SendEmailConfirmation | form | bool? | No | When Force=true and colliding bookings exist, send cancel message as Email Confirmation | 
| Name | Value | |
|---|---|---|
| AddWithoutCancelingCollidingBookings | 1 | |
| AddAndCancelCollidingBookings | 2 | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Id | form | int | No | Time exception id | 
| CompanyId | form | Guid | No | Time company id | 
| Locked | form | bool | No | If it's locked for editing for the logged in administrator | 
| ResourceIds | form | int[] | Yes | Resources that owns this exception | 
| Resources | form | List<TimeExceptionReosurceDetails> | Yes | Resources that owns this exception | 
| IsRecurring | form | bool | No | Indicates wheter or not the time exception is recurring | 
| From | form | DateTime | No | Time exception starting timestamp | 
| To | form | DateTime | No | Time exception ending timestamp | 
| FromTime | form | TimeSpan | No | If recurring then this value indicates the time of day when the time exception begins | 
| ToTime | form | TimeSpan | No | If recurring then this value indicates the time of day when the time exception ends | 
| ReasonText | form | string | Yes | The reason of the time exception, example: Vacation, doctors appointment, ... | 
| ReasonTextPublic | form | string | Yes | The reason of the time exception that could be public to customers, example: Vacation, Closed, Sick leave, ... | 
| Color | form | string | Yes | What hexadecimal color code the exception should have in the scheduler | 
| BlockTime | form | bool | No | If the time exception should block the time in the scheduler so it's not avaialable to book | 
| Private | form | bool | No | If the ReasonText should only be visible to conncted resources. If false, all resources will be able to see it | 
| DaysOfWeek | form | List<DayOfWeekDto> | Yes | If recurring, an array indicating which days of the week the exception recurs on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs | 
| Created | form | DateTime | No | The datetime the exception was created | 
| ResponseStatus | form | ResponseStatus | Yes | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Id | form | int | No | Ids of the resources that owns this exception | 
| Name | form | string | Yes | Name of the resource | 
| Description | form | string | Yes | Description of the resource | 
| Color | form | string | Yes | Color of the resource | 
| ImageUrl | form | Uri | Yes | Image of the resource | 
| ResponseStatus | form | ResponseStatus | Yes | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| DayOfWeekId | form | int | No | |
| DotNetDayOfWeekId | form | int | No | |
| DayOfWeek | form | string | Yes | 
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
PUT /timeexceptions/{Id} HTTP/1.1 
Host: api.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"CompanyId":"00000000-0000-0000-0000-000000000000","Id":0,"From":"0001-01-01T00:00:00","To":"0001-01-01T00:00:00","ResourceIds":[0],"FromTime":"00:00:00","ToTime":"00:00:00","DaysOfWeek":[0],"ReasonText":"String","ReasonTextPublic":"String","Color":"String","BlockTime":false,"Private":false,"CollidingBookingOptions":"AddWithoutCancelingCollidingBookings","Force":false,"CancelMessage":"String","SendSmsConfirmation":false,"SendEmailConfirmation":false}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"Id":0,"Locked":false,"ResourceIds":[0],"Resources":[{"Id":0,"Name":"String","Description":"String","Color":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"IsRecurring":false,"FromTime":"00:00:00","ToTime":"00:00:00","ReasonText":"String","ReasonTextPublic":"String","Color":"String","BlockTime":false,"Private":false,"DaysOfWeek":[{"DayOfWeekId":0,"DotNetDayOfWeekId":0,"DayOfWeek":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}