FIT Appointment Management API
AG-FIT 646
| Release | Value |
|---|---|
Version |
1.1.0 |
Date |
2026-06-16 |
State |
released |
Description
An Appointment is an arrangement to do something or meet someone at a particular time and place. It may be created during an interaction, to resolve a customer problem, or to deliver a product order item. The Appointment Management API manages appointments and searches for available time slots based on supplied parameters.
The FIT profile is based on TMF646 Appointment Management.
For FIT, PATCH and DELETE operations are not used for the Appointment and SearchTimeSlot resources.
Release notes
See Version history for the changes in this and earlier versions.
Sample use cases
Sample use cases are documented in Terminbuchung.
Managed entity resource models
Appointment
Lifecycle
The Appointment resource represents a booked or requested appointment. Its detailed fields and operations are generated from the OpenAPI specification and included in the API reference.
JSON representation sample
{
"$schema" : "../schema/fit-tmf646.schema.json",
"@type" : "Appointment",
"id" : "6c792dbc-abad-464d-843b-42cd7444edeb",
"href" : "https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb",
"category" : "beforeFaultTicket",
"creationDate" : "2024-02-01T10:59:00+01:00",
"lastUpdate" : "2024-02-01T10:59:00+01:00",
"relatedEntity" : [ {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "buyerServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "buyerServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500011"
} ],
"businessId" : "500012",
"agreementType" : "buyerServiceContract"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "ordererServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "ordererServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500014"
} ],
"businessId" : "500013",
"agreementType" : "ordererServiceContract"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "affectedProduct",
"entity" : {
"@type" : "ProductRef",
"id" : "922ebf01-e930-47a0-842e-059d1f188a15",
"@referredType" : "Product"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "singleContract",
"entity" : {
"@type" : "Agreement",
"name" : "singleContract",
"businessId" : "555001",
"agreementType" : "singleContract"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "searchTimeSlot",
"entity" : {
"@type" : "SearchTimeslotRef",
"id" : "158ecded-6aca-4f83-a54e-f35cc53be128",
"@referredType" : "SearchTimeslot"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "availableTimeSlot",
"entity" : {
"@type" : "AvailableTimeslotRef",
"id" : "321e0c9d-1112-41ac-9251-45fe542f92",
"@referredType" : "AvailableTimeslot"
}
} ],
"status" : "initialized",
"validFor" : {
"startDateTime" : "2024-02-02T14:00:00+01:00",
"endDateTime" : "2024-02-02T15:00:00+01:00"
}
}
SearchTimeSlot
Lifecycle
The SearchTimeSlot task searches for appointment slots matching the requested parameters. Its detailed fields and operations are generated from the OpenAPI specification and included in the API reference.
JSON representation sample
{
"$schema" : "../schema/fit-tmf646.schema.json",
"@type" : "SearchTimeSlot",
"id" : "158ecded-6aca-4f83-a54e-f35cc53be128",
"href" : "https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128",
"appointmentCategory" : "beforeFaultTicket",
"requestDate" : "2024-02-01T10:30:30+01:00",
"requestPostedDate" : "2024-02-01T10:30:00+01:00",
"state" : "acknowledged",
"stateChangeDate" : "2024-02-01T10:30:15+01:00",
"relatedEntity" : [ {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "buyerServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "buyerServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500011"
} ],
"businessId" : "500012",
"agreementType" : "buyerServiceContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "ordererServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "ordererServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500014"
} ],
"businessId" : "500013",
"agreementType" : "ordererServiceContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "affectedProduct",
"entity" : {
"@type" : "ProductRef",
"id" : "922ebf01-e930-47a0-842e-059d1f188a15",
"@referredType" : "Product"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "singleContract",
"entity" : {
"@type" : "Agreement",
"name" : "singleContract",
"businessId" : "555001",
"agreementType" : "singleContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "optionalServices",
"entity" : {
"@type" : "ProductOffering",
"name" : "Ganzheitliche Entstoerung"
}
} ],
"requestedTimeSlot" : [ {
"@type" : "TimeSlot",
"validFor" : {
"startDateTime" : "2024-02-02T08:00:00+01:00",
"endDateTime" : "2024-02-02T12:00:00+01:00"
}
} ]
}
Notification resource models
The API includes notifications for Appointment and SearchTimeSlot resources, including create, state-change, attribute-value-change, and delete events where applicable. Refer to the generated API reference for the exact payload structures.
Appointment state-change example
{
"$schema" : "../schema/fit-tmf646.schema.json",
"@type" : "AppointmentStateChangeEvent",
"eventId" : "entstoerung-vor-8-appointment-state-change-confirmed",
"eventTime" : "2024-02-01T11:00:00+01:00",
"eventType" : "AppointmentStateChangeEvent",
"event" : {
"appointment" : {
"@type" : "Appointment",
"id" : "6c792dbc-abad-464d-843b-42cd7444edeb",
"href" : "https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb",
"category" : "beforeFaultTicket",
"creationDate" : "2024-02-01T10:59:00+01:00",
"lastUpdate" : "2024-02-01T11:00:00+01:00",
"relatedEntity" : [ {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "buyerServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "buyerServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500011"
} ],
"businessId" : "500012",
"agreementType" : "buyerServiceContract"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "ordererServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "ordererServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500014"
} ],
"businessId" : "500013",
"agreementType" : "ordererServiceContract"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "affectedProduct",
"entity" : {
"@type" : "ProductRef",
"id" : "922ebf01-e930-47a0-842e-059d1f188a15",
"@referredType" : "Product"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "singleContract",
"entity" : {
"@type" : "Agreement",
"name" : "singleContract",
"businessId" : "555001",
"agreementType" : "singleContract"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "searchTimeSlot",
"entity" : {
"@type" : "SearchTimeslotRef",
"id" : "158ecded-6aca-4f83-a54e-f35cc53be128",
"@referredType" : "SearchTimeslot"
}
}, {
"@type" : "AppointmentRelatedEntityRefOrValue",
"role" : "availableTimeSlot",
"entity" : {
"@type" : "AvailableTimeslotRef",
"id" : "321e0c9d-1112-41ac-9251-45fe542f92",
"@referredType" : "AvailableTimeslot"
}
} ],
"status" : "confirmed",
"validFor" : {
"startDateTime" : "2024-02-02T14:00:00+01:00",
"endDateTime" : "2024-02-02T15:00:00+01:00"
}
}
}
}
SearchTimeSlot attribute-change example
{
"$schema" : "../schema/fit-tmf646.schema.json",
"@type" : "SearchTimeSlotAttributeValueChangeEvent",
"eventId" : "entstoerung-vor-4-searchtimeslot-attribute-value-change",
"eventTime" : "2024-02-01T10:31:30+01:00",
"eventType" : "SearchTimeSlotAttributeValueChangeEvent",
"event" : {
"searchTimeSlot" : {
"@type" : "SearchTimeSlot",
"id" : "158ecded-6aca-4f83-a54e-f35cc53be128",
"href" : "https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128",
"appointmentCategory" : "beforeFaultTicket",
"requestDate" : "2024-02-01T10:30:30+01:00",
"requestPostedDate" : "2024-02-01T10:30:00+01:00",
"state" : "inProgress",
"stateChangeDate" : "2024-02-01T10:31:30+01:00",
"availableTimeSlot" : [ {
"@type" : "TimeSlot",
"id" : "e2cd000f-4731-4036-b481-d70d7617c70e",
"validFor" : {
"startDateTime" : "2024-02-02T14:00:00+01:00",
"endDateTime" : "2024-02-02T15:00:00+01:00"
}
}, {
"@type" : "TimeSlot",
"id" : "321e0c9d-1112-41ac-9251-45fe542f92",
"validFor" : {
"startDateTime" : "2024-02-03T08:00:00+01:00",
"endDateTime" : "2024-02-03T12:00:00+01:00"
}
} ],
"relatedEntity" : [ {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "buyerServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "buyerServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500011"
} ],
"businessId" : "500012",
"agreementType" : "buyerServiceContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "ordererServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "ordererServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500014"
} ],
"businessId" : "500013",
"agreementType" : "ordererServiceContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "affectedProduct",
"entity" : {
"@type" : "ProductRef",
"id" : "922ebf01-e930-47a0-842e-059d1f188a15",
"@referredType" : "Product"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "singleContract",
"entity" : {
"@type" : "Agreement",
"name" : "singleContract",
"businessId" : "555001",
"agreementType" : "singleContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "optionalServices",
"entity" : {
"@type" : "ProductOffering",
"name" : "Ganzheitliche Entstoerung"
}
} ],
"requestedTimeSlot" : [ {
"@type" : "TimeSlot",
"validFor" : {
"startDateTime" : "2024-02-02T08:00:00+01:00",
"endDateTime" : "2024-02-02T12:00:00+01:00"
}
} ]
}
}
}
SearchTimeSlot state-change example
{
"$schema" : "../schema/fit-tmf646.schema.json",
"@type" : "SearchTimeSlotStateChangeEvent",
"eventId" : "entstoerung-vor-3-searchtimeslot-state-change-in-progress",
"eventTime" : "2024-02-01T10:31:00+01:00",
"eventType" : "SearchTimeSlotStateChangeEvent",
"event" : {
"searchTimeSlot" : {
"@type" : "SearchTimeSlot",
"id" : "158ecded-6aca-4f83-a54e-f35cc53be128",
"href" : "https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128",
"appointmentCategory" : "beforeFaultTicket",
"requestDate" : "2024-02-01T10:30:30+01:00",
"requestPostedDate" : "2024-02-01T10:30:00+01:00",
"state" : "inProgress",
"stateChangeDate" : "2024-02-01T10:31:00+01:00",
"relatedEntity" : [ {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "buyerServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "buyerServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500011"
} ],
"businessId" : "500012",
"agreementType" : "buyerServiceContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "ordererServiceContract",
"entity" : {
"@type" : "Agreement",
"name" : "ordererServiceContract",
"engagedParty" : [ {
"@type" : "Organization",
"businessId" : "500014"
} ],
"businessId" : "500013",
"agreementType" : "ordererServiceContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "affectedProduct",
"entity" : {
"@type" : "ProductRef",
"id" : "922ebf01-e930-47a0-842e-059d1f188a15",
"@referredType" : "Product"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "singleContract",
"entity" : {
"@type" : "Agreement",
"name" : "singleContract",
"businessId" : "555001",
"agreementType" : "singleContract"
}
}, {
"@type" : "SearchTimeSlotRelatedEntityRefOrValue",
"role" : "optionalServices",
"entity" : {
"@type" : "ProductOffering",
"name" : "Ganzheitliche Entstoerung"
}
} ],
"requestedTimeSlot" : [ {
"@type" : "TimeSlot",
"validFor" : {
"startDateTime" : "2024-02-02T08:00:00+01:00",
"endDateTime" : "2024-02-02T12:00:00+01:00"
}
} ]
}
}
}