Skip to main content

Task

A taskTaskA unit of work that belongs to a job. It appears in the open task list until it is scheduled to a resource. is a child entity of a jobJobA high-level container, comparable to a project, that bundles related tasks together with common information such as customer, billing, and address., and a job is required before any task can be added. A task record for which no appointmentsAppointmentA task scheduled to a resource for a specific period - the scheduled instance you see on the planning board. exist is considered as an open taskOpen taskA task that has not been scheduled yet. It waits in the open task list to be placed on the planning board., and will therefore be displayed in the open tasks component.

The following entities are exposed through the API.

Task​

Upsert​

Inserts or updates a task record.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️The job's external identifier to assign this task to.
TaskNonvarchar(50)✔️The task's external identifier.
ShortDescriptionnvarchar(50)✔️
Descriptionnvarchar(MAX)
TaskTypeint0See API reference
Namenvarchar(255)
Typenvarchar(20)
Categorynvarchar(100)See API reference
TimeMarkernvarchar(100)See API reference
Pinnvarchar(100)See API reference
Tagsnvarchar(1000)See API reference
ServiceNonvarchar(50)
ServiceGroupnvarchar(20)
ServiceClassnvarchar(20)
ServiceSerialNonvarchar(50)
ServiceNamenvarchar(50)
IRISFaultnvarchar(10)
IRISSymptomnvarchar(10)
IRISAreanvarchar(10)
IRISReasonnvarchar(10)
IRISResolutionnvarchar(10)
Skill1nvarchar(10)
Skill2nvarchar(10)
Skill3nvarchar(10)
ContractNonvarchar(20)
ContractTypenvarchar(30)
ContractDescriptionnvarchar(MAX)
ContractStartDatedate
ContractEndDatedate
PartsWarrantyStartDatedate
PartsWarrantyEndDatedate
LaborWarrantyStartDatedate
LaborWarrantyEndDatedate
Importanceint0See API reference
Statusnvarchar(20)
ExpectedResponseDateTimedatetime
ActualResponseDateTimedatetime
RequestedStartDatedatetimeSee API reference
RequestedEndDatedatetimeSee API reference
RequestedStartTimetimeSee API reference
RequestedEndTimetimeSee API reference
ConfirmedStartDatedatetime
ConfirmedEndDatedatetime
ActualStartDatedatetime
ActualEndDatedatetime
LocationDescriptionnvarchar(MAX)
Durationtime(7)
DurationInSecondsbigintThe estimated duration of the task. Determines the initial length of the appointment when dropped on the planning board.
Subjectnvarchar(max)See API reference
Bodynvarchar(max)See API reference
InfiniteTaskbit0See API reference
TaskOpenAsOfdatetime
TaskOpenTilldatetime
RequiredTotalDurationtime(7)
RequiredNoResourcesint
AppointmentEarliestAlloweddatetimeSee API reference
AppointmentLatestAlloweddatetimeSee API reference
FreeText1nvarchar(100)See API reference
FreeText2nvarchar(100)See API reference
FreeText3nvarchar(100)See API reference
FreeText4nvarchar(100)See API reference
FreeText5nvarchar(100)See API reference
FreeText6nvarchar(100)See API reference
FreeText7nvarchar(100)See API reference
FreeText8nvarchar(100)See API reference
FreeText9nvarchar(100)See API reference
FreeText10nvarchar(100)See API reference
FreeText11nvarchar(100)See API reference
FreeText12nvarchar(100)See API reference
FreeText13nvarchar(100)See API reference
FreeText14nvarchar(100)See API reference
FreeText15nvarchar(100)See API reference
FreeText16nvarchar(100)See API reference
FreeText17nvarchar(100)See API reference
FreeText18nvarchar(100)See API reference
FreeText19nvarchar(100)See API reference
FreeText20nvarchar(100)See API reference
FreeDecimal1decimal(18, 6)See API reference
FreeDecimal2decimal(18, 6)See API reference
FreeDecimal3decimal(18, 6)See API reference
FreeDecimal4decimal(18, 6)See API reference
FreeDecimal5decimal(18, 6)See API reference
FreeDate1datetimeSee API reference
FreeDate2datetimeSee API reference
FreeDate3datetimeSee API reference
FreeDate4datetimeSee API reference
FreeDate5datetimeSee API reference
FreeBit1bit0See API reference
FreeBit2bit0See API reference
FreeBit3bit0See API reference
FreeBit4bit0See API reference
FreeBit5bit0See API reference
url1nvarchar(1000)
urldesc1nvarchar(255)
url2nvarchar(1000)
urldesc2nvarchar(255)
url3nvarchar(1000)
urldesc3nvarchar(255)
CertificateNonvarchar(50)
RequiredTotalDurationInSecondsbigint
DoNotCountAppointmentResourcebit0
IsCompletebit0
PlanningUOMnvarchar(20)
PlanningUOMConversiondecimal(18,6)0
PlanningQtydecimal(18,6)0
UseFixPlanningQtybit0
RoundToUOMbit0
AppointmentTemplatenvarchar(100)
BulkPlanningQtydecimal(18, 6)
StartDatedatetime
EndDatedatetime
PercentDoneint
SchedulingModeint0
BaseLineStartDatedatetime
BaseLineEndDatedatetime
BaseLinePercentDoneint
DeadLinedatetime
Indexint
ConstraintTypeint0
ConstraintDatedatetime
ParentTaskNonvarchar(50)
CalendarCodenvarchar(255)
PredecessorTaskNonvarchar(50)
PredecessorLagint
ManuallyScheduledbitSee API reference
PerpetuationInSecondsbigintSee API reference
ReplaceUrlsbit0See API reference
Notenvarchar(max)
OverRuleGanttPlanningbit0See API reference
IgnoreCalendarsbit0
ContainerNamenvarchar(255)
ContainerIndexint
  • This endpoint is available in the import API endpoint /import via the procedure mboc_upsertTask.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_upsertTask",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "ShortDescription", "Description"],
    "ParameterValues": ["BC", "JOB", "JOB001", "TASK001", "Important work", "Important work, but in more words"]
    }
    ]

Delete​

Deletes a task record. The behavior of this procedure depends on the CheckAppointments flag:

  • When CheckAppointments is true: the task is not deleted when there are appointments for the task.
  • When CheckAppointments is false: the task is deleted without further checks. When a task is deleted, all appointments attached to the task, if any, are also deleted.
NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
CheckAppointmentsbit✔️
SentFromBackOfficebit1
  • This endpoint is available in the import API endpoint /import via the procedure mboc_deleteTask.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_deleteTask",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "CheckAppointments"],
    "ParameterValues": ["BC", "JOB", "JOB001", "TASK001", "false"]
    }
    ]

Upsert task URI​

Inserts or updates a task uri record. A task link contains links to documents, web pages and the back-office system.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
urlnvarchar(1000)
urldescnvarchar(255)
  • This endpoint is available in the import API endpoint /import via the procedure mboc_upsertTaskUrl.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_upsertTaskUrl",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "url", "urldesc"],
    "ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "https://docs.dimescheduler.com", "Dime.Scheduler docs"]
    }
    ]

Set lock​

Locks or unlocks all appointments for the task. A locked appointmentLocked appointmentAn appointment that cannot be moved or edited. The lock is set in the back office, not in Dime.Scheduler, and locked appointments are drawn with shaded stripes. can not be modified nor deleted on the planning boardPlanning boardThe main graphical scheduling surface where dispatchers drag tasks onto resources across a timeline..

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
Lockedbit0
SentFromBackOfficebit1
  • This endpoint is available in the import API endpoint /import via the procedure mboc_updateTaskLocked.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_updateTaskLocked",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "Locked"],
    "ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "true"]
    }
    ]

Filter value​

Upsert filter value​

Inserts or updates a task 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 task.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
FilterGroupnvarchar(50)✔️
FilterValuenvarchar(100)✔️
TransferToTempbit0See API reference
  • This endpoint is available in the import API endpoint /import via the procedure mboc_upsertTaskFilterValue.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_upsertTaskFilterValue",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "FilterGroup", "FilterValue"],
    "ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "Skill", "Yodeling"]
    }
    ]

Delete filter value​

Deletes a task filter value record. This removes a filter value from a task.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
FilterGroupnvarchar(20)✔️
FilterValuenvarchar(20)✔️
  • This endpoint is available in the import API endpoint /import via the procedure mboc_deleteTaskFilterValue.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_deleteTaskFilterValue",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "FilterGroup", "FilterValue"],
    "ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "Skill", "Yodeling"]
    }
    ]

Clear filter value​

Deletes all task filter value records. This removes all filter values from a task.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
  • This endpoint is available in the import API endpoint /import via the procedure mboc_clearTaskFilterValue.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_clearTaskFilterValue",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo"],
    "ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001"]
    }
    ]

Task container​

Upsert task container​

Inserts or updates a task container.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
ContainerNamenvarchar(255)✔️
Indexint
  • This endpoint is available in the import API endpoint /import via the procedure mboc_upsertTaskContainer.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_upsertTaskContainer",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "ContainerName"],
    "ParameterValues": ["BC", "Job", "JOB001", "JOBTASK001", "PROJECT_ABC"]
    }
    ]

Delete task container​

Removes the task container.

NameData TypeDefaultRequiredDescription
SourceAppnvarchar(30)✔️See API reference
SourceTypenvarchar(10)✔️See API reference
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
ContainerNamenvarchar(255)
  • This endpoint is available in the import API endpoint /import via the procedure mboc_deleteTaskContainer.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_deleteTaskContainer",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "ContainerName"],
    "ParameterValues": ["BC", "JOB", "JOB001", "JOBTASK001", "PROJECT_ABC"]
    }
    ]

Task dependency​

A dependency says that one task cannot be scheduled freely because another task constrains it. The Gantt chartGantt chartA timeline view for long-term project planning, showing tasks, durations, dependencies and milestones. uses dependencies to work out the order of a projectProjectA job seen as a whole in project planning: a body of work with a budget, a team, dependencies and a deadline. Its tasks are still planned as ordinary appointments on the board. and to find its critical path.

Tasks carry PredecessorTaskNo and PredecessorLag, which express a single predecessor within the same job. A task dependency is the richer form: it links any two tasks, across jobs if needed, it lets one task have several predecessors, and it lets you choose which ends of the two tasks are tied together.

Use the fields on the task for the simple case, and this entity when a task has more than one predecessor or when the relationship is not a plain finish-to-start.

Upsert task dependency​

Creates or updates the dependency between two tasks.

NameData TypeDefaultRequired
SourceAppnvarchar(30)✔️
SourceTypenvarchar(10)✔️
FromJobNonvarchar(50)✔️
FromTaskNonvarchar(50)✔️
ToJobNonvarchar(50)✔️
ToTaskNonvarchar(50)✔️
Typeint
Lagint
LagUnitnvarchar(50)

The dependency runs from the first task to the second: From is the predecessor, To is the task that depends on it. The four task identifiers together are the dependency's identity, so sending the same pair again updates the existing link rather than adding a second one.

Type selects which ends of the two tasks are tied together:

ValueTypeMeaning
0Start to startThe successor cannot start before the predecessor does.
1Start to endThe successor cannot end before the predecessor starts.
2End to startThe successor cannot start before the predecessor ends.
3End to endThe successor cannot end before the predecessor does.

Lag adds a delay to the relationship, and LagUnit is the unit it is expressed in. A task cannot depend on itself; that request is rejected with APP012.

  • This endpoint is available in the import API endpoint /import via the procedure mboc_upsertTaskDependency.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_upsertTaskDependency",
    "ParameterNames": ["SourceApp", "SourceType", "FromJobNo", "FromTaskNo", "ToJobNo", "ToTaskNo", "Type"],
    "ParameterValues": ["BC1", "JOB", "JOB001", "1000", "JOB001", "1010", "2"]
    }
    ]

Delete task dependency​

Removes the dependency. Both tasks are left untouched.

NameData TypeDefaultRequired
SourceAppnvarchar(30)✔️
SourceTypenvarchar(10)✔️
FromJobNonvarchar(50)✔️
FromTaskNonvarchar(50)✔️
ToJobNonvarchar(50)✔️
ToTaskNonvarchar(50)✔️
  • This endpoint is available in the import API endpoint /import via the procedure mboc_deleteTaskDependency.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_deleteTaskDependency",
    "ParameterNames": ["SourceApp", "SourceType", "FromJobNo", "FromTaskNo", "ToJobNo", "ToTaskNo"],
    "ParameterValues": ["BC1", "JOB", "JOB001", "1000", "JOB001", "1010"]
    }
    ]

Read​

GET /task reads tasks back; there is no import procedure for reading. By default it returns only open tasks. Pass isOpen=false to include closed and fully planned tasks as well. That list is served in pages, so page (1-based) and pageSize (1 to 1000) are required with it and optional otherwise, and a page that comes back shorter than pageSize is the last one. See the REST API reference.

Task budget entry​

A budget entryBudget entryA record of budget consumed by a task over a range of days, kept in an append-only ledger. A correction is a new entry that cancels an earlier one, so the history stays auditable. records a change to a task's budget: hours used, or hours added. Entries are the ledger behind the budget of a project, and the ledger is append-only. Nothing is ever edited; a mistake is corrected with a second entry that cancels the first, and a negative entry gives budget back.

The task's budget figure itself is set with RequiredTotalDurationInSeconds on the task. Use entries for what has been consumed against it, typically posted figures from the back office.

Upsert task budget entry​

Appends an entry, or rewrites the one a previous call created.

NameData TypeDefaultRequired
SourceAppnvarchar(30)✔️
SourceTypenvarchar(10)✔️
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
DeltaInSecondsbigint✔️
PeriodStartdate✔️
PeriodEnddate✔️
Sourceint2
Descriptionnvarchar(500)
ExternalIduniqueidentifier

DeltaInSeconds is the change: negative to use budget, positive to add to it. Zero is refused, and so is a PeriodEnd before PeriodStart.

Source says where the figure came from:

ValueSourceMeaning
0PlanningWritten by the scheduled job, from the task's appointments.
1TimesheetWritten by the scheduled job, from the task's time entries.
2ManualRecorded by hand. The default.
3BudgetWritten by the task import when the task's budget figure changes.
4ExternalSupplied by another system, for example a posted figure from Business Central.

Without ExternalId every call appends a new entry, which is what an append-only ledger expects, but it also means a retried import writes the figure twice. Send your own ExternalId and the call becomes safe to repeat: a second call with the same identity rewrites that entry instead of twinning it, and it is also the address the delete takes. An identity that already belongs to an entry on another task is refused with REQ003 rather than moved.

  • This endpoint is available in the import API endpoint /import via the procedure mboc_upsertTaskBudgetEntry.
  • Example body:
    [
    {
    "StoredProcedureName": "mboc_upsertTaskBudgetEntry",
    "ParameterNames": ["SourceApp", "SourceType", "JobNo", "TaskNo", "DeltaInSeconds", "PeriodStart", "PeriodEnd", "Source", "ExternalId"],
    "ParameterValues": ["BC1", "JOB", "JOB001", "1000", "-14400", "2026-03-16", "2026-03-16", "4", "6f1c2e8a-9b3d-4c7e-a1f0-2d5b8c9e7a11"]
    }
    ]

Delete task budget entry​

Removes the entry addressed by ExternalId. Only entries written with an identity can be deleted this way; one written without is corrected with a cancelling entry instead.

NameData TypeDefaultRequired
SourceAppnvarchar(30)✔️
SourceTypenvarchar(10)✔️
JobNonvarchar(50)✔️
TaskNonvarchar(50)✔️
ExternalIduniqueidentifier✔️
  • This endpoint is available in the import API endpoint /import via the procedure mboc_deleteTaskBudgetEntry.

API Reference​

Requested dates​

This set of fields are behavioral data. See requested dates for more info.

Requested times​

This set of fields are behavioral data. See requested times for more info.

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.

Back officeERP · CRM · LoB
served bySource App
ConnectorBound to one Source App
creates
JobProject container
contains
TaskWork to do
scheduled as
AppointmentPlanning decision
Step 1 of 4Back office Connector

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.

Infinite​

When set to true, the task will always remain available in the open task list. Typical examples include holiday and sickness tasks.

Time windows​

The earliest and latest allowed dates make it possible to define a date range in which the task has to be scheduled. See allowed date constraints for more information.

Task type​

Planning can be done in two ways: through the planning board or through the Gantt chart. When the task type is the latter (value 1), drag and drop will be disabled in the open task list, and planning will need to be done through the Gantt chart.

Read more on task types.

Importance​

Controls the visual indicator of the planned task in the planning board. Read more about importance.

Subject and body​

Through the field template setup, the task's subject and body is set when imported in Dime.Scheduler.

Category​

Controls the visual indicator of the planned task in the planning board. Read more about categories.

Time Marker​

Controls the visual indicator of the planned task in the planning board. Read more about time markers.

Pin​

Controls the visual indicator of the planned task in the map. Read more about marker colors.

Tags​

Preview

Tags are currently in preview. Functionality and behavior may change between releases.

A semicolon-delimited list of tag codes, for example URGENT;NIGHTSHIFT. Unlike the category, which is a single value, a task can carry as many tags as fit within the 1000 characters. Codes that do not match a tag are stored but render as nothing.

Omitting the parameter and sending an empty value mean different things:

  • Omitted (NULL) means "not provided". The stored tags are kept. A connector that knows nothing about tags therefore never wipes the tags a planner set by hand.
  • Empty string means "no tags", and clears them.

When a task is planned on the board, the new appointment inherits the task's tags. From that point the two are independent: later updates to the task's tags do not reach the appointments that were already created. Read more about tags.

Gantt planning​

An update to an existing task has to settle who owns its plan: the back office that sends the task, or the planner who moved it in the Gantt chartGantt chartA timeline view for long-term project planning, showing tasks, durations, dependencies and milestones.. OverRuleGanttPlanning decides that for the planning fields: StartDate, EndDate, PercentDone, PerpetuationInSeconds, RequiredTotalDurationInSeconds, SchedulingMode, the baseline fields, DeadLine, ConstraintType, ConstraintDate, CalendarCode, Note and ManuallyScheduled.

  • 0 (default) keeps the planning already stored in Dime.Scheduler. The values in the call only fill fields that are still empty, so a resync from the back office never undoes what a planner did in the Gantt chart.
  • 1 writes the planning fields sent in the call over the stored ones. Fields left out of the call keep their stored value, so sending only new dates moves the bar without resetting the rest of the plan.

A new task always takes the values sent, whatever the flag. Use 1 when the back office owns the dates and should push them, for instance when the plan is made there and Dime.Scheduler only shows it.

Manually scheduled​

A manually scheduled task keeps the dates you gave it. Dime.Scheduler will not move it when the Gantt recalculates the plan around it, which is what you want for a task pinned to a fixed date by a customer commitment or a permit.

The parameter has three states rather than two, and the difference matters for connectors:

  • Omitted (NULL) means "not provided", and the stored value is kept.
  • 1 makes the task manually scheduled.
  • 0 hands scheduling back to the Gantt.

On an existing task, 1 and 0 only take effect together with OverRuleGanttPlanning set to 1. Without it the stored value wins, as for every other Gantt planning field.

This is a change in behaviour: the parameter used to default to 0, so a connector that never sent it was implicitly setting every task to automatically scheduled on each update. It now leaves the stored value alone, which means a planner's choice survives a resync. If your integration relied on the old behaviour, send 0 explicitly.

Perpetuation​

Two different questions can be asked about how long a task takes: how much work it contains, and how long its bar should be on the Gantt chart. Usually the answer is the same, and RequiredTotalDurationInSeconds covers both: it is the effort the task expects, and it also sets the bar's duration.

They come apart when a task should stretch across more of the calendar than its effort implies, for instance four hours of work that has to be spread over three days. PerpetuationInSeconds is what sets the bar's duration in that case, independently of the effort.

Perpetuation is counted in seconds of working time on the task's calendar, not in wall-clock time, so a non-working day does not consume any of it.

Two cases to keep in mind:

  • Omitting the parameter, or sending 0, keeps the stored value. To clear the effort budget instead, send 0 for RequiredTotalDurationInSeconds.
  • On an existing task, a supplied duration replaces the stored one only when OverRuleGanttPlanning is 1. Without it, the supplied duration is used only when the task has none stored yet.
  • Perpetuation is ignored for a manually scheduled task that has both a StartDate and an EndDate, since the bar then simply spans its dates.

Replacing urls​

By default, sending url parameters for a task that already has urls does nothing: the stored urls win. That protects urls a planner added by hand from being overwritten every time the back office resyncs the task.

Pass ReplaceUrls as 1 when the back office is the owner of the task's urls and should overwrite whatever is stored.

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 task filter value(s) are being sent to Dime.Scheduler before (value = 1 or True) or after (value = 0 or False) the task is sent.