Get Available Slots of Users by Search Criteria
Retrieves the available time slots for multiple users by passing search criteria.
The API request uses condition groups similar to the User Advanced Search API.
- Pass a “FromDate” and “ToDate” within which you want to retrieve user availability slots. The difference between the from and to date cannot be more than 100 days.
- Pass one or more conditions within the “GroupConditions” parameter to specify which users you want to get the availability slots for.
- If you want to retrieve slots that have conflicting tasks, pass the “IncludeAllowedConflictSlots” parameter as true. Otherwise pass it as false.
The API response returns –
- Available slots, break timings, busy slots* and workday template timezone for each user.
- A “NoSlotsReason” parameter as either “Holiday”, “Leave”, “NotScheduled” or “WorkDayTemplateNotDefined”.
* Note that users can create multiple tasks at the same time. The API returns slot as busy if and only if the task type of the task in the conflicting slot has the “Allow Conflicts” setting is set to false.
API URL
Request
Content-Type: application/json{ "FromDate": "2018-06-01", "ToDate": "2018-08-02", "UserSearchCriteria": { "GroupConditions": [ { "GroupConditions": [ { "Condition": [ { "LookupName": "TeamId", "Operator": "eq", "LookupValue": "8bfc8586-0f53-11e8-871e-02bf1924461c", "ConditionOperator": null } ], "GroupOperator": null } ], "GroupOperator": "AND" }, { "Condition": [ { "LookupName": "StatusCode", "Operator": "eq", "LookupValue": "0", "ConditionOperator": null } ], "GroupOperator": null } ] }, "IncludeAllowedConflictSlots": false }
Request Parameters
Parameter | Description |
---|---|
FromDate | Starting date to retrieve user availability slots from. |
ToDate | End date to retrieve user availability slots. |
UserSearchCriteria | “GroupConditions” – You can create one or more condition groups. You can set multiple conditions inside each condition group. “Condition” –
|
IncludeAllowedConflictSlots | Pass true to include availability slots with conflicting appointments. Pass false to exclude conflicting appointment slots. |
Response
{ "RecordCount": 3, "List": [ { "Date": "2018-10-16", "UserSlots": [ { "UserId": "d4d5f703-677b-11e7-bd09-22000aa220ce", "EmailAddress": "su.3529@yopmail.com", "UserTimeZone": "Asia/Kolkata", "AvailableSlots": [ { "StartTime": "09:00:00", "EndTime": "18:00:00" } ], "Breaks": [], "BusySlots": [], "WorkDayTemplateTimeZone": "Asia/Kolkata", "NoSlotsReason": null }, { "UserId": "cc1a3996-c92a-11e7-8dc3-22000aa8e760", "EmailAddress": "User.14118@mailinator.com", "UserTimeZone": "Asia/Kolkata", "AvailableSlots": [ { "StartTime": "09:00:00", "EndTime": "18:00:00" } ], "Breaks": [], "BusySlots": [ { "StartTime": "2018-10-16 09:30:00", "EndTime": "2018-10-16 10:00:00" }, { "StartTime": "2018-10-16 10:30:00", "EndTime": "2018-10-16 11:00:00" } ], "WorkDayTemplateTimeZone": "Asia/Kolkata", "NoSlotsReason": null }, { "UserId": "50633e81-bb52-11e8-8a16-024dd1074912", "EmailAddress": "user.18090@mailinator.com", "UserTimeZone": "Asia/Kolkata", "AvailableSlots": [ { "StartTime": "09:00:00", "EndTime": "18:00:00" } ], "Breaks": [], "BusySlots": [], "WorkDayTemplateTimeZone": "Asia/Kolkata", "NoSlotsReason": null } ] } ] }
HTTP Response Codes
Code | Description |
---|---|
200 OK | This is the status code for successful API call. |
401 Unauthorized | The API call was made with invalid access credentials. Check your AccessKey and SecretKey. |
400 Bad Request | The message body on the request is not as per API specification. Make sure that content type is set to “application/json” and the JSON body has correct attribute names and structure. |
404 Not Found | The API could not be found. Please check the API signature. |
429 Too Many Requests | API calls exceeded the limit of 25 in 5 second(s) |
500 Internal Server Error | The API called failed. There could be many reasons for it. Check the exception message to get more details. |