Actions
An action URIAction URIA dynamic link, populated with fields from a task, job or appointment, that opens an external system in one click. is a shortcut that lets a planner trigger something outside Dime.Scheduler from inside the context of a task, an appointment, or a job. Send an email, open the originating record in Business Central, kick off a Power Automate flow, launch a custom workflow in a third-party system: anything that can be addressed by a URL is fair game.
Without action URIs, the workflow loop is broken. A planner spots that an appointment needs a follow-up email, switches to Outlook, retypes the customer's address, then comes back. With action URIs, the same loop happens in one click - the URI carries the appointment's data along with it, so the destination system already knows which record to open or what to prefill.

How an action URI works
You define a URL template - either as a POST or a GET - with placeholders for the values you want to pass along. When the planner triggers the action from the right-click menu, Dime.Scheduler substitutes those placeholders with the values of the record they triggered it on, and either posts the payload (for POST URIs) or opens the resulting URL in a new tab (for GET URIs).
GET URIs are the workhorse: most back-office systems expose deep-link URLs that open a specific record, so a GET action URI is usually enough. POST URIs are for the cases where you need to push a structured payload, typically into a workflow engine that expects an inbound webhook.
What scopes an action URI to a record
Two things decide whether a given action URI shows up on a given record:
- The entity type - planned task, unplanned task, map pin, new appointment. An action URI declared for the open task list never shows up on the planning board, and vice versa.
- The source app and source type of the job behind the record. A "Create absence in BC Germany" action only makes sense for records that came from BC Germany; a "Show in CRM" action only makes sense for jobs whose source type is
service order. The action URI form has source-app and source-type filters precisely so a tenant connected to multiple back offices doesn't end up with a dozen irrelevant items in every menu.

The description column is what the planner sees in the menu. Keep it short and verb-led ("Create absence", "Open in BC", "Email customer") - this is the entire UX of the feature.
Constructing the URL
Most back-office systems make this easy. Business Central, for example, documents its web-client URL format - find the URL that opens the record you want, then drop in placeholders where the record-specific values go.
The placeholders you can use depend on the entity type the action URI is bound to:
Planned tasks (appointments)
Available from the planning board and the planned task list.
| Placeholder | Description |
|---|---|
#SOURCEAPP# | The identifier of the system that owns this record. Set on the job level. For example, BC GERMANY, BC USA |
#SOURCETYPE# | The type of record. For example, service order, production order. |
#START# | The start date of the appointment. |
#END# | The end date of the appointment. |
#RESOURCE# | The resource assigned to this appointment. |
#APPOINTMENTID# | The appointment's identifier. |
#DATABASEACTION# | The action type: A (Add), E (Edit), D (Delete). |
Unplanned tasks
Available from the open task list, the map, and the route sequence grid.
| Placeholder | Description |
|---|---|
#SOURCEAPP# | The identifier of the system that owns this record. Set on the job level. For example, BC GERMANY, BC USA |
#SOURCETYPE# | The type of record. For example, service order, production order. |
#JOBNO# | The external identifier of the job. |
#TASKNO# | The external identifier of the task. |
Pushing action URIs from the back office
You do not have to maintain action URIs by hand in Dime.Scheduler - the back-office connector can push them too. The example below registers an action from Business Central that opens BC's "create new absence" page when the planner triggers it on a planning-board appointment.
procedure SendActionURLNew()
var
DimeDSConnectorSetup: Record "Dime DS Connector Setup";
DimeDSDimeSchedulerMgt: Codeunit "Dime DS Dime.Scheduler Mgt.";
DSWebServiceManagement: Codeunit "Dime DS Web Service Management";
begin
DimeDSConnectorSetup.Get();
DSWebServiceManagement.InitParameters();
DSWebServiceManagement.AddParameter('SourceApp', DimeDSConnectorSetup."Source App");
DSWebServiceManagement.AddParameter('SourceType', "Source Type");
DSWebServiceManagement.AddParameter('UrlType', '0');
DSWebServiceManagement.AddParameter('Url', DimeDSDimeSchedulerMgt.GenerateActionUrl("Action Report No.", 'E'));
DSWebServiceManagement.AddParameter('UrlDesc', "New absence");
DSWebServiceManagement.AddParameter('DefaultUrl', DSWebServiceManagement.HandleBool(false));
DSWebServiceManagement.CallDimeSchedulerWS('mboc_upsertActionUrl');
end;
The codeunit produces a templated URL that BC's URL parser understands:
https://mybc/?company=CRONUS%20BE
&report=2087625
&filter=DSApp.Source Type:#SOURCETYPE#
&filter=DSApp.Database Action:#DATABASEACTION#
&filter=DSApp.Start:#START#
&filter=DSApp.End:#END#
&filter=DSApp.Resource Report Filter:#RESOURCE#
When the planner triggers this from an appointment, Dime.Scheduler substitutes each placeholder with the appointment's actual values and opens the URL.
Reference
Scopes
The Type column on the action URI grid sets the scope. The four options:
- Map
- New appointments
- Existing appointments
- Open tasks
Shortcut keys
| Shortcut key | Action | Remark |
|---|---|---|
| DELETE | Deletes the selected records. Is the equivalent of the delete button. | Only when a delete button is present |
| CTRL + click on group | Collapses the other groups in the grid | Only possible when grouping is set |