### Vehicle and Job Configuration Example (JSON) Source: https://docs.here.com/tour-planning/docs/territory This example demonstrates setting up two vehicles with different territory constraints and planning jobs accordingly. One vehicle is strictly assigned to 'North', while the other has a preferred 'South' territory. ```json { "fleet": { "types": [ { "id": "car_1", "profile": "car_profile", "costs": { "distance": 0.0001, "time": 0 }, "territories": { "strict": true, "items": [ { "id": "North" } ] }, "shifts": [ { "start": { "time": "2021-07-04T06:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } }, "end": { "time": "2021-07-04T06:08:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } } } ], "capacity": [ 0 ], "amount": 1 }, { "id": "car_2", "profile": "car_profile", "costs": { "distance": 0.0001, "time": 0 }, "territories": { "strict": false, "items": [ { "id": "South" } ] }, "shifts": [ { "start": { "time": "2021-07-04T06:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } }, "end": { "time": "2021-07-04T13:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } } } ], "capacity": [ 0 ], "amount": 1 } ], "profiles": [ { "type": "car", "name": "car_profile" } ] }, "plan": { "jobs": [ { "id": "A", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 47.628661, "lng": -122.342312 }, "territoryIds": [ ``` -------------------------------- ### Example Tour Planning Solution Source: https://docs.here.com/tour-planning/docs/custom-matrix This is an example of the full solution JSON returned by the API after a tour planning problem has been successfully processed. It includes overall statistics and detailed tour information for each vehicle. ```json { "statistic": { "cost": 78.269, "distance": 8641, "duration": 3745, "times": { "driving": 1345, "serving": 2400, "waiting": 0, "stopping": 0, "break": 0 } }, "tours": [ { "vehicleId": "car_1_1", ``` -------------------------------- ### Example Tour Solution JSON Source: https://docs.here.com/tour-planning/docs/quick-start This is an example of the JSON response you will receive when a tour calculation is successful. It includes statistics, tour details, and stop information. ```json { "statistic": { "cost": 45.7042, "distance": 31921, "duration": 3464, "times": { "driving": 3284, "serving": 180, "waiting": 0, "stopping": 0, "break": 0, "intraStop": 0 }, "intraStopDistance": 0 }, "tours": [ { "vehicleId": "myVehicleType_1", "typeId": "myVehicleType", "stops": [ { "time": { "arrival": "2020-07-04T09:00:00Z", "departure": "2020-07-04T09:32:12Z" }, "load": [1], "activities": [ { "jobId": "departure", "type": "departure", "location": { "lat": 52.52568, "lng": 13.45345 }, "time": { "start": "2020-07-04T09:00:00Z", "end": "2020-07-04T09:32:12Z", "arrival": "2020-07-04T09:00:00Z" } } ], "location": { "lat": 52.52568, "lng": 13.45345 }, "distance": 0, "intraStopDistance": 0 }, { "time": { "arrival": "2020-07-04T10:00:00Z", "departure": "2020-07-04T10:03:00Z" }, "load": [0], "activities": [ { "jobId": "myJob", "type": "delivery", "location": { "lat": 52.46642, "lng": 13.28124 }, "time": { "start": "2020-07-04T10:00:00Z", "end": "2020-07-04T10:03:00Z", "arrival": "2020-07-04T10:00:00Z" } } ], "location": { "lat": 52.46642, "lng": 13.28124 }, "distance": 16020, "intraStopDistance": 0 }, { "time": { "arrival": "2020-07-04T10:29:56Z", "departure": "2020-07-04T10:29:56Z" }, "load": [0], "activities": [ { "jobId": "arrival", "type": "arrival", "location": { "lat": 52.52568, "lng": 13.45345 }, "time": { "start": "2020-07-04T10:29:56Z", "end": "2020-07-04T10:29:56Z", "arrival": "2020-07-04T10:29:56Z" } } ], "location": { "lat": 52.52568, "lng": 13.45345 }, "distance": 31921, "intraStopDistance": 0 } ], "statistic": { "cost": 45.7042, "distance": 31921, "duration": 3464, "times": { "driving": 3284, "serving": 180, "waiting": 0, "stopping": 0, "break": 0, "intraStop": 0 }, "intraStopDistance": 0 }, "shiftIndex": 0 } ] } ``` -------------------------------- ### TIME_WINDOW_CONSTRAINT Example Source: https://docs.here.com/tour-planning/docs/troubleshoot-unassigned-jobs This snippet shows an example of a TIME_WINDOW_CONSTRAINT configuration, specifying fixed, distance, and time parameters for a shift. ```json { "fixed": 10.0, "distance": 0.001, "time": 0.002 } ``` -------------------------------- ### Shift Definition Example Source: https://docs.here.com/tour-planning/docs/troubleshoot-unassigned-jobs An example of a shift definition within a tour planning configuration, including start and end times and locations. ```json { "start": { "time": "2024-06-24T06:00:00Z", "location": { "lat": 52.53097, "lng": 13.38504 } }, "end": { "time": "2024-06-24T06:40:00Z", "location": { "lat": 52.53097, "lng": 13.38504 } } } ``` -------------------------------- ### Multiple Shifts Example JSON Source: https://docs.here.com/tour-planning/docs/billing This JSON structure demonstrates how multiple shifts are configured for a vehicle. Each shift, including its start and end times and locations, is defined within the 'shifts' array. The algorithm treats each start and end location as a distinct transaction. ```json { "fleet": { "types": [ { "id": "Vehicle_1", "profile": "car", "costs": { "fixed": 10, "distance": 0.002, "time": 0.003 }, "shifts": [ { "start": { "time": "2021-10-23T09:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } }, "end": { "time": "2021-10-23T12:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } } }, { "start": { "time": "2021-10-24T09:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } }, "end": { "time": "2021-10-24T12:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } } }, { "start": { "time": "2021-10-25T09:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } }, "end": { "time": "2021-10-25T12:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } } }, { "start": { "time": "2021-10-26T09:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } }, "end": { "time": "2021-10-26T12:00:00Z", "location": { "lat": 51.059188, "lng": 13.540317 } } } ], "capacity": [ 10 ], "amount": 1 } ], "profiles": [ { "type": "car", "name": "car" } ] }, "// Remaining problem components omitted for brevity" } ``` -------------------------------- ### Activity Time Example Source: https://docs.here.com/tour-planning/docs/solution Defines the expected arrival, start, and end times for an activity in UTC format. Omitted if only one activity in a stop. ```json { "time": { "arrival": "2020-07-04T10:00:00Z", "start": "2020-07-04T10:00:00Z", "end": "2020-07-04T10:03:00Z" } } ``` -------------------------------- ### Example Experimental Feature Configuration (YAML) Source: https://docs.here.com/tour-planning/docs/experimental-features This YAML snippet shows the configuration for an experimental feature, including its maturity level and a description. It indicates how to enable the feature using a flag in the problem configuration. ```yaml VehicleMinStopsCountLimit: x-maturity: alpha description: | **ALPHA** Hard limit on the minimum number of stops in a shift. Please consult the developer guide for more information before using this feature. To enable it, add `minStops` flag to `experimentalFeatures` configuration in the problem. type: object ``` -------------------------------- ### Example Tour Planning Solution Output Source: https://docs.here.com/tour-planning/docs/time-windows This JSON output represents a solved tour plan, including overall statistics and detailed information for each tour and its stops. It shows the sequence of jobs, arrival and departure times, distances, and load changes. ```json { "statistic": { "cost": 334.486, "distance": 33638, "duration": 4701, "times": { "driving": 3441, "serving": 1260, "waiting": 0, "break": 0 } }, "tours": [ { "vehicleId": "2695492ea0a5_1", "typeId": "2695492ea0a5", "stops": [ { "location": { "lat": 52.530971, "lng": 13.384915 }, "time": { "arrival": "2021-07-13T08:00:00Z", "departure": "2021-07-13T10:07:02Z" }, "load": [ 0 ], "activities": [ { "jobId": "departure", "type": "departure" } ], "distance": 0 }, { "location": { "lat": 52.60528438345096, "lng": 13.293433615477287 }, "time": { "arrival": "2021-07-13T10:29:23Z", "departure": "2021-07-13T10:48:23Z" }, "load": [ 2 ], "activities": [ { "jobId": "job_1", "type": "pickup" } ], "distance": 13236 }, { "location": { "lat": 52.54217501128922, "lng": 13.31486008054587 }, "time": { "arrival": "2021-07-13T11:00:00Z", "departure": "2021-07-13T11:02:00Z" }, "load": [ 4 ], "activities": [ { "jobId": "job_2", "type": "pickup" } ], "distance": 22829 }, { "location": { "lat": 52.540850339546864, "lng": 13.43557578524216 }, "time": { "arrival": "2021-07-13T11:25:23Z", "departure": "2021-07-13T11:25:23Z" }, "load": [ 0 ], "activities": [ { "jobId": "arrival", "type": "arrival" } ], "distance": 33636 } ], "statistic": { "cost": 334.486, "distance": 33638, "duration": 4701, "times": { "driving": 3441, "serving": 1260, "waiting": 0, "break": 0 } } } ] } ``` -------------------------------- ### Vehicle Shifts Configuration Source: https://docs.here.com/tour-planning/docs/problem Example configuration for vehicle shifts, including start and end times and locations. Used to determine `shiftIndex` for job relations. ```json { "shifts": [ { "start": { "time": "2022-05-06T09:00:00Z", "location": {"lat": 52.46642, "lng": 13.28124} }, "end": { "time": "2022-05-06T18:00:00Z", "location": {"lat": 52.46642, "lng": 13.28124} } }, { "start": { "time": "2022-05-07T08:00:00Z", "location": {"lat": 52.46642, "lng": 13.28124} } } ] } ``` -------------------------------- ### Sample Stop Properties in Solution JSON Source: https://docs.here.com/tour-planning/docs/glossary Illustrates the structure of a stop within a Tour Planning solution, including time, load, and activities. ```json { "1": { "time": { "arrival": "2023-09-20T09:14:59Z", "departure": "2023-09-20T09:17:59Z" }, "load": [4], "activities": [ { "jobId": "Job_1", "type": "pickup", "location": { "lat": 52.5063267065751, "lng": 14.345924039737517 }, "time": { "start": "2023-09-20T09:14:59Z", "end": "2023-09-20T09:17:59Z" } } ], "location": { "lat": 52.5063267065751, "lng": 14.345924039737517 }, "distance": 68638 } } ``` -------------------------------- ### Fifth Dropoff Event Definition Source: https://docs.here.com/tour-planning/docs/group-jobs This snippet represents the start of a fifth 'DropoffEvent' definition. It follows the same structure as previous examples, indicating a pattern for defining multiple, independent delivery events. ```json { "id": "DropoffEvent_5", "tasks": { "pickups": [ { "places": [ { "times": [ [ "2023-05-28T14:00:00Z", "2023-05-28T14:30:00Z" ] ], "location": { "lat": 52.480634, "lng": 13.435993 }, "duration": 5, "groupId": "Student_Code_5" } ], "demand": [ 1 ] } ], "deliveries": [ ``` -------------------------------- ### VRP Route Stop Example Source: https://docs.here.com/tour-planning/docs/time-distance-optimization-vrp This JSON object details a stop within a VRP route. It specifies the arrival and departure times, the load associated with the stop, a list of activities performed at this stop, the location, and the cumulative distance to this stop from the start of the route. ```json { "time": { "arrival": "2021-10-23T11:11:08Z", "departure": "2021-10-23T11:36:08Z" }, "load": [ 4 ], "activities": [ { "jobId": "Job_3", "type": "pickup", "location": { "lat": 51.08511, "lng": 13.76875 }, "time": { "start": "2021-10-23T11:11:08Z", "end": "2021-10-23T11:36:08Z" } } ], "location": { "lat": 51.08511, "lng": 13.76875 }, "distance": 36335 } ``` -------------------------------- ### Full Solution JSON Example Source: https://docs.here.com/tour-planning/docs/job-task-order This is a complete JSON output representing a tour solution. It includes statistics, tour details, vehicle information, and stop-by-stop activity logs, illustrating the final planned route. ```json { "statistic": { "cost": 93.515, "distance": 62385, "duration": 14703, "times": { "driving": 6903, "serving": 7800, "waiting": 0, "stopping": 0, "break": 0 } }, "tours": [ { "vehicleId": "small_1", "typeId": "small", "stops": [ { "time": { "arrival": "2023-05-28T08:00:00Z", "departure": "2023-05-28T08:00:00Z" }, "load": [ 0 ], "activities": [ { "jobId": "departure", "type": "departure", "location": { "lat": 52.50935, "lng": 13.41997 }, "time": { "start": "2023-05-28T08:00:00Z", "end": "2023-05-28T08:00:00Z" } } ], "location": { "lat": 52.50935, "lng": 13.41997 }, "distance": 0 }, { "time": { "arrival": "2023-05-28T08:19:04Z", "departure": "2023-05-28T08:29:04Z" }, "load": [ 1 ], "activities": [ { "jobId": "Job_9_position-5", "type": "pickup", "location": { "lat": 52.446407, "lng": 13.36047 }, "time": { "start": "2023-05-28T08:19:04Z", "end": "2023-05-28T08:29:04Z" } } ], "location": { "lat": 52.446407, "lng": 13.36047 }, "distance": 9863 }, { "time": { "arrival": "2023-05-28T08:32:34Z", "departure": "2023-05-28T08:42:34Z" }, "load": [ 2 ], "activities": [ { "jobId": "Job_10_position-4", "type": "pickup", "location": { "lat": 52.440807, "lng": 13.351399 }, "time": { "start": "2023-05-28T08:32:34Z", "end": "2023-05-28T08:42:34Z" } } ], "location": { "lat": 52.440807, "lng": 13.351399 }, "distance": 11447 }, { "time": { "arrival": "2023-05-28T08:45:55Z", "departure": "2023-05-28T08:55:55Z" }, "load": [ 3 ], "activities": [ { "jobId": "Job_11_position-3", "type": "pickup", "location": { "lat": 52.441913, "lng": 13.339028 }, "time": { "start": "2023-05-28T08:45:55Z", "end": "2023-05-28T08:55:55Z" } } ], "location": { "lat": 52.441913, "lng": 13.339028 }, "distance": 13046 }, { "time": { "arrival": "2023-05-28T09:01:45Z", "departure": "2023-05-28T09:11:45Z" }, "load": [ 4 ], "activities": [ { "jobId": "Job_13_position-first", "type": "pickup", "location": { ``` -------------------------------- ### Tour Planning Route Segment Example Source: https://docs.here.com/tour-planning/docs/max-driving-time This JSON object details a single segment of a tour, including its start and end times, load information, activities (like deliveries), and geographical location. It's part of the overall tour plan and helps in visualizing the route. ```json { "time": { "arrival": "2024-06-24T09:14:42Z", "departure": "2024-06-24T09:19:42Z" }, "load": [ 2 ], "activities": [ { "jobId": "Job_3", "type": "delivery", "location": { "lat": 52.51635175288175, "lng": 13.343661020679573 }, "time": { "start": "2024-06-24T09:14:42Z", "end": "2024-06-24T09:19:42Z", "arrival": "2024-06-24T09:14:42Z" } } ], "location": { "lat": 52.51635175288175, "lng": 13.343661020679573 }, "distance": 60648 } ``` -------------------------------- ### SoftTime Window Example Source: https://docs.here.com/tour-planning/reference/submitproblemasync-1 Illustrates a soft time window, which allows flexibility for minor delays. It includes a hard constraint boundary and a preferred time window within it. This feature is experimental and requires enabling the 'softTimeWindows' flag. ```markdown Absolute: 09:00 |---------------------------| 13:00 Preferred: 10:00 |-----------| 12:00 ``` -------------------------------- ### Example Route with Soft Time Windows Source: https://docs.here.com/tour-planning/docs/soft-time-windows This JSON represents a route solution that includes soft time windows. Each stop has an 'arrival' and 'departure' time, and activities within a stop can also have 'start' and 'end' times. The routing engine considers these times when calculating the optimal path. ```json { "vehicleId": "small_1", "typeId": "small", "stops": [ { "time": { "arrival": "2024-07-31T08:00:00Z", "departure": "2024-07-31T11:41:42Z" }, "load": [ 7 ], "activities": [ { "jobId": "departure", "type": "departure", "location": { "lat": 52.50935, "lng": 13.41997 }, "time": { "start": "2024-07-31T08:00:00Z", "end": "2024-07-31T11:41:42Z" } } ], "location": { "lat": 52.50935, "lng": 13.41997 }, "distance": 0 }, { "time": { "arrival": "2024-07-31T12:00:00Z", "departure": "2024-07-31T12:10:00Z" }, "load": [ 6 ], "activities": [ { "jobId": "Job_10", "type": "delivery", "location": { "lat": 52.458232, "lng": 13.338698 }, "time": { "start": "2024-07-31T12:00:00Z", "end": "2024-07-31T12:10:00Z" } } ], "location": { "lat": 52.458232, "lng": 13.338698 }, "distance": 11324 }, { "time": { "arrival": "2024-07-31T12:13:59Z", "departure": "2024-07-31T12:23:59Z" }, "load": [ 5 ], "activities": [ { "jobId": "Job_9", "type": "delivery", "location": { "lat": 52.441913, "lng": 13.339028 }, "time": { "start": "2024-07-31T12:13:59Z", "end": "2024-07-31T12:23:59Z" } } ], "location": { "lat": 52.441913, "lng": 13.339028 }, "distance": 13450 }, { "time": { "arrival": "2024-07-31T12:33:23Z", "departure": "2024-07-31T12:43:23Z" }, "load": [ 4 ], "activities": [ { "jobId": "Job_8", "type": "delivery", "location": { "lat": 52.458414, "lng": 13.392079 }, "time": { "start": "2024-07-31T12:33:23Z", "end": "2024-07-31T12:43:23Z" } } ], "location": { "lat": 52.458414, "lng": 13.392079 }, "distance": 18454 }, { "time": { "arrival": "2024-07-31T12:50:14Z", "departure": "2024-07-31T13:00:14Z" }, "load": [ 3 ], "activities": [ { "jobId": "Job_7", "type": "delivery", "location": { "lat": 52.447476, "lng": 13.433062 }, "time": { "start": "2024-07-31T12:50:14Z", "end": "2024-07-31T13:00:14Z" } } ], "location": { "lat": 52.447476, "lng": 13.433062 }, "distance": 22480 }, { "time": { "arrival": "2024-07-31T13:06:25Z", "departure": "2024-07-31T13:16:25Z" }, "load": [ 2 ], "activities": [ { "jobId": "Job_6", "type": "delivery", "location": { "lat": 52.434003, "lng": 13.466142 }, "time": { "start": "2024-07-31T13:06:25Z", "end": "2024-07-31T13:16:25Z" } } ], "location": { "lat": 52.434003, "lng": 13.466142 }, "distance": 26037 }, { "time": { "arrival": "2024-07-31T13:25:33Z", "departure": "2024-07-31T13:35:33Z" }, "load": [ 1 ], "activities": [ { "jobId": "Job_5", "type": "delivery", "location": { ``` -------------------------------- ### Full Example: Fleet and Plan with Exclusive Territories Source: https://docs.here.com/tour-planning/docs/territory Demonstrates a fleet with two vehicles, each restricted to a different territory ('North' and 'South'), and three jobs, one for each territory and one without a territory restriction. This setup ensures that 'car_1' can only perform jobs in 'North' and 'car_2' in 'South'. ```json { "fleet": { "types": [ { "id": "car_1", "profile": "car_profile", "costs": { "distance": 0.0001, "time": 0 }, "territories": { "strict": true, "items": [ { "id": "North" } ] }, "shifts": [ { "start": { "time": "2021-07-04T06:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } }, "end": { "time": "2021-07-04T13:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } } } ], "capacity": [ 0 ], "amount": 1 }, { "id": "car_2", "profile": "car_profile", "costs": { "distance": 0.0001, "time": 0 }, "territories": { "strict": true, "items": [ { "id": "South" } ] }, "shifts": [ { "start": { "time": "2021-07-04T06:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } }, "end": { "time": "2021-07-04T13:03:00Z", "location": { "lat": 47.625729, "lng": -122.337255 } } } ], "capacity": [ 0 ], "amount": 1 } ], "profiles": [ { "type": "car", "name": "car_profile" } ] }, "plan": { "jobs": [ { "id": "A", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 47.628661, "lng": -122.342312 }, "territoryIds": [ "North" ], "duration": 0 } ], "demand": [ 0 ] } ] } } ] } } ``` -------------------------------- ### Example Advanced Objectives Configuration Source: https://docs.here.com/tour-planning/docs/objectives This JSON snippet demonstrates how to configure multiple advanced objectives for tour planning optimization, including balancing activities, minimizing unassigned jobs, and minimizing cost. ```json "advancedObjectives": [ [ { "type": "balanceActivities", "options": { "threshold": 0.1 } } ], [ { "type": "minimizeUnassigned" } ], [ { "type": "minimizeCost" } ] ] ``` -------------------------------- ### Default Optimization Without Tiebreak Source: https://docs.here.com/tour-planning/docs/tiebreak This example shows a series of job definitions used in tour planning. The optimization will arrange these jobs without any specific tiebreak rules, relying on the default algorithm. ```json { "id": "Job_26", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.53754, "lng": 13.34152 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_27", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.48811100200862, "lng": 13.376 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_28", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.4745, "lng": 13.42 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_29", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.58884270031872, "lng": 13.352068415230912 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_30", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.60079217247425, "lng": 13.339813254226156 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_31", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.4779, "lng": 13.5012 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_32", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.60066027234286, "lng": 13.502741838681837 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_33", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.55437436208552, "lng": 13.503142187091647 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_34", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.48446152479127, "lng": 13.392004256315916 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` ```json { "id": "Job_35", "tasks": { "deliveries": [ { "places": [ { "location": { "lat": 52.6378, "lng": 13.48675 }, "duration": 30 } ], "demand": [ 1 ] } ] } } ``` -------------------------------- ### Example Problem with Multiple Reloads and Time Windows Source: https://docs.here.com/tour-planning/docs/multi-reloads This JSON configuration demonstrates a tour planning problem with two reloads. The first reload is at the depot location with a specific time window, and the second is at a job location, also with a defined time window. This setup is useful when reload availability is restricted by time or location. ```json { "fleet": { "types": [ { "id": "e429c9c1e6df", "profile": "car_bd5be9a38474", "costs": { "fixed": 6.0, "distance": 0.002, "time": 0.007 }, "shifts": [ { "start": { "time": "2022-06-01T08:05:00Z", "location": { "lat": 52.530971, "lng": 13.384915 } }, "end": { "time": "2022-06-01T18:05:00Z", "location": { "lat": 52.530971, "lng": 13.384915 } }, "reloads": [ { "times": [ [ "2022-06-01T09:05:00Z", "2022-06-01T13:05:00Z" ] ], "location": { "lat": 52.530971, "lng": 13.384915 }, "duration": 60 }, { "times": [ [ "2022-06-01T13:05:00Z", "2022-06-01T18:05:00Z" ] ], "location": { "lat": 52.57541509905306, "lng": 13.409878314747719 }, "duration": 60 } ] } ], "capacity": [ 5 ], "amount": 1 } ], "profiles": [ { "type": "car", "name": "car_bd5be9a38474" } ] }, "plan": { "jobs": [ { "id": "job_1", "tasks": { "pickups": [ { "places": [ { "times": [ [ "2022-06-01T09:05:00Z", "2022-06-01T13:05:00Z" ] ], ```