All integrations

Hub Planner

PROJECT MANAGEMENT · TASKS

Bookings, projects, resources, and time entries on that team’s schedule.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

hubplanner_delete_billingrate_by_idWRITE

Delete Billing Rate via DELETE /billingRate/{id}

api
hubplanner_delete_bookingWRITE

Delete Bookings Bulk via DELETE /booking. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send. The request body is a JSON ARRAY, not an object. Bulk delete. It names its targets by query (`ids`, `resourceId`, `projectId`) or by a JSON array of ids in the body, and removes EVERY match in one call.

api
hubplanner_delete_booking_by_idWRITE

Delete Booking via DELETE /booking/{id}

api
hubplanner_delete_calendar_by_idWRITE

Delete Public Holiday Calendar via DELETE /calendar/{id}

api
hubplanner_delete_categories_by_idWRITE

Delete Booking Category via DELETE /categories/{id}

api
hubplanner_delete_category_groups_by_idWRITE

Delete Category Group via DELETE /category-groups/{id}

api
hubplanner_delete_client_by_idWRITE

Delete Client via DELETE /client/{id}

api
hubplanner_delete_costcategories_by_idWRITE

Delete Project Cost Category via DELETE /costCategories/{id}

api
hubplanner_delete_customavailabilityoverride_by_idWRITE

Delete Custom Availability Override via DELETE /customAvailabilityOverride/{id}

api
hubplanner_delete_event_by_idWRITE

Delete Event via DELETE /event/{id}

api
hubplanner_delete_holiday_by_idWRITE

Delete Holiday via DELETE /holiday/{id}

api
hubplanner_delete_milestone_by_idWRITE

Delete Milestone via DELETE /milestone/{id}

api
hubplanner_delete_projectWRITE

Delete Projects Bulk via DELETE /project. The request body is a JSON ARRAY, not an object. Bulk delete. It names its targets by query (`ids`, `resourceId`, `projectId`) or by a JSON array of ids in the body, and removes EVERY match in one call.

api
hubplanner_delete_project_by_idWRITE

Delete Project via DELETE /project/{id}

api
hubplanner_delete_project_by_id_tag_by_tagidWRITE

Remove Project Tag via DELETE /project/{id}/tag/{tagId}

api
hubplanner_delete_project_customfield_template_by_idWRITE

Delete Project Custom Field Template via DELETE /project/customField/template/{id}

api
hubplanner_delete_project_tag_by_idWRITE

Delete Project Tag via DELETE /project-tag/{id}

api
hubplanner_delete_projectgroup_by_idWRITE

Delete Project Group via DELETE /projectgroup/{id}

api
hubplanner_delete_resourceWRITE

Delete Resources Bulk via DELETE /resource. The request body is a JSON ARRAY, not an object. Bulk delete. It names its targets by query (`ids`, `resourceId`, `projectId`) or by a JSON array of ids in the body, and removes EVERY match in one call.

api
hubplanner_delete_resource_by_idWRITE

Delete Resource via DELETE /resource/{id}

api
hubplanner_delete_resource_by_id_tag_by_tagidWRITE

Remove Resource Tag via DELETE /resource/{id}/tag/{tagId}

api
hubplanner_delete_resource_customfield_template_by_idWRITE

Delete Resource Custom Field Template via DELETE /resource/customField/template/{id}

api
hubplanner_delete_resource_tag_by_idWRITE

Delete Resource Tag via DELETE /resource-tag/{id}

api
hubplanner_delete_subscription_by_subscription_idWRITE

Delete Webhook Subscription via DELETE /subscription/{subscription_id}

api
hubplanner_delete_timeentryWRITE

Delete Time Entries Bulk via DELETE /timeentry. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send. The request body is a JSON ARRAY, not an object. Bulk delete. It names its targets by query (`ids`, `resourceId`, `projectId`) or by a JSON array of ids in the body, and removes EVERY match in one call.

api
hubplanner_delete_timeentry_by_idWRITE

Delete Time Entry via DELETE /timeentry/{id}

api
hubplanner_delete_unassigned_work_by_idWRITE

Delete Unassigned Work via DELETE /unassigned-work/{id}

api
hubplanner_delete_vacation_by_idWRITE

Delete Vacation via DELETE /vacation/{id}

api
hubplanner_get_billingrateREAD

Get All Billing Rates via GET /billingRate

api
hubplanner_get_billingrate_by_idREAD

Get Billing Rate via GET /billingRate/{id}

api
hubplanner_get_bookingREAD

Get All Bookings via GET /booking. This endpoint is one of the two whose `limit` defaults to 20 rather than unlimited, so an omitted `limit` silently truncates the result.

api
hubplanner_get_booking_by_idREAD

Get Booking via GET /booking/{id}

api
hubplanner_get_calendarREAD

Get All Public Holiday Calendars via GET /calendar

api
hubplanner_get_calendar_by_idREAD

Get Public Holiday Calendar via GET /calendar/{id}

api
hubplanner_get_categoriesREAD

Get All Booking Categories via GET /categories

api
hubplanner_get_categories_by_idREAD

Get Booking Category via GET /categories/{id}

api
hubplanner_get_category_groupsREAD

Get All Category Groups via GET /category-groups

api
hubplanner_get_category_groups_by_idREAD

Get Category Group via GET /category-groups/{id}

api
hubplanner_get_clientREAD

Get All Clients via GET /client

api
hubplanner_get_client_by_idREAD

Get Client via GET /client/{id}

api
hubplanner_get_costcategoriesREAD

Get All Project Cost Categories via GET /costCategories

api
hubplanner_get_costcategories_by_idREAD

Get Project Cost Category via GET /costCategories/{id}

api
hubplanner_get_customavailabilityoverride_by_idREAD

Get Custom Availability Override via GET /customAvailabilityOverride/{id}

api
hubplanner_get_customavailabilityoverride_findbyresourceid_by_resourceidREAD

Get Custom Availability Overrides By Resource via GET /customAvailabilityOverride/findByResourceId/{resourceId}

api
hubplanner_get_eventREAD

Get All Events via GET /event

api
hubplanner_get_event_by_idREAD

Get Event via GET /event/{id}

api
hubplanner_get_holidayREAD

Get All Holidays via GET /holiday

api
hubplanner_get_holiday_by_idREAD

Get Holiday via GET /holiday/{id}

api
hubplanner_get_milestone_by_idREAD

Get Milestone via GET /milestone/{id}

api
hubplanner_get_projectREAD

Get All Projects via GET /project

api
hubplanner_get_project_by_idREAD

Get Project via GET /project/{id}

api
hubplanner_get_project_by_id_clientREAD

Get Project Clients via GET /project/{id}/client

api
hubplanner_get_project_by_id_tagREAD

Get Project Tags via GET /project/{id}/tag

api
hubplanner_get_project_customfield_templateREAD

Get Project Custom Field Templates via GET /project/customField/template

api
hubplanner_get_project_customfield_template_by_idREAD

Get Project Custom Field Template via GET /project/customField/template/{id}

api
hubplanner_get_project_managerREAD

Get All Project Managers via GET /project-manager

api
hubplanner_get_project_tagREAD

Get All Project Tags via GET /project-tag

api
hubplanner_get_projectgroupREAD

Get All Project Groups via GET /projectgroup

api
hubplanner_get_projectgroup_by_idREAD

Get Project Group via GET /projectgroup/{id}

api
hubplanner_get_resourceREAD

Get All Resources via GET /resource

api
hubplanner_get_resource_by_idREAD

Get Resource via GET /resource/{id}

api
hubplanner_get_resource_by_id_tagREAD

Get Resource Tags via GET /resource/{id}/tag

api
hubplanner_get_resource_customfield_templateREAD

Get Resource Custom Field Templates via GET /resource/customField/template

api
hubplanner_get_resource_customfield_template_by_idREAD

Get Resource Custom Field Template via GET /resource/customField/template/{id}

api
hubplanner_get_resource_tagREAD

Get All Resource Tags via GET /resource-tag

api
hubplanner_get_resourcegroupREAD

Get All Resource Groups via GET /resourcegroup

api
hubplanner_get_subscriptionREAD

Get All Webhook Subscriptions via GET /subscription

api
hubplanner_get_timeentryREAD

Get All Time Entries via GET /timeentry. This endpoint is one of the two whose `limit` defaults to 20 rather than unlimited, so an omitted `limit` silently truncates the result.

api
hubplanner_get_timeentry_by_idREAD

Get Time Entry via GET /timeentry/{id}

api
hubplanner_get_unassigned_workREAD

Get All Unassigned Work via GET /unassigned-work

api
hubplanner_get_unassigned_work_by_idREAD

Get Unassigned Work via GET /unassigned-work/{id}

api
hubplanner_get_vacationREAD

Get All Vacations via GET /vacation

api
hubplanner_get_vacation_by_idREAD

Get Vacation via GET /vacation/{id}

api
hubplanner_patch_booking_by_idWRITE

Patch Booking via PATCH /booking/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_patch_projectWRITE

Update Projects via PATCH /project. The request body is a JSON ARRAY, not an object.

api
hubplanner_patch_project_by_id_tagWRITE

Add Project Tags via PATCH /project/{id}/tag

api
hubplanner_patch_resourceWRITE

Update Resources via PATCH /resource. The request body is a JSON ARRAY, not an object.

api
hubplanner_patch_resource_by_id_tagWRITE

Add Resource Tags via PATCH /resource/{id}/tag

api
hubplanner_patch_vacation_by_idWRITE

Patch Vacation via PATCH /vacation/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_billingrateWRITE

Create Billing Rate via POST /billingRate

api
hubplanner_post_billingrate_searchREAD

Search Billing Rates via POST /billingRate/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_bookingWRITE

Create Booking via POST /booking. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_booking_searchREAD

Search Bookings via POST /booking/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send. This endpoint is one of the two whose `limit` defaults to 20 rather than unlimited, so an omitted `limit` silently truncates the result.

api
hubplanner_post_calendarWRITE

Create Public Holiday Calendar via POST /calendar

api
hubplanner_post_categoriesWRITE

Create Booking Category via POST /categories

api
hubplanner_post_categories_searchREAD

Search Booking Categories via POST /categories/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_category_groupsWRITE

Create Category Group via POST /category-groups

api
hubplanner_post_category_groups_searchREAD

Search Category Groups via POST /category-groups/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_clientWRITE

Create Client via POST /client

api
hubplanner_post_client_searchREAD

Search Clients via POST /client/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_costcategoriesWRITE

Create Project Cost Category via POST /costCategories

api
hubplanner_post_costcategories_searchREAD

Search Project Cost Categories via POST /costCategories/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_customavailabilityoverrideWRITE

Create Custom Availability Override via POST /customAvailabilityOverride. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_eventWRITE

Create Event via POST /event. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_event_searchREAD

Search Events via POST /event/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_holidayWRITE

Create Holiday via POST /holiday. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_holiday_searchREAD

Search Holidays via POST /holiday/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_milestoneWRITE

Create Milestone via POST /milestone. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_milestone_searchREAD

Search Milestones via POST /milestone/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_projectWRITE

Create Project via POST /project

api
hubplanner_post_project_addresourcestoproject_by_projectidWRITE

Add Resources To Project via POST /project/addResourcesToProject/{projectId}

api
hubplanner_post_project_by_projectid_clientWRITE

Add Clients To Project via POST /project/{projectId}/client

api
hubplanner_post_project_client_by_clientidWRITE

Remove Client From Projects via POST /project/client/{clientId}

api
hubplanner_post_project_customfield_templateWRITE

Create Project Custom Field Template via POST /project/customField/template

api
hubplanner_post_project_customfield_template_by_id_addchoicesWRITE

Add Project Custom Field Choices via POST /project/customField/template/{id}/addChoices. The request body is a JSON ARRAY, not an object.

api
hubplanner_post_project_customfield_template_searchREAD

Search Project Custom Field Templates via POST /project/customField/template/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_project_removeresourcefromprojects_by_resourceidWRITE

Remove Resource From Projects via POST /project/removeResourceFromProjects/{resourceId}

api
hubplanner_post_project_searchREAD

Search Projects via POST /project/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_project_tagWRITE

Create Project Tag via POST /project-tag

api
hubplanner_post_projectgroupWRITE

Create Project Group via POST /projectgroup

api
hubplanner_post_projectgroup_addprojectstogroup_by_groupidWRITE

Add Projects To Group via POST /projectgroup/addProjectsToGroup/{groupId}

api
hubplanner_post_projectgroup_removeprojectfromgroups_by_projectidWRITE

Remove Project From Groups via POST /projectgroup/removeProjectFromGroups/{projectId}

api
hubplanner_post_resourceWRITE

Create Resource via POST /resource

api
hubplanner_post_resource_customfield_templateWRITE

Create Resource Custom Field Template via POST /resource/customField/template

api
hubplanner_post_resource_customfield_template_by_id_addchoicesWRITE

Add Resource Custom Field Choices via POST /resource/customField/template/{id}/addChoices. The request body is a JSON ARRAY, not an object.

api
hubplanner_post_resource_customfield_template_searchREAD

Search Resource Custom Field Templates via POST /resource/customField/template/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_resource_searchREAD

Search Resources via POST /resource/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison.

api
hubplanner_post_resource_tagWRITE

Create Resource Tag via POST /resource-tag

api
hubplanner_post_resourcegroup_addresourcestogroup_by_groupidWRITE

Add Resources To Group via POST /resourcegroup/addResourcesToGroup/{groupId}

api
hubplanner_post_resourcegroup_removeresourcefromgroups_by_resourceidWRITE

Remove Resource From Groups via POST /resourcegroup/removeResourceFromGroups/{resourceId}

api
hubplanner_post_subscriptionWRITE

Create Webhook Subscription via POST /subscription

api
hubplanner_post_timeentryWRITE

Create Time Entry via POST /timeentry. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_timeentry_searchREAD

Search Time Entries via POST /timeentry/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send. This endpoint is one of the two whose `limit` defaults to 20 rather than unlimited, so an omitted `limit` silently truncates the result.

api
hubplanner_post_unassigned_workWRITE

Create Unassigned Work via POST /unassigned-work. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_vacationWRITE

Create Vacation via POST /vacation. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_post_vacation_searchREAD

Search Vacations via POST /vacation/search. The request body is a MongoDB-style query document, not a flat filter: {"_id": {"$in": ["5c3...", "5c4..."]}} selects by id and {"start": {"$lt": "2014-07-15"}} by comparison. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_billingrate_by_idWRITE

Update Billing Rate via PUT /billingRate/{id}

api
hubplanner_put_booking_by_idWRITE

Update Booking via PUT /booking/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send. A PUT REPLACES the booking: send the entire booking object, not a delta. Use PATCH /booking/{id} for a property-level update.

api
hubplanner_put_calendar_by_idWRITE

Update Public Holiday Calendar via PUT /calendar/{id}

api
hubplanner_put_categories_by_idWRITE

Update Booking Category via PUT /categories/{id}

api
hubplanner_put_category_groups_by_idWRITE

Update Category Group via PUT /category-groups/{id}

api
hubplanner_put_client_by_idWRITE

Update Client via PUT /client/{id}

api
hubplanner_put_costcategories_by_idWRITE

Update Project Cost Category via PUT /costCategories/{id}

api
hubplanner_put_customavailabilityoverride_by_idWRITE

Update Custom Availability Override via PUT /customAvailabilityOverride/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_event_by_idWRITE

Update Event via PUT /event/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_holiday_by_idWRITE

Update Holiday via PUT /holiday/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_milestone_by_idWRITE

Update Milestone via PUT /milestone/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_project_by_idWRITE

Update Project via PUT /project/{id}

api
hubplanner_put_project_by_projectid_project_managersWRITE

Set Project Managers via PUT /project/{projectId}/project-managers. The request body is a JSON ARRAY, not an object.

api
hubplanner_put_project_customfield_template_by_idWRITE

Update Project Custom Field Template via PUT /project/customField/template/{id}

api
hubplanner_put_project_tag_by_idWRITE

Update Project Tag via PUT /project-tag/{id}

api
hubplanner_put_projectgroup_by_idWRITE

Update Project Group via PUT /projectgroup/{id}

api
hubplanner_put_resource_by_idWRITE

Update Resource via PUT /resource/{id}

api
hubplanner_put_resource_customfield_template_by_idWRITE

Update Resource Custom Field Template via PUT /resource/customField/template/{id}

api
hubplanner_put_resource_tag_by_idWRITE

Update Resource Tag via PUT /resource-tag/{id}

api
hubplanner_put_resourcegroup_addapprovertogroups_by_resourceidWRITE

Add Approver To Resource Groups via PUT /resourcegroup/addApproverToGroups/{resourceId}

api
hubplanner_put_resourcegroup_by_idWRITE

Update Resource Group via PUT /resourcegroup/{id}

api
hubplanner_put_resourcegroup_removeapproverfromgroups_by_resourceidWRITE

Remove Approver From Resource Groups via PUT /resourcegroup/removeApproverFromGroups/{resourceId}

api
hubplanner_put_timeentry_by_idWRITE

Update Time Entry via PUT /timeentry/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_unassigned_work_by_idWRITE

Update Unassigned Work via PUT /unassigned-work/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api
hubplanner_put_vacation_by_idWRITE

Update Vacation via PUT /vacation/{id}. Dates in the request body are NAIVE LOCAL strings, not ISO-8601: "2014-11-03" for an all-day entry and "2017-08-21 10:00" alongside "allDay": false. Responses come back ISO-8601; do not normalise the values you send.

api

Put Hub Planner behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.