Introduction


What is NimbleSchedule Api?

NimbleSchedule API is an Application programming interface for NimbleSchedule .It enables you to integrate the functionality of NimbleSchedule into you own applications and build on top of the foundation that it provides.

What can I do with NimbleSchedule API?

Pretty much anything that you can do with NimbleSchedule you can do with the NimbleSchedule API.The most important benifit of NimbleSchedule API is being able to build applications which harness the functionality provided by NimbleSchedule and at the same time is tailored to your own specific requirements.With it there is a lot of flexibility in terms of usage of NimbleSchedule.To see a list of methods that are available for use please refer to the List of API's section.

How do I use NimbleSchedule API?

To start using NimbleSchedule API the first thing that you need to do is go to http://www.nimbleschedule.com/ and create an account by choosing the pricing plan that best suits your budget and organiztional requiremnts.Once you have done that you can start using the Api by making HTTP calls. Please refer to the Definitions section to know more about how the url is constructed.

Which data formats NimbleSchedule supports?

NimbleSchedule API returns the result of a query in one of the two formats JSON or XML. Choose the one which best suits your application. For receiving data in needed format just add query string parameter "format" for request with values "json" or "xml". If "format" parameter is missed then by default data is in JSON format.

How do I do authentication & authorization?

NimbleSchedule supports a few authentication methods. You can use API Key for obtaining access to all company information. The second approach is to use username and password and then authentication like you would when logging into your regular NimbleSchedule account.

1) Authentication with API key: In order to get your API Key, you have to contact our support team. The support team will give you your company identifier and API key. These two parameters must be included in each query string. These two parameters are: CompanyId and AuthToken. AuthToken is the API key.
Then it will look like in this example: https://app.nimbleschedule.com/api/employees?CompanyId=test&AuthToken=test

2) Authentication with username and password: Just include the UserName and Password parameters into each query string.
For example: https://app.nimbleschedule.com/api/employees?UserName=test&Password=test.


Definitions


Construction of the URLS

  1. Base URL

    All the API calls for the NimbleSchedule API have a singe base URL.

     https://app.nimbleschedule.com/api
    Every API call must be made with this base URL

  2. API to call

    The base URL is followed by a '/' and then by the name of the API which is to be called.To see the list of API please refer the List of API subsection.For example:

     https://app.nimbleschedule.com/api/employees
    Here employees is the call to the employees API.

  3. API method to call

    Every api has a list of methods that you can call.Each method performs a certain action and returns a result of that action. To call a method append a '/' follwed by the name of the method.Like this:

     https://app.nimbleschedule.com/api/employees/create

    The URL shown above sends a request to the create method for the employees API.

  4. Parameters

    If an API method expects a paramerter then you can supply it in the url by appending a '?' followed by the name of the parameter and by '=' and then lastly, its value.Whew! here is an example

     https://app.nimbleschedule.com/api/employees/get?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP&employeeId=11234

    Here we have passed the employeeId as a parameter to the get method of the employee api.

    (AuthToken and CompanyId) OR (Username and Password) are special parameters that must be passed with every request that is made to the API.

    Multiple parameters must be seperated by a '&'


List of API's


NimbleSchedule API provides the following API's

  • /Countries
    The countries API is used to query information regarding the countries of NimbleSchedule company. It has the following methods.
    This method is used to get list of countries. It doesn't require any additional parameters
    Authentication methods
    API Key
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/countries

    Sample Response XML

    <ArrayOfCountryModel>
      <CountryModel>
    	<Code>AF</Code>
    	<Name>Afghanistan</Name>
      </CountryModel>
      <CountryModel>
    	<Code>AL</Code>
    	<Name>Albania</Name>
      </CountryModel>
    </ArrayOfCountryModel>
    

    Sample Response JSON

    [
    	{"Code":"AF","Name":"Afghanistan"},
    	{"Code":"AL","Name":"Albania"},
    	{"Code":"DZ","Name":"Algeria"}
    ]
    
  • /Departments
    The departments API is used to query the departments within your organization
    This method is used to get all the departments in an organization. It doesn't require any additional parameters.
    Authentication methods
    API Key
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/departments

    Sample Response XML

    <ArrayOfEntityModel>
      <EntityModel>
        <Id>62631f22-5601-4753-8f18-03dc233b4d42</Id>
        <Name>Training</Name>
      </EntityModel>
      <EntityModel>
        <Id>6564c29d-d0e1-4db8-8856-19667b9ca583</Id>
        <Name>Kitchen</Name>
      </EntityModel>
    <ArrayOfEntityModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"62631f22-5601-4753-8f18-03dc233b4d42",
    		"Name":"Training"
    	},
    	{
    		"Id":"6564c29d-d0e1-4db8-8856-19667b9ca583",
    		"Name":"Kitchen"
    	}
    ]
    
  • /DropShift
    Methods for manipulating with Drop Shift Requests
    Method sends request to manager or admin to drop selected shift.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftId Shift identifier GUID Required
    reason Reason why employee wants to drop his shift string Optional

    Sample URL

    https://app.nimbleschedule.com/api/dropshift/sendrequest?format=JSON&username=test&password=test&shiftId=86dc9b7e-ef25-4c9d-9729-449780b883d6&reason=Please drop my shift

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    
    <ResponseModel>
    	<Errors>
    		<string>Request for this shift has already been submitted</string>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Method cancels request which user sent.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftDropId Drop shift request identifier GUID Required

    Sample URL

    https://app.nimbleschedule.com/api/dropshift/CancelRequest?format=JSON&username=test&password=test&shiftDropId=86dc9b7e-ef25-4c9d-9729-449780b883d6

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Method gets list of drop shift requests which other employees sent for approving or rejecting.
    Authentication methods
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/dropshift/RequestsManager?format=XML&username=test&password=test

    Sample Response XML

    <ArrayOfShiftDropRequestModel>
      <ShiftDropRequestModel>
        <Id>41ac4a43-c8df-43d6-9f59-687ffe7672d6</Id>
        <RequestType>DropShift</RequestType>
        <RequestedAt>2013-02-28T14:14</RequestedAt>
        <Status>Approved</Status>
        <Shift>
          <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
          <EmployeeName>Test Test</EmployeeName>
          <LocationName>Test</LocationName>
          <PositionName>Boss</PositionName>
          <DepartmentName>Training</DepartmentName>
          <StartAt>2013-03-01T22:30</StartAt>
          <EndAt>2013-03-02T02:00</EndAt>
        </Shift>
        <Reason>Drop me</Reason>
      </ShiftDropRequestModel>
    </ArrayOfShiftDropRequestModel>
    

    Sample Response JSON

    [
    	{	
    		"Id":"41ac4a43-c8df-43d6-9f59-687ffe7672d6",
    		"RequestType":"DropShift",
    		"RequestedAt":"2013-02-28T14:14",
    		"Status":"Approved",
    		"Reason":"Drop me",
    		"Shift":
    		{
    			"Id":null,
    			"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    			"EmployeeName":"Test Test",
    			"LocationName":"Test",
    			"PositionName":"Boss",
    			"DepartmentName":"Training",
    			"StartAt":"2013-03-01T22:30",
    			"EndAt":"2013-03-02T02:00",
    			"Color":null,
    			"Title":null,
    			"Notes":null
    		}
    	}
    ]
    
    Method gets list of dropshift requests which current employee sent for approving or rejecting.
    Authentication methods
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/dropshift/RequestsEmployee?format=XML&username=test&password=test

    Sample Response XML

    <ArrayOfShiftDropRequestModel>
      <ShiftDropRequestModel>
        <Id>41ac4a43-c8df-43d6-9f59-687ffe7672d6</Id>
        <RequestType>DropShift</RequestType>
        <RequestedAt>2013-02-28T14:14</RequestedAt>
        <Status>Approved</Status>
        <Shift>
          <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
          <EmployeeName>Test Test</EmployeeName>
          <LocationName>Test</LocationName>
          <PositionName>Boss</PositionName>
          <DepartmentName>Training</DepartmentName>
          <StartAt>2013-03-01T22:30</StartAt>
          <EndAt>2013-03-02T02:00</EndAt>
        </Shift>
        <Reason>Drop me</Reason>
      </ShiftDropRequestModel>
    </ArrayOfShiftDropRequestModel>
    

    Sample Response JSON

    [
    	{	
    		"Id":"41ac4a43-c8df-43d6-9f59-687ffe7672d6",
    		"RequestType":"DropShift",
    		"RequestedAt":"2013-02-28T14:14",
    		"Status":"Approved",
    		"Reason":"Drop me",
    		"Shift":
    		{
    			"Id":null,
    			"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    			"EmployeeName":"Test Test",
    			"LocationName":"Test",
    			"PositionName":"Boss",
    			"DepartmentName":"Training",
    			"StartAt":"2013-03-01T22:30",
    			"EndAt":"2013-03-02T02:00",
    			"Color":null,
    			"Title":null,
    			"Notes":null
    		}
    	}
    ]
    
    Method approves shift drop request.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftDropId Shift drop request identifier GUID Required

    Sample URL

    https://app.nimbleschedule.com/api/dropshift/Approve?format=JSON&username=test&password=test&shiftDropId=bc35da22-680d-4f6d-a866-7d770a834b32

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Method rejects shift drop request.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftDropId Shift drop request identifier GUID Required

    Sample URL

    https://app.nimbleschedule.com/api/dropshift/Reject?format=JSON&username=test&password=test&shiftDropId=bc35da22-680d-4f6d-a866-7d770a834b32

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
  • /EmployeesPositions
    The employee position API is used to query the information regarding the position(s) which assigned for employee.
    Get all positions assigned to employee
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    employeeId Employee identifier GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/employeepositions/GetEmployeePositions?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=XML&AuthToken=yzmPfNPbYmhwuxBGckOeP
    									

    Sample Response XML

    <ArrayOfEmployeePositionModel>
      <EmployeePositionModel>
        <Id>5fc6a75d-2f60-451d-a918-228e49084495</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <SkillLevel>Advanced</SkillLevel>
        <PayRate>20.0000</PayRate>
      </EmployeePositionModel>
      <EmployeePositionModel>
        <Id>67bd0519-f27a-4af2-b577-66fbdb20104f</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Waitress</PositionName>
        <SkillLevel>Beginner</SkillLevel>
        <PayRate>0.0000</PayRate>
      </EmployeePositionModel>
    </ArrayOfEmployeePositionModel>
    

    Sample Response JSON

    [{
    	"Id":"5fc6a75d-2f60-451d-a918-228e49084495",
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"EmployeeName":"Test Employee",
    	"LocationName":"Test Location",
    	"PositionName":"Boss",
    	"DepartmentName":null,
    	"SkillLevel":2,
    	"PayRate":20.0000
    },
    {
    	"Id":"67bd0519-f27a-4af2-b577-66fbdb20104f",
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"EmployeeName":"Test Employee",
    	"LocationName":"Test Location",
    	"PositionName":"Waitress",
    	"DepartmentName":null,
    	"SkillLevel":0,
    	"PayRate":0.0000
    }]
    
    This method retreives the postition of an employee.It takes the following parameters
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    employeePositionId Employee position identifier. Identifier of EmployeePosition entity GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/employeepositions/get?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP&employeePositionId=8b5b1415-deab-4e6c-8c5a-04366101a3f6

    Sample Response XML

    <EmployeePositionModel>
      <Id>67bd0519-f27a-4af2-b577-66fbdb20104f</Id>
      <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
      <EmployeeName>Test Test</EmployeeName>
      <LocationName>Test</LocationName>
      <PositionName>Waitress</PositionName>
      <SkillLevel>Beginner</SkillLevel>
      <PayRate>0.0000</PayRate>
    </EmployeePositionModel>
    

    Sample Response JSON

    {
    	"Id":"67bd0519-f27a-4af2-b577-66fbdb20104f",
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"EmployeeName":"Test Employee",
    	"LocationName":"Test Location",
    	"PositionName":"Waitress",
    	"DepartmentName":null,
    	"SkillLevel":0,
    	"PayRate":0.0000
    }
    
    This method is used to assign a position to a specific employee. It doesn't require any additional parameters in query string
    Authentication methods
    API Key
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/employeepositions/create?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP

    Sample Request XML

    <EmployeePositionModel>
      <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
      <LocationName>Test</LocationName>
      <PositionName>Banker</PositionName>
      <SkillLevel>Beginner</SkillLevel>
      <PayRate>0.0000</PayRate>
    </EmployeePositionModel>
    

    Sample Request JSON

    {
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"LocationName":"Test",
    	"PositionName":"Waitress",
    	"DepartmentName":null,
    	"SkillLevel":0,
    	"PayRate":0.0000
    }
    

    Sample Response XML

    <EntityCreateResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    	<Id>d240ba2d-e084-41b6-9bbc-84869c0f71f7</Id>
    </EntityCreateResponseModel>
    

    Sample Response JSON

    {
    	"Id":"98815dc1-591b-4504-8b73-18996106acd5",
    	"Errors":[],
    	"Warnings":[]
    }
    
    This method is used to Update a list of employee positions. It doesn't require additional parameters for query string.
    Authentication methods
    API Key
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/employeepositions/update?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP

    Sample Request XML

    <EmployeePositionModel>
      <Id>fff29478-6882-472e-99f3-5817b9ddc4c6</Id>
      <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
      <LocationName>Test</LocationName>
      <PositionName>Banker</PositionName>
      <DepartmentName>Office Administration</DepartmentName>
      <SkillLevel>Beginner</SkillLevel>
      <PayRate>10.0000</PayRate>
    </EmployeePositionModel>
    

    Sample Request JSON

    {
    	"Id":"fff29478-6882-472e-99f3-5817b9ddc4c6",
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"LocationName":"Test",
    	"PositionName":"Banker",
    	"DepartmentName":"Office Administration",
    	"Name":"Test Employee (Banker - Office Administration)",
    	"SkillLevel":0,
    	"PayRate":10.0000
    }
    

    Sample Response XML

    
    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    
    This method is used to delete an Employee position.
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    employeePositionId Employee position identifier. Identifier of EmployeePosition entity GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/employeepositions/delete?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP&employeePositionId=8b5b1415-deab-4e6c-8c5a-04366101a3f6

    Sample Response XML

    
    <ResponseMode>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseMode>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    
  • /Employees
    The employees API is used to query information regarding the employees of your company. It has the following methods:
    This method is used to get regular user information and settings. Method tests credentials as well.
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    userName Username string Required
    password Password string Required

    Sample URL

    https://app.nimbleschedule.com/api/Employees/Authenticate?format=XML&username=test&password=test

    Sample Response XML

    <CurrentEmployeeInfoModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    	<Id>d5169f80-1dda-47e9-9877-7c8013f17f98</Id>
    	<FirstName>Test</FirstName>
    	<LastName>Test</LastName>
    	<Email>test@test.com</Email>
    	<UserName>test</UserName>
    	<UserId>40407</UserId>
    	<Role>4</Role>
    	<HasDepartments>true</HasDepartments>
    	<ScheduleStartDayOfWeek>Monday</ScheduleStartDayOfWeek>
    	<CanViewAllSchedule>true</CanViewAllSchedule>
    	<EmployeesCanviewEmployeeGallery>true</EmployeesCanviewEmployeeGallery>
    	<EmployeesCanViewOtherEmployeesContactDetails>true</EmployeesCanViewOtherEmployeesContactDetails>
    	<AllowEmployeesToUpdateTheirProfile>true</AllowEmployeesToUpdateTheirProfile>
    	<EmployeeCanSendPrivateMessages>true</EmployeeCanSendPrivateMessages>
    	<ScheduleSettings>
    		<WeekStartDay>Monday</WeekStartDay>
    		<OvernightShiftStartTime xsi:nil="true" />
    		<OvernightShiftEndTime xsi:nil="true" />
    		<OvertimeWeekStartsAfterHour>40</OvertimeWeekStartsAfterHour>
    		<OvertimeDayStartsAfterHour>8</OvertimeDayStartsAfterHour>
    		<EmployeeCanViewAllSchedule>true</EmployeeCanViewAllSchedule>
    		<EmployeeCanViewCoWorkerShifts>true</EmployeeCanViewCoWorkerShifts>
    		<EmployeeCanDropShifts>true</EmployeeCanDropShifts>
    		<EmployeePickupShiftAutomaticallyApproved>false</EmployeePickupShiftAutomaticallyApproved>
    		<EmployeesCanTradeShifts>true</EmployeesCanTradeShifts>
    		<ManagerMustConfirmShiftTrade>true</ManagerMustConfirmShiftTrade>
    		<ShowLaborCost>false</ShowLaborCost>
    		<AllowShiftTradeEmpNotSamePosition>true</AllowShiftTradeEmpNotSamePosition>
    	</ScheduleSettings>
    	<TimeClockingSettings>
    		<ManagerCanEditDeleteTimeClock>true</ManagerCanEditDeleteTimeClock>
    		<AllowEmployeesClockBefore>true</AllowEmployeesClockBefore>
    		<AllowEmployeesFromAuthorizedLocation>false</AllowEmployeesFromAuthorizedLocation>
    		<AllowEmployeesWriteShiftReport>true</AllowEmployeesWriteShiftReport>
    		<RequireEmployeesWriteShiftReportBefore>false</RequireEmployeesWriteShiftReportBefore>
    		<SendDailyEmailShiftReports>false</SendDailyEmailShiftReports>
    		<AllowEmployeesViewTheirTimesheet>true</AllowEmployeesViewTheirTimesheet>
    		<AllowEmployeesClockBeforeMinute>60</AllowEmployeesClockBeforeMinute>
    		<AllowEmployeesToClockInWithoutBeingScheduled>true</AllowEmployeesToClockInWithoutBeingScheduled>
    		<AllowEmployeeToClockInViaSms>true</AllowEmployeeToClockInViaSms>
    		<EnableJobCodesForTimeClock>true</EnableJobCodesForTimeClock>
    	</TimeClockingSettings>
    </CurrentEmployeeInfoModel>
    

    Sample Response JSON

    {
    	"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"Name":"Test Test",
    	"FirstName":"Test",
    	"LastName":"Test",
    	"Email":"test@test.com",
    	"UserName":"test",
    	"UserId":"40407",
    	"Role":4,
    	"HasDepartments":true,
    	"ScheduleStartDayOfWeek":1,
    	"CanViewAllSchedule":true,
    	"EmployeesCanviewEmployeeGallery":true,
    	"EmployeesCanViewOtherEmployeesContactDetails":true,
    	"AllowEmployeesToUpdateTheirProfile":true,
    	"EmployeeCanSendPrivateMessages":true,
    	"ScheduleSettings":
    	{
    		"WeekStartDay":1,
    		"OvernightShiftStartTime":null,
    		"OvernightShiftEndTime":null,
    		"OvertimeWeekStartsAfterHour":40,
    		"OvertimeDayStartsAfterHour":8,
    		"EmployeeCanViewAllSchedule":true,
    		"EmployeeCanViewCoWorkerShifts":true,
    		"EmployeeCanDropShifts":true,
    		"EmployeePickupShiftAutomaticallyApproved":false,
    		"EmployeesCanTradeShifts":true,
    		"ManagerMustConfirmShiftTrade":true,
    		"ShowLaborCost":false,
    		"AllowShiftTradeEmpNotSamePosition":true
    	},	
    	"TimeClockingSettings":
    	{
    		"ManagerCanEditDeleteTimeClock":true,
    		"AllowEmployeesClockBefore":true,
    		"AllowEmployeesFromAuthorizedLocation":false,
    		"AllowEmployeesWriteShiftReport":true,
    		"RequireEmployeesWriteShiftReportBefore":false,
    		"SendDailyEmailShiftReports":false,
    		"AllowEmployeesViewTheirTimesheet":true,
    		"AllowEmployeesClockBeforeMinute":60,
    		"AllowEmployeesToClockInWithoutBeingScheduled":true,
    		"AllowEmployeeToClockInViaSms":true,
    		"EnableJobCodesForTimeClock":true
    	},
    	"Errors":[],
    	"Warnings":[]
    }
    
    This method returns a list of all employees in your company. It doesn't require additional parameters.
    Authentication methods
    API Key

    Sample URL

     https://app.nimbleschedule.com/api/employees?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=XML&AuthToken=yzmPfNPbYmhwuxBGckOeP

    Sample Response XML

    <ArrayOfEmployeeModel>
      <EmployeeModel>
        <Id>d5169f80-1dda-47e9-9877-7c8013f17f98</Id>
        <FirstName>Test</FirstName>
        <LastName>Test</LastName>
        <Email>test@test.com</Email>
        <UserName>admin</UserName>
        <UserId>40407</UserId>
        <Role>Admin</Role>
        <HireDate>2012-12-31T22:00</HireDate>
        <AddressLine1>Address2</AddressLine1>
        <AddressLine2>Address line 2</AddressLine2>
        <City>Test</City>
        <State>AL</State>
        <Country>DZ</Country>
        <ZipCode>83095</ZipCode>
        <TimeZone>FLE Standard Time</TimeZone>
        <MaximumHoursPerWeek xsi:nil="true" />
        <MaximumHoursPerDay xsi:nil="true" />
        <MaximumDaysPerWeek xsi:nil="true" />
        <MaximumShiftsPerDay xsi:nil="true" />
        <LocationName>Test</LocationName>
      </EmployeeModel>
      <EmployeeModel>
        <Id>7758852e-ad1a-416f-adea-db5c592c98f8</Id>
        <FirstName>TestSecond</FirstName>
        <LastName>Test</LastName>
        <Email>test2@test.com</Email>
        <UserName>superuser</UserName>
        <Role>Employee</Role>
        <HireDate>2012-12-31T22:00</HireDate>
        <TimeZone>FLE Standard Time</TimeZone>
        <MaximumHoursPerWeek xsi:nil="true" />
        <MaximumHoursPerDay xsi:nil="true" />
        <MaximumDaysPerWeek xsi:nil="true" />
        <MaximumShiftsPerDay xsi:nil="true" />
        <LocationName>Test</LocationName>
      </EmployeeModel>
    </ArrayOfEmployeeModel>  
    

    Sample Response JSON

    [
    	{
    		"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"FirstName":"Test",
    		"LastName":"Test",
    		"Email":"test@test.com",
    		"UserName":"test",
    		"UserId":"40407",
    		"Role":4,
    		"HireDate":"2012-12-31T22:00",
    		"AddressLine1":"Address2",
    		"AddressLine2":"Address line 2",
    		"City":"Test",
    		"State":"AL",
    		"Country":"DZ",
    		"ZipCode":"83095",
    		"TimeZone":
    		"FLE Standard Time",
    		"CountryCodeForMobile":null,
    		"CountryMobileCode":null,
    		"Mobile":null,
    		"Password":null,
    		"MaximumHoursPerWeek":null,
    		"MaximumHoursPerDay":null,
    		"MaximumDaysPerWeek":null,
    		"MaximumShiftsPerDay":null,
    		"LocationName":"Test Location"
    	},
    	{
    		"Id":"7758852e-ad1a-416f-adea-db5c592c98f8",
    		"FirstName":"Test",
    		"LastName":"TestSecond",
    		"Email":"test@test.com",
    		"UserName":"test2",
    		"UserId":null,
    		"Role":0,
    		"HireDate":"2012-12-31T22:00",
    		"AddressLine1":null,
    		"AddressLine2":null,
    		"City":null,
    		"State":null,
    		"Country":null,
    		"ZipCode":null,
    		"TimeZone":"FLE Standard Time",
    		"CountryCodeForMobile":null,
    		"CountryMobileCode":null,
    		"Mobile":null,
    		"Password":null,
    		"MaximumHoursPerWeek":null,
    		"MaximumHoursPerDay":null,
    		"MaximumDaysPerWeek":null,
    		"MaximumShiftsPerDay":null,
    		"LocationName":"Test"
    	}
    ]
    
    This method returns a list of employees which current user has access for.
    Authentication methods
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/GetAccessibleEmployees?userName=test&password=test

    Sample Response XML

    <ArrayOfEntityModel>
      <EntityModel>
        <Id>7758852e-ad1a-416f-adea-db5c592c98f8</Id>
        <Name>Test One</Name>
      </EntityModel>
      <EntityModel>
        <Id>d5169f80-1dda-47e9-9877-7c8013f17f98</Id>
        <Name>Test Two</Name>
      </EntityModel>
    </ArrayOfEntityModel> 
    

    Sample Response JSON

    [
    	{
    		"Id":"7758852e-ad1a-416f-adea-db5c592c98f8",
    		"Name":"Test One"
    	},
    	{
    		"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"Name":"Test Two"
    	}]
    
    This method returns a list of employees by selected location
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    locationId Location identifier GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/GetEmployeesByLocation?userName=test&password=test&locationId=12c89d1d-024a-4cd7-b0b9-c3ebef7c8683

    Sample Response XML

    <ArrayOfEntityModel>
      <EntityModel>
        <Id>7758852e-ad1a-416f-adea-db5c592c98f8</Id>
        <Name>Test One</Name>
      </EntityModel>
      <EntityModel>
        <Id>d5169f80-1dda-47e9-9877-7c8013f17f98</Id>
        <Name>Test Two</Name>
      </EntityModel>
    </ArrayOfEntityModel> 
    

    Sample Response JSON

    [
    	{
    		"Id":"7758852e-ad1a-416f-adea-db5c592c98f8",
    		"Name":"Test One"
    	},
    	{
    		"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"Name":"Test Two"
    	}
    ]
    
    This method returns employee's data by his identifier
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    employeeId Employee identifier GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/get?userName=test&password=test&employeeId=d5169f80-1dda-47e9-9877-7c8013f17f98

    Sample Response XML

    <EmployeeModel>
      <Id>d5169f80-1dda-47e9-9877-7c8013f17f98</Id>
      <FirstName>Test</FirstName>
      <LastName>Test</LastName>
      <Email>test@test.com</Email>
      <UserName>test</UserName>
      <UserId>40407</UserId>
      <Role>Admin</Role>
      <HireDate>2012-12-31T22:00</HireDate>
      <AddressLine1>Address2</AddressLine1>
      <AddressLine2>Address line 2</AddressLine2>
      <City>Test City</City>
      <State>AL</State>
      <Country>DZ</Country>
      <ZipCode>83095</ZipCode>
      <TimeZone>FLE Standard Time</TimeZone>
      <MaximumHoursPerWeek xsi:nil="true" />
      <MaximumHoursPerDay xsi:nil="true" />
      <MaximumDaysPerWeek xsi:nil="true" />
      <MaximumShiftsPerDay xsi:nil="true" />
      <LocationName>Test Location</LocationName>
    </EmployeeModel>
    

    Sample Response JSON

    {
    	"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"FirstName":"Test",
    	"LastName":"Test",
    	"Email":"test@test.com",
    	"UserName":"test",
    	"UserId":"40407",
    	"Role":4,
    	"HireDate":"2012-12-31T22:00",
    	"AddressLine1":"Address2",
    	"AddressLine2":"Address line 2",
    	"City":"Test",
    	"State":"AL",
    	"Country":"DZ",
    	"ZipCode":"83095",
    	"TimeZone":"FLE Standard Time",
    	"CountryCodeForMobile":null,
    	"CountryMobileCode":null,
    	"Mobile":null,
    	"MaximumHoursPerWeek":null,
    	"MaximumHoursPerDay":null,
    	"MaximumDaysPerWeek":null,
    	"MaximumShiftsPerDay":null,
    	"LocationName":"Test Location"
    }
    
    This method is used to create new employee. Method doesn't require additional parameters for query string
    Authentication methods
    API Key
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/employees/create?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP

    Sample Request XML

    <EmployeeModel>
      <FirstName>Test</FirstName>
      <LastName>TestSecond</LastName>
      <Email>test@test.com</Email>
      <UserName>test</UserName>
      <Password>test</Password>
      <UserId>40408</UserId>
      <Role>Admin</Role>
      <HireDate>2012-12-31T22:00</HireDate>
      <AddressLine1>Address2</AddressLine1>
      <AddressLine2>Address line 2</AddressLine2>
      <City>Test City</City>
      <State>AL</State>
      <Country>DZ</Country>
      <ZipCode>83095</ZipCode>
      <TimeZone>FLE Standard Time</TimeZone>
      <MaximumHoursPerWeek>40</MaximumHoursPerWeek>
      <MaximumHoursPerDay>8</MaximumHoursPerDay>
      <MaximumDaysPerWeek>5</MaximumDaysPerWeek>
      <MaximumShiftsPerDay>2</MaximumShiftsPerDay>
      <LocationName>Test Location</LocationName>
    </EmployeeModel>
    

    Sample Request JSON

    {
    	"FirstName":"Test",
    	"LastName":"Test",
    	"Email":"test@test.com",
    	"UserName":"test",
    	"Password":"test",
    	"UserId":"40407",
    	"Role":4,
    	"HireDate":"2012-12-31T22:00",
    	"AddressLine1":"Address2",
    	"AddressLine2":"Address line 2",
    	"City":"Test",
    	"State":"AL",
    	"Country":"DZ",
    	"ZipCode":"83095",
    	"TimeZone":"FLE Standard Time",
    	"CountryCodeForMobile":null,
    	"CountryMobileCode":null,
    	"Mobile":null,
    	"MaximumHoursPerWeek":40,
    	"MaximumHoursPerDay":8,
    	"MaximumDaysPerWeek":5,
    	"MaximumShiftsPerDay":1,
    	"LocationName":"Test Location"
    }
    

    Sample Response XML

    <EntityCreateResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
      <Id>de5e3609-6617-49de-9414-75a02d43a9f8</Id>
    </EntityCreateResponseModel>
    

    Sample Response JSON

    {
    	"Id":"de5e3609-6617-49de-9414-75a02d43a9f8",
    	"Errors":[],
    	"Warnings":[]
    }
    
    This method updates an employee. Method doesn't require additional parameters for query string
    Authentication methods
    API Key
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/employees/update?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP

    Sample Request XML

    <EmployeeModel>
      <Id>d5169f80-1dda-47e9-9877-7c8013f17f98</Id>
      <FirstName>Test</FirstName>
      <LastName>TestSecond</LastName>
      <Email>test@test.com</Email>
      <UserName>test</UserName>
      <Password>test</Password>
      <UserId>40408</UserId>
      <Role>Admin</Role>
      <HireDate>2012-12-31T22:00</HireDate>
      <AddressLine1>Address2</AddressLine1>
      <AddressLine2>Address line 2</AddressLine2>
      <City>Test City</City>
      <State>AL</State>
      <Country>DZ</Country>
      <ZipCode>83095</ZipCode>
      <TimeZone>FLE Standard Time</TimeZone>
      <MaximumHoursPerWeek>40</MaximumHoursPerWeek>
      <MaximumHoursPerDay>8</MaximumHoursPerDay>
      <MaximumDaysPerWeek>5</MaximumDaysPerWeek>
      <MaximumShiftsPerDay>2</MaximumShiftsPerDay>
      <LocationName>Test Location</LocationName>
    </EmployeeModel>
    

    Sample Request JSON

    {
    	"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"FirstName":"Test",
    	"LastName":"Test",
    	"Email":"test@test.com",
    	"UserName":"test",
    	"Password":"test",
    	"UserId":"40407",
    	"Role":4,
    	"HireDate":"2012-12-31T22:00",
    	"AddressLine1":"Address2",
    	"AddressLine2":"Address line 2",
    	"City":"Test",
    	"State":"AL",
    	"Country":"DZ",
    	"ZipCode":"83095",
    	"TimeZone":"FLE Standard Time",
    	"CountryCodeForMobile":null,
    	"CountryMobileCode":null,
    	"Mobile":null,
    	"MaximumHoursPerWeek":40,
    	"MaximumHoursPerDay":8,
    	"MaximumDaysPerWeek":5,
    	"MaximumShiftsPerDay":1,
    	"LocationName":"Test Location"
    }
    

    Sample Response XML

    <ResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    
    This method deletes selected employee.
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    employeeId Employee identifier GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/employees/delete?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP&employeeId=8b5b1415-deab-4e6c-8c5a-04366101a3f6

    Sample Response XML

    <ResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    
  • /Locations
    The locations API is used to query the places in which your organization is situated
    This method is used to query all the locations. It doesn't require any additional parameters.
    Authentication methods
    API Key

    Sample URL

     https://app.nimbleschedule.com/api/locations?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP

    Sample Response XML

    <ArrayOfEntityModel>
      <EntityModel>
        <Id>abf82b92-29f1-4eb6-a75c-382cc1e2fae3</Id>
        <Name>Test Location 1</Name>
      </EntityModel>
      <EntityModel>
        <Id>abf82b92-29f1-4eb6-a75c-382cc1e2fae3</Id>
        <Name>Test Location 2</Name>
      </EntityModel>
    </ArrayOfEntityModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"abf82b92-29f1-4eb6-a75c-382cc1e2fae3",
    		"Name":"Test Location 1"
    	}
    	{
    		"Id":"abf82b92-29f1-4eb6-a75c-382cc1e2fae4",
    		"Name":"Test Location 2"
    	}
    ]
    
    This method is used to query locations for which user has access to. It doesn't require any additional parameters.
    Authentication methods
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/locations/GetAccessibleLocations?username=test&password=test

    Sample Response XML

    <ArrayOfEntityModel>
      <EntityModel>
        <Id>abf82b92-29f1-4eb6-a75c-382cc1e2fae3</Id>
        <Name>Test Location 1</Name>
      </EntityModel>
      <EntityModel>
        <Id>abf82b92-29f1-4eb6-a75c-382cc1e2fae3</Id>
        <Name>Test Location 2</Name>
      </EntityModel>
    </ArrayOfEntityModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"abf82b92-29f1-4eb6-a75c-382cc1e2fae3",
    		"Name":"Test Location 1"
    	}
    	{
    		"Id":"abf82b92-29f1-4eb6-a75c-382cc1e2fae4",
    		"Name":"Test Location 2"
    	}
    ]
    
  • /OpenShifts
    Open Shifts API is used to query open shifts requests, approve/reject them and manipulate with open shifts
    This method creates open shift(s) also optional repeation options can be set.
    Authentication methods
    Username and Password

    Sample URL

     https://app.nimbleschedule.com/api/OpenShifts/Create?username=test&password=test

    Sample Request XML

    <CreateOpenShiftsModel">
    	<RepeatType>MonToFri</RepeatType>
    	<EveryXDays>2</EveryXDays>
    	<RepeatEndOccurrenceNumber>10</RepeatEndOccurrenceNumber>
    	<OpenShift>
    		<LocationName>Test Location</LocationName>
    		<PositionName>Test Position</PositionName>
    		<StartAt>2013-03-28T14:03</StartAt>
    		<EndAt>2013-03-28T14:03</EndAt>
    		<Color>92208D</Color>
    		<Title>Title for the shift</Title>
    		<Notes>My notes for the shift</Notes>
    	</OpenShift>
    	<ShiftsNumber>5</ShiftsNumber>
    	<AutomaticallyAssign>false</AutomaticallyAssign>
    </CreateOpenShiftsModel>
    

    Sample Request JSON

    {
    	"OpenShift":
    	{
    		"LocationName":"Test Location",
    		"PositionName":"Test Position",
    		"StartAt":"2013-03-28T14:15",
    		"EndAt":"2013-03-28T14:15",
    		"Color":"92208D",
    		"Title":"Title for the shift",
    		"Notes":"My notes for the shift"
    	},
    	"ShiftsNumber":5,
    	"AutomaticallyAssign":false,
    	"RepeatType":2,
    	"EveryXDays":2,
    	"RepeatEndOccurrenceNumber":10,
    	"RepeatEndDate":null
    }
    

    Sample Response XML

    <ResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    
    This method is used to update open shift. It doesn't require additional parameters for query string.
    Authentication methods
    API Key
    Username and Password

    Sample Request XML

    <ScheduledShiftModel>
    	<LocationName>Test Location</LocationName>
    	<PositionName>Boss</PositionName>
    	<StartAt>2013-03-01T22:30</StartAt>
    	<EndAt>2013-03-02T02:00</EndAt>
    	<Color>92208D</Color>
    	<Title>My test label</Title>
    	<Notes>My test notes</Notes>
    </ScheduledShiftModel>
    

    Sample Request JSON

    {
    	"LocationName":"Test Location",
    	"PositionName":"Boss",
    	"StartAt":"2013-02-27T22:30",
    	"EndAt":"2013-02-28T02:00",
    	"Color":"92208D",
    	"Title":"My test label",
    	"Notes":"My test notes"
    }
    

    Sample Response XML

    <EntityCreateResponseModel>
      <Errors></Errors>
      <Warnings></Warnings>
      <Id>63d3e887-ad3e-41ae-817e-772c85971fb9</Id>
    </EntityCreateResponseModel>
    

    Sample Response JSON

    {
    	"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/Update?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=XML&AuthToken=0zeBkhA9Foj7thh5NkHLk&
    This method returns employee positions which can be assigned to selected open shift
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    shiftId Shift identifier GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/OpenShifts/GetEmployeePositionsForOpenShifts?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&shiftId=6631ec0a-ac46-4415-962c-98da3eeb79c2

    Sample Response XML

    <ArrayOfEmployeePositionModel>
      <EmployeePositionModel>
        <Id>1f06fc8d-9103-4ab9-acce-0080cd3af07e</Id>
        <EmployeeId>7758852e-ad1a-416f-adea-db5c592c98f8</EmployeeId>
        <EmployeeName>Test First</EmployeeName>
        <LocationName>Test Location</LocationName>
        <PositionName>Boss</PositionName>
        <SkillLevel>Advanced</SkillLevel>
        <PayRate>5.0000</PayRate>
      </EmployeePositionModel>
      <EmployeePositionModel>
        <Id>5fc6a75d-2f60-451d-a918-228e49084495</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Second</EmployeeName>
        <LocationName>Test Location</LocationName>
        <PositionName>Boss</PositionName>
        <SkillLevel>Advanced</SkillLevel>
        <PayRate>20.0000</PayRate>
      </EmployeePositionModel>
    </ArrayOfEmployeePositionModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"1f06fc8d-9103-4ab9-acce-0080cd3af07e",
    		"EmployeeId":"7758852e-ad1a-416f-adea-db5c592c98f8",
    		"EmployeeName":"Test First",
    		"LocationName":"Test Location",
    		"PositionName":"Boss",
    		"DepartmentName":null,
    		"SkillLevel":2,
    		"PayRate":5.0000
    	},
    	{
    		"Id":"5fc6a75d-2f60-451d-a918-228e49084495",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Second",
    		"LocationName":"Test Location",
    		"PositionName":"Boss",
    		"DepartmentName":null,
    		"SkillLevel":2,
    		"PayRate":20.0000
    	}
    ]
    
    This method assigns employee position to open shift
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftId Shift identifier GUID Required
    employeePositionId Employee position identifier GUID Required

    Sample URL

     https://app.nimbleschedule.com/api/OpenShifts/AssignEmployeeToOpenShift?format=JSON&username=admin&password=a&employeePositionId=5fc6a75d-2f60-451d-a918-228e49084495&shiftId=6631ec0a-ac46-4415-962c-98da3eeb79c2

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Get open shifts for current employee by date range
    Authentication methods
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required

    Sample URL

     https://app.nimbleschedule.com/api/OpenShifts/GetOpenShiftsForCurrentEmployee?format=JSON&username=test&password=test&startAt=2013-02-01T14:35&endAt=2013-02-28T14:35

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>58a0b58f-800a-4296-ae73-e6f0f76f6292</Id>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-02-25T15:30</StartAt>
        <EndAt>2013-02-25T17:30</EndAt>
        <Color>92208D</Color>
        <Title>My Title</Title>
    	<Notes>My Notes</Notes>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f2266d99-f1d7-45f3-8778-2e40b778ed97</Id>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T00:30</EndAt>
        <Color>92208D</Color>
        <Title>My Title</Title>
    	<Notes>My Notes</Notes>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"58a0b58f-800a-4296-ae73-e6f0f76f6292",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":null,
    		"StartAt":"2013-02-25T15:30",
    		"EndAt":"2013-02-25T17:30",
    		"Color":"92208D",
    		"Title":null,
    		"Notes":null
    	},	
    	{
    		"Id":"f2266d99-f1d7-45f3-8778-2e40b778ed97",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":null,
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T00:30",
    		"Color":"92208D",
    		"Title":null,
    		"Notes":null
    	}
    ]
    
    Method returns open shift requests which current user can approve or reject. Method doesn't require additional parameters.
    Authentication methods
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/RequestsManager?format=JSON&username=test&password=a

    Sample Response XML

    <ArrayOfOpenShiftRequestGroup>
      <OpenShiftRequestGroup>
    	<RequestType>OpenShift</RequestType>
    	<Shift>
    	  <Id>264190fc-3ee2-439a-965d-7d98c5440f5d</Id>
    	  <LocationName>Test</LocationName>
    	  <PositionName>Boss</PositionName>
    	  <StartAt>2013-04-26T04:30</StartAt>
    	  <EndAt>2013-04-26T07:00</EndAt>
    	</Shift>
    	<AlreadyPickedUpByEmployees />
    	<WouldLikeToPickupEmployees>
    	  <OpenShiftRequestShort>
    		<OpenShiftRequestId>e26914b4-2c2a-4803-9ba6-6cc1d4f6fdc5</OpenShiftRequestId>
    		<EmployeeName>Test Test</EmployeeName>
    		<EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
    		<RequestedAt>2013-04-26T07:00</RequestedAt>		
    	  </OpenShiftRequestShort>
    	</WouldLikeToPickupEmployees>
      </OpenShiftRequestGroup>
    </ArrayOfOpenShiftRequestGroup>
    

    Sample Response JSON

    [
    	{
    		"RequestType":"OpenShift"
    		"Shift":
    		{
    			"Id":"264190fc-3ee2-439a-965d-7d98c5440f5d",
    			"LocationName":"Test",
    			"PositionName":"Boss",
    			"StartAt":"2013-04-26T04:30",
    			"EndAt":"2013-04-26T07:00"
    		},
    		"AlreadyPickedUpByEmployees":[],
    		"WouldLikeToPickupEmployees":
    		[
    			{
    				"OpenShiftRequestId":"e26914b4-2c2a-4803-9ba6-6cc1d4f6fdc5",
    				"EmployeeName":"Test Test",
    				"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98"
    				"RequestedAt":"2013-04-26T07:00"
    			}
    		]		
    	}
    ]
    
    Method returns open shift requests which current user sent for approving. Method doesn't require additional parameters.
    Authentication methods
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/RequestsEmployee?format=JSON&username=test&password=a

    Sample Response XML

    <ArrayOfOpenShiftRequestModel>
      <OpenShiftRequestModel>
        <Id>e26914b4-2c2a-4803-9ba6-6cc1d4f6fdc5</Id>
        <RequestType>OpenShift</RequestType>
        <RequestedAt>2013-03-20T14:40</RequestedAt>
        <Status>Pending</Status>
        <Shift>
          <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
          <EmployeeName>Test Test</EmployeeName>
          <PositionName>Boss</PositionName>
    	  <LocationName>Boss</LocationName>
          <StartAt>2013-04-26T04:30</StartAt>
          <EndAt>2013-04-26T07:00</EndAt>
          <Color>92208D</Color>
        </Shift>
      </OpenShiftRequestModel>
    </ArrayOfOpenShiftRequestModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"e26914b4-2c2a-4803-9ba6-6cc1d4f6fdc5",
    		"RequestType":"OpenShift",
    		"RequestedAt":"2013-03-20T14:40",
    		"Status":"Pending",
    		"Shift":
    		{
    			"Id":null,
    			"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    			"EmployeeName":"Test Test",
    			"LocationName":"Test",
    			"PositionName":"Boss",
    			"StartAt":"2013-04-26T04:30",
    			"EndAt":"2013-04-26T07:00",
    			"Color":"92208D"
    		}
    	}
    ]
    
    Method allows you to pick up open shift. Shift can be automatically approved up or the request will be sent to manager for approving. This different functionality depends on company settings
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftId Shift identifier GUID Required

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/PickUpOpenShift?format=JSON&username=test&password=a&shiftId=58a0b58f-800a-4296-ae73-e6f0f76f6292

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Method allows user to cancel submitted request to manager. It is useful if the employee changes his/her mind and decides not to pickup the open shift.
    Authentication methods
    Username and Password
    Parameter Type Description
    openShiftRequestId Open shift request identifier GUID Required

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/CancelRequest?username=test&password=a&openShiftRequestId=52a0b58f-800a-4296-ae73-e6f0f76f6292

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Method approves selected open shift requests. Method requires request body with list of requests as list of global unique identifiers
    Authentication methods
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/ApproveRequests?username=test&password=a

    Sample Request XML

    <OpenShiftRequestsList>
    	<OpenShiftRequest>f7cd4b8d-85bc-49d7-bea5-5884a3b9bd62</OpenShiftRequest>
    	<OpenShiftRequest>cd5bca0d-ac35-44b2-aed3-a1314c19d2ed</OpenShiftRequest>
    </OpenShiftRequestsList>
    

    Sample Request JSON

    {"OpenShiftRequestIds":["a1f5f0f6-06b0-4453-8282-da7503538a67","c0068013-5552-4566-8976-14007a2931e1"]}
    

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
    Method rejects selected open shift requests. Method requires request body with list of requests as list of global unique identifiers
    Authentication methods
    Username and Password

    Sample URL

    https://app.nimbleschedule.com/api/OpenShifts/RejectRequests?username=test&password=a

    Sample Request XML

    <OpenShiftRequestsList>
    	<OpenShiftRequest>f7cd4b8d-85bc-49d7-bea5-5884a3b9bd62</OpenShiftRequest>
    	<OpenShiftRequest>cd5bca0d-ac35-44b2-aed3-a1314c19d2ed</OpenShiftRequest>
    </OpenShiftRequestsList>
    

    Sample Request JSON

    {"OpenShiftRequestIds":["a1f5f0f6-06b0-4453-8282-da7503538a67","c0068013-5552-4566-8976-14007a2931e1"]}
    

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {"Errors":[],"Warnings":[]}
  • /Positions
    The positions API is used to query the availaible positions in your organization
    This method is used to get all positions available in an organization. The method doesn't require additional parameters
    Authentication methods
    API Key
    Username and Password

    Sample Response XML

    <ArrayOfEntityModel>
    	<EntityModel>
    		<Id>b364dd4d-9a40-43d9-989a-2365cb3264a1</Id>
    		<Name>Cook</Name>
    	</EntityModel>
    	<EntityModel>
    		<Id>b364dd4d-9a40-43d9-989a-2365cb3264a2</Id>
    		<Name>Waitress</Name>
    	</EntityModel>
    </ArrayOfEntityModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"b364dd4d-9a40-43d9-989a-2365cb3264a1",
    		"Name":"Cook"
    	}
    	{
    		"Id":"b364dd4d-9a40-43d9-989a-2365cb3264a2",
    		"Name":"Waitress"
    	}
    ]
    

    Sample URL

     https://app.nimbleschedule.com/api/positions?CompanyId=C0935EC1-1B47-4E38-A3B8-4A36FB1F7862&format=JSON&AuthToken=yzmPfNPbYmhwuxBGckOeP
  • /Schedule
    The Schedule API is used for manipulation with schedules
    This method is used to publish a schedule
    Authentication methods
    Username and Password
    Parameter Type Description
    startAt Start date and time for schedule which will be published DateTime in UTC format Required
    endAt End date and time for schedule which will be published DateTime in UTC format Required
    locationId Location identifier GUID Required

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/Schedule/Publish?username=test&format=JSON&password=test
  • /ScheduleShifts
    The schedule shifts API is used to query the shift schedule within your organization
    This method is used to create or update a shift. Also possible to add additional parameters for repeating shifts. It doesn't require additional parameters for query string.
    Authentication methods
    Username and Password

    Sample Request XML

    <ShiftRepeatModel> // If we update the shift this parameter must be set, if we insert the new shift this parameter must be null
    	<RepeatType>EveryXDays</RepeatType> // Possible values: Daily = 0, Weekly = 1, MonToFri = 2, EveryTuesAndThurt = 3, EveryMonWedFri = 4, EveryXDays = 5
    	<EveryXDays>2</EveryXDays>
    	<RepeatEndOccurrenceNumber>4</RepeatEndOccurrenceNumber>
    	<Shift>
    		<Id/> // If we update the shift this parameter must be set, if we insert the new shift this parameter must be not passed
    		<EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
    		<LocationName>Test</LocationName>
    		<PositionName>Boss</PositionName>
    		<DepartmentName>Office Administration</DepartmentName>
    		<StartAt>2013-04-03T11:00</StartAt>
    		<EndAt>2013-04-03T12:00</EndAt>
    		<Color>92208D</Color>
    		<Title>api title</Title>
    		<Notes>from api</Notes>
    	</Shift>
    	<IgnoreWarnings>true</IgnoreWarnings> // if any warnings will be occured (shift overriding, maximum shifts number, etc...) the system will ingnore them
    </ShiftRepeatModel>
    

    Sample Request JSON

    {
    	"Shift":
    	{
    		"Id":"d5169f80-1dda-47e9-9877-7c8013f17f98", // If we update the shift this parameter must be set, if we insert the new shift this parameter must be not passed
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Office Administration",
    		"StartAt":"2013-04-03T11:00",
    		"EndAt":"2013-04-03T12:00",
    		"Color":"92208D",
    		"Title":"api title",
    		"Notes":"from api"
    	},
    	"IgnoreWarnings":true, // if any warnings will be occured (shift overriding, maximum shifts number, etc...) the system will ingnore them
    	"RepeatType":5, // Possible values: Daily = 0, Weekly = 1, MonToFri = 2, EveryTuesAndThurt = 3, EveryMonWedFri = 4, EveryXDays = 5
    	"EveryXDays":2,
    	"RepeatEndOccurrenceNumber":4,
    	"RepeatEndDate":null
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/Save?username=test&password=test&format=XML
    This method is used to create shift employees. It doesn't require additional parameters for query string.
    Authentication methods
    API Key
    Username and Password

    Sample Request XML

    <ScheduledShiftModel>
    	<EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
    	<EmployeeName>Test Employee</EmployeeName>
    	<LocationName>Test Location</LocationName>
    	<PositionName>Boss</PositionName>
    	<DepartmentName>Boss</DepartmentName>
    	<StartAt>2013-03-01T22:30</StartAt>
    	<EndAt>2013-03-02T02:00</EndAt>
    	<Color>92208D</Color>
    	<Title>My test label</Title>
    	<Notes>My test notes</Notes>
    </ScheduledShiftModel>
    

    Sample Request JSON

    {
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"EmployeeName":"Test Employee",
    	"LocationName":"Test Location",
    	"PositionName":"Boss",
    	"DepartmentName":"Training",
    	"StartAt":"2013-02-27T22:30",
    	"EndAt":"2013-02-28T02:00",
    	"Color":"92208D",
    	"Title":"My test label",
    	"Notes":"My test notes"
    }
    

    Sample Response XML

    <EntityCreateResponseModel>
      <Errors></Errors>
      <Warnings></Warnings>
      <Id>63d3e887-ad3e-41ae-817e-772c85971fb9</Id>
    </EntityCreateResponseModel>
    

    Sample Response JSON

    {
    	"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/create?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=XML&AuthToken=0zeBkhA9Foj7thh5NkHLk&
    This method is used to update a shift. It doesn't require additional parameters for query string.
    Authentication methods
    API Key
    Username and Password

    Sample Request XML

    <ScheduledShiftModel>
    	<Id>d5169f80-1dda-47e9-9877-7c8013f17f97</Id>
    	<EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
    	<EmployeeName>Test Employee</EmployeeName>
    	<LocationName>Test Location</LocationName>
    	<PositionName>Boss</PositionName>
    	<DepartmentName>Boss</DepartmentName>
    	<StartAt>2013-03-01T22:30</StartAt>
    	<EndAt>2013-03-02T02:00</EndAt>
    	<Color>92208D</Color>
    	<Title>My test label</Title>
    	<Notes>My test notes</Notes>
    </ScheduledShiftModel>
    

    Sample Request JSON

    {
    	"Id":"d5169f80-1dda-47e9-9877-7c8013f17f97",
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"EmployeeName":"Test Employee",
    	"LocationName":"Test Location",
    	"PositionName":"Boss",
    	"DepartmentName":"Training",
    	"StartAt":"2013-02-27T22:30",
    	"EndAt":"2013-02-28T02:00",
    	"Color":"92208D",
    	"Title":"My test label",
    	"Notes":"My test notes"
    }
    

    Sample Response XML

    <ResponseModel>
      <Errors></Errors>
      <Warnings></Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/update?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=XML&AuthToken=0zeBkhA9Foj7thh5NkHLk&
    This method is used to delete a shift.
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    scheduledShiftId Shift identifier GUID Required

    Sample Response XML

    <ResponseModel>
      <Errors></Errors>
      <Warnings></Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/delete?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=XML&AuthToken=0zeBkhA9Foj7thh5NkHLk&scheduledShiftId=53119E7D-6DD8-4727-8A5E-0173BC712834
    This method is used to get the details of a shift.
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    scheduledShiftId Shift identifier GUID Required

    Sample Response XML

    <ScheduledShiftModel>
      <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
      <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
      <EmployeeName>Test Test</EmployeeName>
      <LocationName>Test</LocationName>
      <PositionName>Boss</PositionName>
      <DepartmentName>Training</DepartmentName>
      <StartAt>2013-02-27T22:30</StartAt>
      <EndAt>2013-02-28T02:00</EndAt>
      <Color>92208D</Color>
      <Title>My test label</Title>
      <Notes>My test notes</Notes>
    </ScheduledShiftModel>
    

    Sample Response JSON

    {
    	"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    	"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    	"EmployeeName":"Test Test",
    	"LocationName":"Test",
    	"PositionName":"Boss",
    	"DepartmentName":"Training",
    	"StartAt":"2013-02-27T22:30",
    	"EndAt":"2013-02-28T02:00",
    	"Color":"92208D",
    	"Title":"My test label",
    	"Notes":"My test notes"
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/getshift?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&scheduledShiftId=f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267
    This method is used to get shifts by selected date range. It returns only published shifts if logged user is employee and all shifts if logged user is administrator, manager or scheduler
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>dd860e83-f220-4ed8-b6a9-4d4b31ef139c</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-27T22:30</StartAt>
        <EndAt>2013-02-28T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes"
    		"IsPublished":"true"
    	},
    	{
    		"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-27T22:30",
    		"EndAt":"2013-02-28T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":"true"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/GetShifts?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&startAt=2013-02-25T15:07&endAt=2013-02-28T15:07
    This method is used to get shifts by selected date range and location. It returns only published shifts if logged user is employee and all shifts if logged user is administrator, manager or scheduler
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required
    locationId Location identifier GUID Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>dd860e83-f220-4ed8-b6a9-4d4b31ef139c</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-27T22:30</StartAt>
        <EndAt>2013-02-28T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":"true"
    	},
    	{
    		"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-27T22:30",
    		"EndAt":"2013-02-28T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":"true"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/GetShiftsByLocation?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&startAt=2013-02-25T15:07&endAt=2013-02-28T15:07&locationId=53119E7D-6DD8-4727-8A5E-0173BC712836
    This method is used to get shifts by selected date range and employee. It returns only published shifts if logged user is employee and all shifts if logged user is administrator, manager or scheduler
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required
    employeeId Employee identifier GUID Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>dd860e83-f220-4ed8-b6a9-4d4b31ef139c</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-27T22:30</StartAt>
        <EndAt>2013-02-28T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":"true"
    	},
    	{
    		"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-27T22:30",
    		"EndAt":"2013-02-28T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":"true"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/GetShiftsByEmployee?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&startAt=2013-02-25T15:07&endAt=2013-02-28T15:07&employeeId=53119E7D-6DD8-4727-8A5E-0173BC712837
    This method is used to get shifts by selected date range, employee and location. It returns only published shifts if logged user is employee and all shifts if logged user is administrator, manager or scheduler
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required
    employeeId Employee identifier GUID Required
    locationId Location identifier GUID Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>dd860e83-f220-4ed8-b6a9-4d4b31ef139c</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <DepartmentName>Training</DepartmentName>
        <StartAt>2013-02-27T22:30</StartAt>
        <EndAt>2013-02-28T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":true
    	},
    	{
    		"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":"Training",
    		"StartAt":"2013-02-27T22:30",
    		"EndAt":"2013-02-28T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":true
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/GetShiftsByEmployeeAndLocation?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&startAt=2013-02-25T15:07&endAt=2013-02-28T15:07&employeeId=53119E7D-6DD8-4727-8A5E-0173BC712837&locationId=53119E7D-6DD8-4727-8A5E-0173BC712837
    Methods returns list of open shifts by selected date range and location. It returns only published shifts if logged user is employee and all shifts if logged user is administrator, manager or scheduler.
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required
    locationId Location identifier GUID Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>dd860e83-f220-4ed8-b6a9-4d4b31ef139c</Id>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-02-27T22:30</StartAt>
        <EndAt>2013-02-28T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":true
    	},
    	{
    		"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"StartAt":"2013-02-27T22:30",
    		"EndAt":"2013-02-28T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":true
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/GetOpenShifts?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&startAt=2013-02-25T15:07&endAt=2013-02-28T15:07&locationId=53119E7D-6DD8-4727-8A5E-0173BC712837
    This method is used to get published open shifts by selected date range and employee
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    startAt Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required
    employeeId Employee identifier GUID Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>dd860e83-f220-4ed8-b6a9-4d4b31ef139c</Id>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-02-25T22:30</StartAt>
        <EndAt>2013-02-26T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267</Id>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-02-27T22:30</StartAt>
        <EndAt>2013-02-28T02:00</EndAt>
        <Color>92208D</Color>
        <Title>My test label</Title>
        <Notes>My test notes</Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"StartAt":"2013-02-25T22:30",
    		"EndAt":"2013-02-26T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":true
    	},
    	{
    		"Id":"f8fe6ae1-fcc0-4f3a-9fa4-0ce2eb354267",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"StartAt":"2013-02-27T22:30",
    		"EndAt":"2013-02-28T02:00",
    		"Color":"92208D",
    		"Title":"My test label",
    		"Notes":"My test notes",
    		"IsPublished":true
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/scheduledshifts/GetEmployeePublishedOpenShifts?CompanyId=53119E7D-6DD8-4727-8A5E-0173BC712835&format=JSON&AuthToken=0zeBkhA9Foj7thh5NkHLk&startAt=2013-02-25T15:07&endAt=2013-02-28T15:07&employeeId=53119E7D-6DD8-4727-8A5E-0173BC712837
  • /ShiftTrade
    The shift trades API is used to query the requests for shift trading, and to approve and reject them
    This method is used to get list of shifts which are can be applied for trading.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftId Shift identifier GUID Required

    Sample Response XML

    <ArrayOfScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>1843642f-d2bb-45f5-ac22-152878d3f6c1</Id>
        <EmployeeId>7758852e-ad1a-416f-adea-db5c592c98f8</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Boss</PositionName>
        <StartAt>2013-03-02T14:00</StartAt>
        <EndAt>2013-03-02T15:00</EndAt>
        <Color>92208D</Color>
    	<Title>My Title</Title>
        <Notes></Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
      <ScheduledShiftModel>
        <Id>7b758d28-aed0-4759-928b-d39184ea66e8</Id>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test T</EmployeeName>
        <LocationName>Test</LocationName>
        <PositionName>Big Boss2</PositionName>
        <DepartmentName>Kitchen</DepartmentName>
        <StartAt>2013-03-04T23:00</StartAt>
        <EndAt>2013-03-05T00:30</EndAt>
        <Color>92208D</Color>
    	<Title>My Title</Title>
        <Notes></Notes>
    	<IsPublished>true</IsPublished>
      </ScheduledShiftModel>
    </ArrayOfScheduledShiftModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"1843642f-d2bb-45f5-ac22-152878d3f6c1",
    		"EmployeeId":"7758852e-ad1a-416f-adea-db5c592c98f8",
    		"EmployeeName":"Test Test",
    		"LocationName":"Test",
    		"PositionName":"Boss",
    		"DepartmentName":null,
    		"StartAt":"2013-03-02T14:00",
    		"EndAt":"2013-03-02T15:00",
    		"Color":"92208D",
    		"Title":null,
    		"Notes":null,
    		"IsPublished":true
    	},
    	{
    		"Id":"7b758d28-aed0-4759-928b-d39184ea66e8",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test T",
    		"LocationName":"Test",
    		"PositionName":"Big Boss2",
    		"DepartmentName":"Kitchen",
    		"StartAt":"2013-03-04T23:00",
    		"EndAt":"2013-03-05T00:30",
    		"Color":"92208D",
    		"Title":null,
    		"Notes":null,
    		"IsPublished":true
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/SearchShiftsForTrade?format=JSON&username=test&password=test&shiftId=b1c14ab7-03fe-4030-b0fa-4e49c2342e0d
    This method is used to submit request about trading. The method doesn't require additional parameteter for query string
    Authentication methods
    Username and Password

    Sample Request XML

    <ShiftTradeRequestCommand>
    	<ShiftId>fe699d56-f59b-4f1e-a040-3fb22cd59cc9</ShiftId>
    	<ShiftTradeOptionIds>
    		<guid>a600b3f1-3230-4767-bd0a-57cb58895215</guid>
    		<guid>2c0a6f15-5004-4954-8bb2-3d8f043b30c6</guid>
    	</ShiftTradeOptionIds>
    	<Reason>Need to visit a doctor</Reason>
    </ShiftTradeRequestCommand>
    

    Sample Request JSON

    {
    	"ShiftId":"22253b43-858e-46a0-85ac-3d9574beb8d0",
    	"ShiftTradeOptionIds":
    		[
    			"e3be3350-dbb5-4434-b888-e5fc9bfd2264",
    			"811328a3-041c-4db5-b9ee-680dbce4f95f"
    		],
    	"Reason":"Need to visit a doctor"
    }
    

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/SubmitRequest?format=XML&username=test&password=test
    This method is used to cancel submitted request.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftTradeId Identifier of the request. GUID Required

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/CancelRequest?format=XML&username=test&password=test&shiftTradeId=b1c14ab7-03fe-4030-b0fa-4e49c2342e0d
    This method is used to get shifts which are waiting for trade and pickup. It doesn't require additional parameters for query string
    Authentication methods
    Username and Password

    Sample Response XML

    <ArrayOfShiftTradeRequestModel>
      <ShiftTradeRequestModel>
        <Id>1f7f4e5b-d53e-45aa-a8da-89407436c388</Id>
        <RequestType>TradeShift</RequestType>
        <RequestedAt>2013-03-19T13:49</RequestedAt>
        <Status>Pending</Status>
    	<Reason>Pending</Reason>
        <Shift>
          <EmployeeId>5a027455-6095-4307-9ca9-74dbf2cb9ee1</EmployeeId>
          <EmployeeName>Test Test</EmployeeName>
          <LocationName>Test Cafe</LocationName>
          <PositionName>123</PositionName>
          <StartAt>2013-03-20T09:00</StartAt>
          <EndAt>2013-03-20T11:00</EndAt>
        </Shift>
        <ShiftTradeOptions>
          <ShiftTradeOption>
            <Id>1f7f4e5b-d53e-45aa-a8da-89407436c388</Id>
            <Shift>
              <EmployeeId>bef3110c-767a-43df-9431-65ed85302d5d</EmployeeId>
              <EmployeeName>E K</EmployeeName>
              <LocationName>Test Cafe</LocationName>
              <PositionName>123</PositionName>
              <DepartmentName>Accounting Finance</DepartmentName>
              <StartAt>2013-03-20T11:00</StartAt>
              <EndAt>2013-03-20T13:00</EndAt>
            </Shift>
          </ShiftTradeOption>
        </ShiftTradeOptions>
      </ShiftTradeRequestModel>
    </ArrayOfShiftTradeRequestModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"1f7f4e5b-d53e-45aa-a8da-89407436c388",
    		"RequestType":"TradeShift",
    		"RequestedAt":"2013-03-19T13:49",
    		"Status":"Pending",
    		"Reason":null,
    		"Shift":
    		{
    			"EmployeeId":"5a027455-6095-4307-9ca9-74dbf2cb9ee1",
    			"EmployeeName":"Test Test",
    			"LocationName":"Test Cafe","PositionName":"123",
    			"DepartmentName":null,
    			"StartAt":"2013-03-20T09:00",
    			"EndAt":"2013-03-20T11:00"
    		},
    		"ShiftTradeOptions":
    		[
    			{
    				"Id":"1f7f4e5b-d53e-45aa-a8da-89407436c388",
    				"Shift":
    					{
    						"EmployeeId":"bef3110c-767a-43df-9431-65ed85302d5d",
    						"EmployeeName":"E K",
    						"LocationName":"Adlina\u0027s Cafe",
    						"PositionName":"123",
    						"DepartmentName":"Accounting Finance",
    						"StartAt":"2013-03-20T11:00",
    						"EndAt":"2013-03-20T13:00"
    					}
    			}
    		]
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/PendingTrades?format=JSON&username=test&password=test
    This method is used to pickup shift which were sent for trading.
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftTradeRequestOptionId Start date and time DateTime in UTC format Required
    endAt End date and time DateTime in UTC format Required
    shiftTradeRequestOptionId Identifier of the request. To get this identifier look on the Pickups request GUID Required

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/PickupShift?format=JSON&username=test&password=test&shiftTradeRequestOptionId=b1c14ab7-03fe-4030-b0fa-4e49c2342ea1
    This method is used to get shift trade requests. It doesn't require additional parameters for query string
    Authentication methods
    Username and Password

    Sample Response XML

    <ArrayOfShiftTradeRequestModel>
      <ShiftTradeRequestModel>
        <Id>f87fae6b-c8f7-4766-8aaa-2a29ce7bc8bc</Id>
        <RequestType>TradeShift</RequestType>
        <RequestedAt>2013-03-20T13:33</RequestedAt>
        <Status>Pending</Status>
        <Shift>
          <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
          <EmployeeName>Test Test</EmployeeName>
          <LocationName>Test</LocationName>
          <PositionName>Banker</PositionName>
          <DepartmentName>Office Administration</DepartmentName>
          <StartAt>2013-03-21T11:00</StartAt>
          <EndAt>2013-03-21T12:00</EndAt>
        </Shift>
        <ShiftTradeOptions>
          <ShiftTradeOption>
            <Id>10a24060-8995-44ba-b127-d2c9efd4da6a</Id>
            <Status>Pending</Status>
            <Shift>
              <EmployeeId>c220bab4-b727-4728-87c3-9b54ceba78bd</EmployeeId>
              <EmployeeName>Test Test</EmployeeName>
              <LocationName>Test</LocationName>
              <PositionName>Boss</PositionName>
              <StartAt>2013-03-21T08:00</StartAt>
              <EndAt>2013-03-21T09:00</EndAt>
            </Shift>
          </ShiftTradeOption>
        </ShiftTradeOptions>
      </ShiftTradeRequestModel>
    </ArrayOfShiftTradeRequestModel>
    

    Sample Response JSON

    [
    	{
    		"Shift":
    			{
    				"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    				"EmployeeName":"Test Test",
    				"LocationName":"Test",
    				"PositionName":"Banker",
    				"DepartmentName":"Office Administration",
    				"StartAt":"2013-03-21T11:00",
    				"EndAt":"2013-03-21T12:00"
    			},
    			"ShiftTradeOptions":
    				[
    					{
    						"Id":"10a24060-8995-44ba-b127-d2c9efd4da6a",
    						"Status":"Pending",
    						"Shift":
    							{
    								"EmployeeId":"c220bab4-b727-4728-87c3-9b54ceba78bd",
    								"EmployeeName":"Test Test",
    								"LocationName":"Test",
    								"PositionName":"Boss",
    								"DepartmentName":null,
    								"StartAt":"2013-03-21T08:00",
    								"EndAt":"2013-03-21T09:00"
    							}
    					}
    				],
    			"Reason":null,
    			"Id":"f87fae6b-c8f7-4766-8aaa-2a29ce7bc8bc",
    			"RequestType":"TradeShift",
    			"RequestedAt":"2013-03-20T13:33",
    			"Status":"Pending"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/RequestsManager?username=test&password=test
    This method is used to get shift trade requests which current user sent
    Authentication methods
    Username and Password

    Sample Response XML

    <ArrayOfShiftTradeRequestModel>
      <ShiftTradeRequestModel>
        <Id>f87fae6b-c8f7-4766-8aaa-2a29ce7bc8bc</Id>
        <RequestType>TradeShift</RequestType>
        <RequestedAt>2013-03-20T13:33</RequestedAt>
        <Status>Pending</Status>
        <Shift>
          <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
          <EmployeeName>Test Test</EmployeeName>
          <LocationName>Test</LocationName>
          <PositionName>Banker</PositionName>
          <DepartmentName>Office Administration</DepartmentName>
          <StartAt>2013-03-21T11:00</StartAt>
          <EndAt>2013-03-21T12:00</EndAt>
        </Shift>
        <ShiftTradeOptions>
          <ShiftTradeOption>
            <Id>10a24060-8995-44ba-b127-d2c9efd4da6a</Id>
            <Status>Pending</Status>
            <Shift>
              <EmployeeId>c220bab4-b727-4728-87c3-9b54ceba78bd</EmployeeId>
              <EmployeeName>Test Test</EmployeeName>
              <LocationName>Test</LocationName>
              <PositionName>Boss</PositionName>
              <StartAt>2013-03-21T08:00</StartAt>
              <EndAt>2013-03-21T09:00</EndAt>
            </Shift>
          </ShiftTradeOption>
        </ShiftTradeOptions>
      </ShiftTradeRequestModel>
    </ArrayOfShiftTradeRequestModel>
    

    Sample Response JSON

    [
    	{
    		"Shift":
    			{
    				"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    				"EmployeeName":"Test Test",
    				"LocationName":"Test",
    				"PositionName":"Banker",
    				"DepartmentName":"Office Administration",
    				"StartAt":"2013-03-21T11:00",
    				"EndAt":"2013-03-21T12:00"
    			},
    			"ShiftTradeOptions":
    				[
    					{
    						"Id":"10a24060-8995-44ba-b127-d2c9efd4da6a",
    						"Status":"Pending",
    						"Shift":
    							{
    								"EmployeeId":"c220bab4-b727-4728-87c3-9b54ceba78bd",
    								"EmployeeName":"Test Test",
    								"LocationName":"Test",
    								"PositionName":"Boss",
    								"DepartmentName":null,
    								"StartAt":"2013-03-21T08:00",
    								"EndAt":"2013-03-21T09:00"
    							}
    					}
    				],
    			"Reason":null,
    			"Id":"f87fae6b-c8f7-4766-8aaa-2a29ce7bc8bc",
    			"RequestType":"TradeShift",
    			"RequestedAt":"2013-03-20T13:33",
    			"Status":"Pending"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/RequestsEmployee?username=test&password=test
    This method is used to approve shift trade request
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftTradeRequestOptionId Identifier of the request. To get this identifier look on the Pickups request GUID Required

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/ApproveSwap?username=test&password=test&shiftTradeOptionRequestId=b1c14ab7-03fe-4030-b0fa-4e49c2342e0d
    This method is used to reject shift trade request
    Authentication methods
    Username and Password
    Parameter Type Description
    shiftTradeRequestId Identifier of the shift trade request GUID Required

    Sample Response XML

    <ResponseModel>
    	<Errors>
    	</Errors>
    	<Warnings>
    	</Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/ShiftTrade/RejectSwap?username=test&password=test&shiftTradeRequestId=dsc14ab7-03fe-4030-b0fa-4e49c2342a01
  • /Reports
    The shift trades API is used to query the requests for shift trading, and to approve and reject them
    This method is used to generate payroll report
    Authentication methods
    API Key
    Username and Password

    Sample Request XML

    <PayrollCommand>
      <StartAt>2013-02-04T00:00</StartAt>
      <EndAt>2013-05-04T00:00</EndAt>
      <EmployeeIds>
        <guid>d5169f80-1dda-47e9-9877-7c8013f17f98</guid>
        <guid>36a61dbc-810e-462b-b7b6-e7e3c1213668</guid>
      </EmployeeIds>
    </PayrollCommand>
    

    Sample Request JSON

    {
    	"StartAt":"2013-03-04T00:00",
    	"EndAt":"2013-03-04T00:00",
    	"EmployeeIds":
    	[
    		"7052d3ae-e470-4ca2-a86c-e5ec89333b80",
    		"6188bf71-ab48-46c7-a684-7ee980cd9dc7"
    	]
    }
    

    Sample Response XML

    <ArrayOfPayrollReportModel>
      <PayrollReportModel>
        <EmployeeIdInternal>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeIdInternal>
        <EmployeeId>40407</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <StartAt>2013-02-05T01:00</StartAt>
        <EndAt>2013-02-05T02:00</EndAt>
        <PayRate>0</PayRate>
      </PayrollReportModel>
      <PayrollReportModel>
        <EmployeeIdInternal>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeIdInternal>
        <EmployeeId>40407</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <StartAt>2013-02-04T22:30</StartAt>
        <EndAt>2013-02-05T00:00</EndAt>
        <PayRate>0</PayRate>
      </PayrollReportModel>
    </ArrayOfPayrollReportModel>
    

    Sample Response JSON

    [
    	{
    		"EmployeeIdInternal":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeId":"40407",
    		"EmployeeName":"Test Test",
    		"StartAt":"2013-02-05T01:00",
    		"EndAt":"2013-02-05T02:00",
    		"PayRate":0
    	},
    	{
    		"EmployeeIdInternal":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeId":"40407",
    		"EmployeeName":"Test Test",
    		"StartAt":"2013-02-04T22:30",
    		"EndAt":"2013-02-05T00:00",
    		"PayRate":0
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/Reports/Payroll?username=test&password=test
  • /TimeClocks
    TimeClocks API is used for "clock in" and "clock out" operations and for some other actions
    This method is used to return list of job codes. It doesn't require additional parameters in query string
    Authentication methods
    API Key
    Username and Password

    Sample Response XML

    <ArrayOfJobCodeModel>
      <JobCodeModel>
        <Id>51b61567-aced-41fd-9bbd-b8b323058bc7</Id>
        <Title>Job Code Test Title</Title>
        <Description>Job Code Test Description</Description>
      </JobCodeModel>
    </ArrayOfJobCodeModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"51b61567-aced-41fd-9bbd-b8b323058bc7",
    		"Title":"Job Code Test Title",
    		"Description":"Job Code Test Description"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeClocks/GetJobCodes?username=test&password=test
    This method is used to return current clock in state. If Clock In was clicked IsActive property is true
    Authentication methods
    Username and Password

    Sample Response XML

    <TimeClockState>
      <TimeClockId>df735e01-713b-4903-b1de-77513d01679b</TimeClockId>
      <StartAt>2013-06-14T09:02</StartAt>
      <IsActive>true</IsActive>
    </TimeClockState>
    
    <TimeClockState>
      <TimeClockId/>
      <IsActive>false</IsActive>
    </TimeClockState>
    

    Sample Response JSON

    {
    	"TimeClockId":null,
    	"StartAt":null,
    	"IsActive":false
    }
    
    {
    	"TimeClockId":"df735e01-713b-4903-b1de-77513d01679b",
    	"StartAt":"2013-06-14T09:02",
    	"IsActive":true
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeClocks/GetClockInState?username=test&password=test
    This method is used to "Clock In" operation
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    employeeId Employee identifier. GUID Required

    Sample Response XML

    <EntityCreateResponseModel>
      <Errors />
      <Warnings />
      <Id>49d92a3b-c899-4de6-9bb0-4856ba9817b4</Id>
    </EntityCreateResponseModel>
    

    Sample Response JSON

    {
    	"Id":"2a49beef-8db5-4c91-a3fd-a5aa6fa8ced6",
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeClocks/ClockIn?username=test&password=test&employeeId=d5169f80-1dda-47e9-9877-7c8013f17f98
    This method is used to "Clock Out" operation
    Authentication methods
    API Key
    Username and Password
    Parameter Type Description
    timeClockId TimeClock identifier. GUID Required
    notes Notes string Optional
    jobCodeId Job code identifier GUID Optional
    employeePositionId Employee position identifier GUID Optional
    latitude Latitude where Clock Out was clicked float Optional
    longitude Longitude where Clock Out was clicked float Optional

    Sample Response XML

    <ResponseModel>
      <Errors />
      <Warnings />
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeClocks/ClockOut?username=test&password=test&timeClockId=d6169f80-1dda-47e9-9877-7c8013f17f98
    This method is used to return list of clocked in employees. It doesn't require additional parameters in query string.
    Authentication methods
    Username and Password

    Sample Response XML

    <ArrayOfClockedInEmployeeModel>
        <ClockedInEmployeeModel>
            <Id>d681960c-510c-4292-bfd2-9bea83dda437</Id>
            <FirstName>Amy</FirstName>
            <LastName>Clark</LastName>
            <FullName>Amy Clark</FullName>
        </ClockedInEmployeeModel>
    </ArrayOfClockedInEmployeeModel>
    

    Sample Response JSON

        {
            "Id":"d681960c-510c-4292-bfd2-9bea83dda437",
            "FirstName":"Amy",
            "LastName":"Clark",
            "FullName":"Amy Clark"
        }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeClocks/GetClockedInEmployees?username=test&password=test
  • /TimeOff
    This unit was created to manipulate with time off requets
    This method is used to get time off requests which other users sent for approving/rejecting. It doesn't require additional parameters for query string.
    Authentication methods
    Username and Password

    Sample Response XML

    <ArrayOfTimeOffRequestModel>
      <TimeOffRequestModel>
        <Id>6227ab0a-0da2-4f31-8c93-a5a0dbbf304f</Id>
        <RequestType>TimeOff</RequestType>
        <RequestedAt>2013-03-21T12:27</RequestedAt>
        <Status>Pending</Status>
        <Reason>I need to get some rest</Reason>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <StartAt>2013-03-27T22:00</StartAt>
        <EndAt>2013-03-29T22:00</EndAt>
      </TimeOffRequestModel>
    </ArrayOfTimeOffRequestModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"6227ab0a-0da2-4f31-8c93-a5a0dbbf304f",
    		"RequestType":"TimeOff",
    		"RequestedAt":"2013-03-21T12:27",
    		"Status":"Pending"
    		"Reason":"I need to get some rest",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"StartAt":"2013-03-27T22:00",
    		"EndAt":"2013-03-29T22:00"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeOff/RequestsManager?username=test&password=test
    This method is used to get time off requests which current user sent for approving and rejecting. It doesn't require additional parameters for query string.
    Authentication methods
    Username and Password

    Sample Response XML

    <ArrayOfTimeOffRequestModel>
      <TimeOffRequestModel>
        <Id>6227ab0a-0da2-4f31-8c93-a5a0dbbf304f</Id>
        <RequestType>TimeOff</RequestType>
        <RequestedAt>2013-03-21T12:27</RequestedAt>
        <Status>Pending</Status>
        <Reason>I need to get some rest</Reason>
        <EmployeeId>d5169f80-1dda-47e9-9877-7c8013f17f98</EmployeeId>
        <EmployeeName>Test Test</EmployeeName>
        <StartAt>2013-03-27T22:00</StartAt>
        <EndAt>2013-03-29T22:00</EndAt>
      </TimeOffRequestModel>
    </ArrayOfTimeOffRequestModel>
    

    Sample Response JSON

    [
    	{
    		"Id":"6227ab0a-0da2-4f31-8c93-a5a0dbbf304f",
    		"RequestType":"TimeOff",
    		"RequestedAt":"2013-03-21T12:27",
    		"Status":"Pending"
    		"Reason":"I need to get some rest",
    		"EmployeeId":"d5169f80-1dda-47e9-9877-7c8013f17f98",
    		"EmployeeName":"Test Test",
    		"StartAt":"2013-03-27T22:00",
    		"EndAt":"2013-03-29T22:00"
    	}
    ]
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeOff/RequestsEmployee?username=test&password=test
    This method is used to update existing time-off request or inserting new one
    Authentication methods
    Username and Password

    Sample Request XML

    <TimeOffRequestModel>
    	<Id>6227ab0a-0da2-4f31-8c93-a5a0dbbf304f</Id>	<!-- This field is needed to updating a request, for inserting skip this field in request -->
    	<Reason>I need to get some rest</Reason>
    	<StartAt>2013-03-27T22:00</StartAt>
    	<EndAt>2013-03-29T22:00</EndAt>
    </TimeOffRequestModel>
    

    Sample Request JSON

    {
    	"Id":"6227ab0a-0da2-4f31-8c93-a5a0dbbf304f",	/* This field is needed to updating a request, for inserting skip this field in request */
    	"Reason":"I need to get some rest",
    	"StartAt":"2013-03-27T22:00",
    	"EndAt":"2013-03-29T22:00"
    }
    

    Sample Response XML

    <EntityCreateResponseModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Errors></Errors>
      <Warnings></Warnings>
      <Id>3aa7c1f6-2011-497a-941a-5ba5a7645912</Id>
    </EntityCreateResponseModel>
    

    Sample Response JSON

    {
    	"Id":"dd860e83-f220-4ed8-b6a9-4d4b31ef139c",
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeOff/AddEditTimeOffRequest?username=test&password=test
    This method is used to approve time-off request.
    Authentication methods
    Username and Password
    Parameter Type Description
    timeOffRequestId Time-off request identifier. GUID Required

    Sample Response XML

    <ResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeOff/ApproveTimeOffRequest?username=test&password=test&timeOffRequestId=d5169f80-1dda-47e9-9877-7c8013f17f98
    This method is used to approve time-off request.
    Authentication methods
    Username and Password
    Parameter Type Description
    timeOffRequestId Time-off request identifier. GUID Required

    Sample Response XML

    <ResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeOff/RejectTimeOffRequest?username=test&password=test&timeOffRequestId=d5169f80-1dda-47e9-9877-7c8013f17f98
    This method is used to delete time-off request.
    Authentication methods
    Username and Password
    Parameter Type Description
    timeOffRequestId Time-off request identifier. GUID Required

    Sample Response XML

    <ResponseModel>
      <Errors>
      </Errors>
      <Warnings>
      </Warnings>
    </ResponseModel>
    

    Sample Response JSON

    {
    	"Errors":[],
    	"Warnings":[]
    }
    

    Sample URL

    https://app.nimbleschedule.com/api/TimeOff/DeleteTimeOffRequest?username=test&password=test&timeOffRequestId=d5169f80-1dda-47e9-9877-7c8013f17f98