Resource
A resourceResourceAn entity that can carry out work - a person, vehicle, tool, or room - that you schedule on the planning board. in Dime.Scheduler is someone or something that needs to be allocated during a certain timeframe in order for a taskTaskA unit of work that belongs to a job. It appears in the open task list until it is scheduled to a resource. to be performed or fulfilled. This can be a service technician, a sales person, an employee, a car, a machine or equipment, a hotel or meeting room, etc.
The following entities are exposed through the API.
Resource
Upsert
Inserts or updates a resource record.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | See API reference | ||
| SourceType | nvarchar(10) | See API reference | ||
| ResourceType | nvarchar(100) | The resource type's name, see API reference | ||
| ResourceTypeId | int | 1 | The resource type's internal id, see API reference | |
| ResourceName | nvarchar(100) | |||
| DisplayName | nvarchar(100) | |||
| Department | nvarchar(50) | |||
| ResourceNo | nvarchar(50) | ✔️ | The resource's external identifier. | |
| nvarchar(100) | ||||
| Phone | nvarchar(50) | |||
| MobilePhone | nvarchar(50) | |||
| ReplacementResource | bit | |||
| FieldServiceEmail | nvarchar(100) | |||
| PersonalEmail | nvarchar(100) | |||
| GpsTrackingResourceNo | nvarchar(50) | |||
| HomeAddress | nvarchar(max) | |||
| HomeStreet | nvarchar(255) | |||
| HomeStreetNo | nvarchar(20) | |||
| HomeAddressGeoLong | float | |||
| HomeAddressGeoLat | float | |||
| HomePhone | nvarchar(50) | |||
| HomeEmail | nvarchar(50) | |||
| HomeRegion | nvarchar(10) | |||
| HomePostcode | nvarchar(20) | |||
| HomeCity | nvarchar(50) | |||
| HomeCounty | nvarchar(50) | |||
| HomeState | nvarchar(50) | |||
| HomeCountry | nvarchar(50) | |||
| TeamCode | nvarchar(20) | |||
| TeamName | nvarchar(100) | |||
| TeamType | nvarchar(20) | |||
| TeamSort | int | |||
| TeamMemberType | nvarchar(20) | |||
| TeamMemberSort | int | |||
| FreeText1 | nvarchar(100) | See API reference | ||
| FreeText2 | nvarchar(100) | See API reference | ||
| FreeText3 | nvarchar(100) | See API reference | ||
| FreeText4 | nvarchar(100) | See API reference | ||
| FreeText5 | nvarchar(100) | See API reference | ||
| FreeText6 | nvarchar(100) | See API reference | ||
| FreeText7 | nvarchar(100) | See API reference | ||
| FreeText8 | nvarchar(100) | See API reference | ||
| FreeText9 | nvarchar(100) | See API reference | ||
| FreeText10 | nvarchar(100) | See API reference | ||
| FreeText11 | nvarchar(100) | See API reference | ||
| FreeText12 | nvarchar(100) | See API reference | ||
| FreeText13 | nvarchar(100) | See API reference | ||
| FreeText14 | nvarchar(100) | See API reference | ||
| FreeText15 | nvarchar(100) | See API reference | ||
| FreeText16 | nvarchar(100) | See API reference | ||
| FreeText17 | nvarchar(100) | See API reference | ||
| FreeText18 | nvarchar(100) | See API reference | ||
| FreeText19 | nvarchar(100) | See API reference | ||
| FreeText20 | nvarchar(100) | See API reference | ||
| FreeDecimal1 | decimal(18, 6) | See API reference | ||
| FreeDecimal2 | decimal(18, 6) | See API reference | ||
| FreeDecimal3 | decimal(18, 6) | See API reference | ||
| FreeDecimal4 | decimal(18, 6) | See API reference | ||
| FreeDecimal5 | decimal(18, 6) | See API reference | ||
| FreeDecimal6 | decimal(18, 6) | See API reference | ||
| FreeDecimal7 | decimal(18, 6) | See API reference | ||
| FreeDecimal8 | decimal(18, 6) | See API reference | ||
| FreeDecimal9 | decimal(18, 6) | See API reference | ||
| FreeDecimal10 | decimal(18, 6) | See API reference | ||
| FreeDate1 | datetime | See API reference | ||
| FreeDate2 | datetime | See API reference | ||
| FreeDate3 | datetime | See API reference | ||
| FreeDate4 | datetime | See API reference | ||
| FreeDate5 | datetime | See API reference | ||
| FreeBit1 | bit | 0 | See API reference | |
| FreeBit2 | bit | 0 | See API reference | |
| FreeBit3 | bit | 0 | See API reference | |
| FreeBit4 | bit | 0 | See API reference | |
| FreeBit5 | bit | 0 | See API reference | |
| DoNotShow | bit | See API reference | ||
| InServiceFrom | date | |||
| InServiceTill | date | |||
| ExchangeIntegrationEnabled | bit | See API reference | ||
| url1 | nvarchar(1000) | |||
| urldesc1 | nvarchar(255) | |||
| url2 | nvarchar(1000) | |||
| urldesc2 | nvarchar(255) | |||
| url3 | nvarchar(1000) | |||
| urldesc3 | nvarchar(255) | |||
| BulkPlanning | bit | |||
| BulkCapacity | decimal(18,6) | |||
| ResourceGpsTrackingEnabled | bit | See API reference | ||
| Pin | nvarchar(100) | See API reference | ||
| ExcludeFromBudgetCalculation | bit | 0 | See API reference |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResource. - Example body:
[{"StoredProcedureName": "mboc_upsertResource","ParameterNames": ["ResourceNo", "DisplayName"],"ParameterValues": ["LINDA", "Linda Martin"]}]
See POST /resource, PUT /resource in the REST API reference.
Delete
Removes a resource.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceNo | nvarchar(50) | ✔️ | |
| CheckAppointments | bit | 1 | |
| SourceApp | nvarchar(30) | ||
| SourceType | nvarchar(10) | ||
| SentFromBackOffice | bit | 1 |
By default Dime.Scheduler refuses to remove a resource that still has appointments, so a delete coming from the back office cannot quietly erase a planner's work. The request fails with APP009 and names the record. Pass CheckAppointments as 0 only when you genuinely intend the resource to go regardless.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteResource. - Example body:
[{"StoredProcedureName": "mboc_deleteResource","ParameterNames": ["ResourceNo"],"ParameterValues": ["LINDA"]}]
See the resource endpoints in the REST API reference.
Resource member
A resource can stand for a group of other resources: a crewCrewA resource that stands for a group of other resources. Dropping work on a crew fans the booking out to every member, which suits people who always work together., a poolPoolA group resource for work where you know how many people you need but not yet who. Assigning a pool holds one slot against the pool itself, to be resolved to a named resource later. or a departmentDepartmentA grouping of resources used to sort and group rows on the planning board and in the grids. As a group behavior in the crews view, a department cannot be booked; it exists for structure and reporting.. The membership edges that make up those groups are resource members, and this is how a back office keeps them in step with its own team structure.
Whether a resource is a group at all, and how it behaves when you plan on it, is configured in Dime.Scheduler rather than sent through the import. See crews for what the group behaviours mean and when to use each one.
Upsert resource member
Adds a resource to a group, or updates the window an existing membership is valid for.
| Name | Data Type | Default | Required |
|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | |
| SourceType | nvarchar(10) | ✔️ | |
| GroupResourceNo | nvarchar(50) | ✔️ | |
| ResourceNo | nvarchar(50) | ✔️ | |
| ValidFrom | date | ||
| ValidTo | date |
GroupResourceNo is the group, ResourceNo the member. ValidFrom and ValidTo bound the period the membership applies to, which is how you model someone joining a crew in March and leaving in September without losing the history. Leave both empty for an open-ended membership.
Three rules are enforced, because a membership graph that breaks them cannot be planned on:
- A resource cannot be a member of itself (
APP004). - A membership that would close a loop is rejected (
APP007), including indirectly through several groups. - A crew may only contain individual resources or other crews. Putting a pool or a department inside a crew is rejected with
APP005.
If the group or the member does not exist, the request fails with DATA004; if the resource you named as the group is not configured as one, with APP003.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceMember. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceMember","ParameterNames": ["SourceApp", "SourceType", "GroupResourceNo", "ResourceNo", "ValidFrom"],"ParameterValues": ["BC1", "RESOURCE", "CREW-NORTH", "LINDA", "2026-03-01"]}]
See the resource member endpoints in the REST API reference.
Delete resource member
Removes a resource from a group. The resource itself is untouched.
| Name | Data Type | Default | Required |
|---|---|---|---|
| SourceApp | nvarchar(30) | ✔️ | |
| SourceType | nvarchar(10) | ✔️ | |
| GroupResourceNo | nvarchar(50) | ✔️ | |
| ResourceNo | nvarchar(50) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteResourceMember. - Example body:
[{"StoredProcedureName": "mboc_deleteResourceMember","ParameterNames": ["SourceApp", "SourceType", "GroupResourceNo", "ResourceNo"],"ParameterValues": ["BC1", "RESOURCE", "CREW-NORTH", "LINDA"]}]
See the resource member endpoints in the REST API reference.
Filter value
Upsert filter value
Inserts or updates a resource filter value record. This assigns a filter valueFilter valueA single value inside a filter group, used as a qualification on a resource or a requirement on a task. to a resource.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | See API reference | ||
| SourceType | nvarchar(10) | See API reference | ||
| ResourceNo | nvarchar(50) | ✔️ | ||
| FilterGroup | nvarchar(50) | ✔️ | ||
| FilterValue | nvarchar(100) | ✔️ | ||
| TransferToTemp | bit | 0 | See API reference |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceFilterValue. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceFilterValue","ParameterNames": ["ResourceNo", "FilterGroup", "FilterValue"],"ParameterValues": ["LINDA", "Skill", "Service management"]}]
See POST /resourceFilterValue, PUT /resourceFilterValue in the REST API reference.
Delete filter value
Removes a filter value from a resource.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | See API reference | ||
| SourceType | nvarchar(10) | See API reference | ||
| ResourceNo | nvarchar(50) | ✔️ | ||
| FilterGroup | nvarchar(20) | ✔️ | ||
| FilterValue | nvarchar(20) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteResourceFilterValue. - Example body:
[{"StoredProcedureName": "mboc_deleteResourceFilterValue","ParameterNames": ["ResourceNo", "FilterGroup", "FilterValue"],"ParameterValues": ["LINDA", "Skill", "Service management"]}]
See DELETE /resourceFilterValue in the REST API reference.
Clear filter value
Removes all filter values from a resource.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| SourceApp | nvarchar(30) | See API reference | ||
| SourceType | nvarchar(10) | See API reference | ||
| ResourceNo | nvarchar(50) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_clearResourceFilterValue. - Example body:
[{"StoredProcedureName": "mboc_clearResourceFilterValue","ParameterNames": ["ResourceNo"],"ParameterValues": ["LINDA"]}]
This endpoint is not available yet.
Upsert live location
Inserts or updates the live location of a resource. The position on the map in Dime.Scheduler is updated automatically when a record is inserted or updated.
| Name | Data Type | Default | Required | Description |
|---|---|---|---|---|
| ResourceNo | nvarchar(50) | ✔️ | ||
| GpsTrackingResourceNo | nvarchar(50) | ✔️ | ||
| Latitude | float | ✔️ | ||
| Longitude | float | ✔️ | ||
| Speed | int | Deprecated | ||
| Date | date | Deprecated | ||
| RowId | nvarchar(100) | Deprecated | ||
| Power | nvarchar(50) | Deprecated |
The resource number or the GPS resource tracking number is required in order to successfully insert or update a record.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceGpsTracking. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceGpsTracking","ParameterNames": ["ResourceNo", "GpsTrackingResourceNo", "Longitude", "Latitude"],"ParameterValues": ["LINDA", "LINDA", "50.45545","30.5308981"]}]
- See
POST /resourceGpsTracking,PUT /resourceGpsTrackingin the REST API reference. - Example body:
[{"ResourceNo": "JEANNE","Latitude": 50.8503,"Longitude": 4.3517},{"ResourceNo": "WILLIAM","Latitude": 51.2194,"Longitude": 4.4025}]
Upsert capacity
The resource capacityCapacityThe amount of working time a resource has available in a given period, used to spot over- and under-planning. is set per day. If omitted, default values are set for CapacityUOM (hour by default) and CapacityUOMConversion (3600 by default). You need to provide either CapacityInSeconds or CapacityQty. The other value is calculated using CapacityUOMConversion.
The resource's capacity is vital for the capacity pivot grid to generate reliable results.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceNo | nvarchar(50) | ✔️ | |
| CapacityDate | date | ||
| CapacityInSeconds | bigint | ||
| CapacityQty | decimal(18,6) | ||
| CapacityUOM | nvarchar(20) | ||
| CapacityUOMConversion | decimal(18,6) |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceCapacity. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceCapacity","ParameterNames": ["ResourceNo", "CapacityDate","CapacityQty" ],"ParameterValues": ["LINDA", "2024-01-01", "8"]}]
See POST /resourceCapacity, PUT /resourceCapacity in the REST API reference.
Upsert URI
Inserts or updates a resource URI record. Resource URIs contain links to documents, web pages and the back-office system.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceNo | nvarchar(50) | ✔️ | |
| Url | nvarchar(1000) | ||
| UrlDesc | nvarchar(255) |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceUrl. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceUrl","ParameterNames": ["ResourceNo", "Url"],"ParameterValues": ["LINDA", "https://docs.dimescheduler.com"]}]
See POST /resourceUri, PUT /resourceUri in the REST API reference.
Resource calendar
A resource works the hours of a calendarCalendarA definition of when work can happen, for the whole tenant or for specific resources: business hours, weekends and holidays. Calendars shade non-working time on the planning board and skip it in Gantt durations.. The calendar itself, with its working days, hours and holidays, is set up in Dime.Scheduler (see calendars). This entity is the assignment: which calendar a resource follows, and for which period. Assignments are bounded by a start and an end date, so a resource can follow a part-time calendar until June and a full-time one from July without either record being rewritten.
Upsert resource calendar
Assigns a calendar to a resource for a period, or updates an existing assignment.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceCalendarCode | nvarchar(50) | ✔️ | |
| ResourceNo | nvarchar(50) | ✔️ | |
| CalendarCode | nvarchar(255) | ✔️ | |
| StartDate | date | ✔️ | |
| EndDate | date | ✔️ |
ResourceCalendarCode is the identity of the assignment, not of the calendar: it names this particular combination of resource, calendar and period. Sending the same code again updates the assignment, including moving it to another resource or calendar; a new code creates a second assignment. StartDate and EndDate are both inclusive.
The resource must exist, otherwise the request fails with DATA004, and so must the calendar (DATA006). Calendars are matched on their code, which is the code that GET /calendar returns for each calendar.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceCalendar. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceCalendar","ParameterNames": ["ResourceCalendarCode", "ResourceNo", "CalendarCode", "StartDate", "EndDate"],"ParameterValues": ["LINDA-2026", "LINDA", "FULLTIME", "2026-01-01", "2026-12-31"]}]
- See
POST /resourceCalendar,PUT /resourceCalendarin the REST API reference. The REST body names the fieldscode,resourceNo,calendarCode,startDateandendDate. GET /calendarlists the calendars of the tenant, with thecodeto use here. See the REST API reference.
Delete resource calendar
Removes an assignment. The resource and the calendar are left untouched, and a code that does not exist is accepted without effect.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceCalendarCode | nvarchar(50) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteResourceCalendar. - Example body:
[{"StoredProcedureName": "mboc_deleteResourceCalendar","ParameterNames": ["ResourceCalendarCode"],"ParameterValues": ["LINDA-2026"]}]
See DELETE /resourceCalendar in the REST API reference. It takes the same body as the upsert; the assignment is identified by code.
Resource certificate
This feature is deprecated and will be removed in a future version. Use filter values to express what a resource is qualified for.
A resource certificate records that a resource holds a certificate, passed an exam or obtained a score, together with when that last happened and until when it is valid. Certificates are matched against a task's certificate in the resource and appointment pages when UseCertificate is activated on the resource typeResource typeA logical grouping of resources, such as "excavator" or "consultant", used to organize and filter them on the planning board..
Upsert resource certificate
Inserts or updates a resource certificate record.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceNo | nvarchar(50) | ✔️ | |
| CertificateNo | nvarchar(50) | ✔️ | |
| Score | nvarchar(100) | '' | |
| LastScoreDate | datetime | ||
| ValidUntil | datetime |
The pair ResourceNo and CertificateNo is the identity: sending the same pair again overwrites the score and the dates. The resource must exist, otherwise the request fails with DATA004.
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_upsertResourceCertificate. - Example body:
[{"StoredProcedureName": "mboc_upsertResourceCertificate","ParameterNames": ["ResourceNo", "CertificateNo", "Score", "LastScoreDate", "ValidUntil"],"ParameterValues": ["LINDA", "FORKLIFT", "PASS", "2026-02-10", "2028-02-10"]}]
See POST /resourceCertificate, PUT /resourceCertificate in the REST API reference. The REST body names the fields resourceNo, no, score, lastScoreDate and validUntil.
Delete resource certificate
Deletes a resource certificate record.
| Name | Data Type | Default | Required |
|---|---|---|---|
| ResourceNo | nvarchar(50) | ✔️ | |
| CertificateNo | nvarchar(50) | ✔️ |
- Import
- API
- This endpoint is available in the import API endpoint
/importvia the proceduremboc_deleteResourceCertificate. - Example body:
[{"StoredProcedureName": "mboc_deleteResourceCertificate","ParameterNames": ["ResourceNo", "CertificateNo"],"ParameterValues": ["LINDA", "FORKLIFT"]}]
See DELETE /resourceCertificate in the REST API reference.
API reference
Source
Dime.Scheduler is a centralized planning application. One of its key tenets is the ability to accommodate data from different origins. For instance, it is perfectly acceptable to plan work orders from Business Central, CRM, imported Excel sheets, etc., and Dime.Scheduler won't break a sweat because of the existence of the Source App and Source Type fields in the data model.
Source App
When the planner creates an appointment for a resource or task, Dime.Scheduler knows which system to notify. Through the connector setup, Dime.Scheduler will find a matching SourceApp and subsequently send the appointment to the corresponding URI.
The source appSource appAn identifier Dime.Scheduler attaches to data so it can route a change back to the correct back-office system. field is a unique identifier that identifies a back-officeBack officeThe ERP or business system Dime.Scheduler plans for - most often Microsoft Dynamics 365 Business Central. It owns the master data and remains authoritative over what it receives. instance such as a tenant of Business Central, a test environment, an instance of CRM cloud, or any other application you wish to use to feed data into Dime.Scheduler.
The back office is bound to a connector
Each back-office instance - a Business Central tenant, a CRM environment, an Excel sheet - is identified by a Source App. The connector is configured for that one Source App and nothing else, so Dime.Scheduler always knows which system any record came from.
Source Type
The SourceType is used inside the back-office system itself. A source typeSource typeAn identifier that, together with the source app, tells Dime.Scheduler which back-office table a record belongs to. represents a distinct entity such as a service orderService orderA Business Central service management document. The service order solution plans it as one task or as one task per service item line, and writes the assignment back as a resource allocation., production orderProduction orderA Business Central manufacturing order with routing lines. The production routing solution puts those lines on the planning board against work and machine centers while BC’s own rules still hold., assembly orderAssembly orderA Business Central document that says what to build. The assembly order solution schedules the resources that build it and keeps the order’s dates in sync., etc.
The standard connectorsConnectorAn integration that links Dime.Scheduler to a back-office system, routing data in and scheduling decisions back out. that Dime Software provides make it possible to plan different types of resources and tasks. When Dime.Scheduler posts an appointment to a standard connector, it ends up in a staging tableStaging tableThe Dime.Scheduler Appointments table in Business Central where incoming appointments land first. Business Central processes rows from there, so a row can be received and still fail processing., which is then processed by the connector to ensure the appointment produced in Dime.Scheduler is traced back to the original record using the externally identifiable fields (JobNo, TaskNo, ResourceNo) that identify the record.
Resource type
Every resource belongs to a resource typeResource typeA logical grouping of resources, such as "excavator" or "consultant", used to organize and filter them on the planning board., which groups resources and controls how they behave on the planning board (see resource types). Send either ResourceType, the type's name, or ResourceTypeId, its internal id. A name that does not exist yet is created on the fly; an id must already exist, otherwise the request fails with REQ005. When neither is sent, the default 1 applies.
GET /resourcetype lists the resource types of the tenant with their id, name and display name, so an integration can look up the id before it sends resources. See the REST API reference.
Exchange Integration Enabled
This field determines whether to synchronize the appointmentAppointmentA task scheduled to a resource for a specific period - the scheduled instance you see on the planning board. with the resource's Outlook calendar.
GPS Tracking Enabled
This field determines whether to enable live location tracking. To use this feature, the 'Advanced map' optional modules must be acquired.
Do not show
This field determines if the resource should be visible in the planning boardPlanning boardThe main graphical scheduling surface where dispatchers drag tasks onto resources across a timeline.. The number of resources with this field switched off (i.e. they are shown on the planning board) determines the license validity.
Pin
Controls the visual indicator of the planned task in the map. Read more about marker colors.
Free fields
Free fieldsFree fieldOne of the unmapped fields on jobs, tasks and appointments that a back office can fill with its own data, each with a localizable caption. are unmapped fields that you can link custom fields to.
The captionCaptionThe label shown for a field or entity in the interface, translatable per language. A tenant that calls jobs "projects" changes the caption, not the data model. can be changed through the captions localization system. Either use the GUI and look for the corresponding field of the corresponding source table for the 'DATABASEFIELD' context, or use the API.
Transfer to temp
The TransferToTemp field indicates whether the resource filter value(s) are being sent to Dime.Scheduler before (value = 1 or True) or after (value = 0 or False) the resource is sent.
Exclude from budget calculation
When set to true, resources assigned to appointments will be ignored when updating the remaining budget of a task.