Jobs

Create an appointment (job)

Creates an appointment in the company's planner, e.g. a consultation for a lead you hand over. It appears in the assigned team members' calendars, and they are notified as for an appointment created in the app. Changes and cancellations afterwards happen in autarc.

The request is rejected with 409 when the appointment falls into an assigned team member's busy time, exactly as GET /team-members/{profileId}/availability reports it: another appointment, an absence that is not declined, a company holiday, a connected Google or Outlook calendar, or time outside their working hours (or the company's opening hours). Send allowConflicts: true to create it anyway.

post/jobs

Request

  • Base URL
    https://api3.autarc.energy/v1
  • Auth
    API key in header X-Api-Key

Request body

titlestring required
jobType'consultation' | 'maintenance' | 'repair' | 'emergency' | 'complaint' | 'other'

Built-in appointment category. Defaults to other.

startAtstring date-time required

RFC 3339 timestamp with an explicit timezone offset.

endAtstring date-time required

RFC 3339 timestamp with an explicit timezone offset, after startAt and at most 31 days later.

addressstring nullable

Free-text address of the appointment. With a projectId, the appointment also gets a copy of the project's site address (else the customer's), as when it is scheduled in autarc.

contactPersonstring nullable
descriptionstring nullable
projectIdstring uuid nullable

Project the appointment belongs to. When customerId is omitted, the project's customer is used. A consultation on a project that has no scheduled consultation yet becomes the appointment shown in the project's On Site tab; an existing one is kept and the new appointment is added beside it.

customerIdstring uuid nullable

Customer the appointment is for. Must match the project's customer when both are sent.

assignedProfileIdsstring[]

Team members (profile ids, see GET /team-members) assigned to the appointment. They see it in their calendar and are notified as for an appointment created in the app.

allowConflictsboolean

Create the appointment even if it falls into an assigned team member's busy time (see GET /team-members/{profileId}/availability). By default the request is rejected with 409.

Example request

{
  "title": "Beratungstermin Wärmepumpe",
  "jobType": "consultation",
  "startAt": "2026-11-03T10:00:00+01:00",
  "endAt": "2026-11-03T11:30:00+01:00",
  "address": "Musterstraße 1, 99089 Erfurt",
  "contactPerson": "Erika Mustermann"
}

Response

One appointment

idstring uuid required
titlestring required
descriptionstring nullable
jobType'consultation' | 'maintenance' | 'repair' | 'emergency' | 'complaint' | 'other' required

Built-in appointment category.

jobTypeIdstring uuid nullable

The company's custom appointment type, when one is set.

startAtstring date-time nullable
endAtstring date-time nullable
addressstring nullable

Free-text address of the appointment.

contactPersonstring nullable
colorstring nullable
projectIdstring uuid nullable
customerIdstring uuid nullable
assignedProfileIdsstring[] required

Team members (profile ids, see GET /team-members) assigned to the appointment.

createdByProfileIdstring uuid nullable
canceledAtstring date-time nullable
cancellationReason'customer_canceled' | 'customer_unavailable' | 'no_access' | 'weather' | 'staff_unavailable' | 'rescheduled' | 'other' | 'null' nullable
cancellationNotestring nullable
companyIdstring uuid required
createdAtstring date-time required
updatedAtstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.