---
title: entities.appointment
description: Read appointment records with the appointment repository, and change them with the appointment mutations. Same records as the REST Appointments entity.
canonical: https://developers.coevera.com/reference/graphql/appointment/
section: graphql
verification: schema
generatedFrom: schema f155746 (2026-10-20)
publisher: Coevera
---

# entities.appointment

Read appointment records with the appointment repository, and change them with the appointment mutations. Same records as the REST Appointments entity.

REST: [Appointments](https://developers.coevera.com/reference/rest/appointments.md).

## Queries

- `getById(entityId: ID!): AppointmentEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [AppointmentEntity!]!` Returns the records with the given ids; ids without a record are left out. Deleted records are returned as well.
- `getAll(limit: Int, offset: Int, filter: AppointmentFilterInput, orderBy: [AppointmentOrderByInput!], includeDeleted: Boolean): [AppointmentEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: AppointmentFilterInput, orderBy: [AppointmentOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): AppointmentEntityConnection` Returns the records that match the filter as a cursor-paginated connection.
- `getChangedFieldsSinceRevision(id: UUID!, revision: Int!): [UUID!]!` Returns the ids of the fields of a record that changed after the given revision. Returns an empty list for entities without change tracking.
- `getBySession(includedIds: [UUID!]!, excludedIds: [UUID!]!, sessionId: String!, before: String, after: String, first: Int, last: Int): AppointmentEntityConnection` Returns a page of records selected in a list or report: all records of the given result plus the explicitly included ids, minus the excluded ids.
- `getByIdFormatted(id: UUID!, fieldIds: [UUID!]): JSONString` Returns the values of a record's fields formatted for display, keyed by field id.
- `autoPrefill(mappingId: UUID!, entityId: UUID!, targetEntityTypeId: UUID): AppointmentEntity!` Returns a new, unsaved record pre-filled from a source record according to a field mapping. Nothing is saved; the returned values can be used as input for create.
- `aiAutoPrefill(actionId: String!): AppointmentAutoPrefill!` Returns an unsaved record pre-filled with the values proposed by an AI record suggestion, together with the fields the suggestion filled in.
- `autoPrefillFromEmail(emailId: UUID!, mailboxId: UUID): AppointmentAutoPrefill!` Returns a new, unsaved appointment pre-filled from an email conversation: subject and description from the last sent email of the conversation that the user can read, the records linked to the conversation (including …

## Mutations

- `changeOwnershipAppointment(input: ChangeOwnershipAppointmentInput!): ChangeOwnershipAppointmentPayload` Change owner. GraphQL only.
- `restoreAppointment(input: RestoreAppointmentInput!): RestoreAppointmentPayload` Restore a deleted record.
- `respondToAppointmentInvitation(input: RespondToAppointmentInvitationInput!): RespondToAppointmentInvitationPayload` Records the calling user's response to their invitation to the appointment. Fails when the calling user is not among the invited users. GraphQL only.
- `setReminderAppointment(input: SetReminderAppointmentInput!): SetReminderAppointmentPayload` Set a reminder. GraphQL only.
- `removeReminderAppointment(input: RemoveReminderAppointmentInput!): RemoveReminderAppointmentPayload` Remove the reminder. GraphQL only.
- `createAppointment(input: CreateAppointmentInput!, validationLevel: [ValidationLevel!]): CreateAppointmentPayload` Create one record.
- `updateAppointment(input: UpdateAppointmentInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String): UpdateAppointmentPayload` Update fields.
- `bulkUpdateAppointment(input: [CreateOrUpdateAppointmentInput!]!, validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput, linkAttendees: Boolean): BulkUpdateAppointmentPayload` Create or update many; per-item results.
- `deleteAppointment(input: DeleteAppointmentInput!): DeleteAppointmentPayload` Soft-delete.
- `convertAppointment(input: CreateAppointmentInput!, sourceEntity: EntityNameEnum!, sourceEntityId: UUID!, operation: RecordConversionOperationEnum!, options: RecordConversionOptions!, sourceEntityApiName: String, validationLevel: [ValidationLevel!]): ConvertAppointmentPayload` Create from another record. GraphQL only.

## Types

### AppointmentEntity (object)

Meeting or call scheduled in the calendar, with its invited users and contacts, linked to the records it concerns.

- `customFields: JSONString! (1 args)` Values of the record's custom fields as a JSON object keyed by custom field apiName (camelCase).
- `pendingScheduledActions: Int` Filled only when a single record is read by its id; otherwise null or an empty list.
- `isDeleteProtected: Boolean!` True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
- `id: ID!` Unique identifier of entity.
- `activeReminder: String` Timestamp of the next pending reminder configured for the activity (reminder time, due date or end date as applicable). Empty when no reminder is pending.
- `mediaTranscriptionId: UUID` Id of the linked Media record holding the activity's call recording / transcription, when available.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `activityType: AppointmentTypeEntity` Appointment type that classifies this appointment. Drives form layout and icon.
- `currencyExchangeRatesList: CurrencyExchangeRatesListEntity` Currency exchange rate list used to convert monetary fields linked to this appointment. Empty to inherit the team space default.
- `owner: ClientEntity` Sales user who owns this appointment.
- `recurrenceMaster: AppointmentEntity` Master appointment of the recurring series this occurrence belongs to. Empty for standalone appointments and for the master itself.
- `schedule: AppointmentScheduleEntity` Appointment schedule (booking link) this appointment was created through, or empty for appointments created directly.
- `unit: SalesUnitEntity` Sales unit this appointment is assigned to. Determines which team members can see the record under unit-based sharing.
- `activityTypeId: ID` Id of the appointment type.
- `currencyExchangeRatesListId: ID` Id of the currency exchange rate list applied to this appointment.
- `description: String` Free-form description of the appointment.
- `duration: Float` Duration of the appointment, derived from start/end dates.
- `endDate: DateTime!` End timestamp of the appointment.
- `inviteesCanEdit: Boolean` True when invitees are allowed to edit the appointment. Defaults to false.
- `isRecurrenceActive: Boolean` True when the recurrence series is still generating new occurrences. Read-only.
- `isRecurrenceException: Boolean` True when this occurrence has been modified independently of the recurring series. Read-only.
- `location: String` Free-text physical location of the appointment.
- `meetingUrl: AppointmentMeeting` Online meeting link associated with the appointment (join URL plus meeting type, e.g. Zoom, Teams). Empty when the appointment has no online meeting attached.
- `occurenceDate: DateTime` Original date of this occurrence in the recurring series. Set automatically.
- `organizer: String` Email of the user organising the appointment. Set automatically and used as the reply-to address in invitation emails.
- `ownerId: ID!` Id of the appointment owner.
- `recurrenceMasterId: ID` Id of the master appointment.
- `recurrenceRule: String` iCalendar RRULE string describing the recurrence pattern (e.g. "FREQ=WEEKLY;BYDAY=MO,WE"). Empty for non-recurring appointments.
- `recurrenceTzid: String` IANA timezone the recurrence rule is evaluated in.
- `scheduleId: ID` Id of the appointment schedule.
- `scheduleTzid: String` IANA timezone the appointment was booked in (e.g. "Europe/Bratislava"). Used to evaluate availability against the schedule.
- `startDate: DateTime` Start timestamp of the appointment.
- `subject: String!` Short summary line shown in calendars and lists.
- `tableName: String!` Discriminator identifying the concrete record type — always "appointment" for Appointment records. Read-only; useful when consuming polymorphic Activity results.
- `unitId: ID` Id of the sales unit.
- `revision: Int` Revision when entity was lastly changed.
- `status: ActivityStatusEnum!` Current status of the appointment (NotStarted, InProgress, Completed, Canceled). Read-only; derived from the start/end times and the deleted flag.
- `accountRelations: ActivityRelationEntityConnection (8 args)` Accounts this appointment is linked to.
- `contactRelations: ActivityRelationEntityConnection (8 args)` Contacts this appointment is linked to.
- `leadRelations: ActivityRelationEntityConnection (8 args)` Leads this appointment is linked to.
- `opportunityRelations: ActivityRelationEntityConnection (8 args)` Opportunities this appointment is linked to.
- `projectRelations: ActivityRelationEntityConnection (8 args)` Projects this appointment is linked to, including the per-objective ordering.
- `quoteRelations: ActivityRelationEntityConnection (8 args)` Quotes this appointment is linked to.
- `customEntityRelations: ActivityRelationEntityConnection (8 args)` Custom entity records this appointment is linked to.
- `inviteesContacts: AppointmentContactInviteesRelationEntityConnection (7 args)` Non-user invitees on this appointment, identified by email. Contacts are auto-linked when their email matches an existing Contact record.
- `inviteesClients: AppointmentClientInviteesRelationEntityConnection (8 args)` Internal-user invitees on this appointment.
- `exchangeEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `gapiEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `o365EntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `has3rdPartyMapping: Boolean!` True when this appointment is mirrored to an external calendar (Office 365, Exchange, Google). Read-only.
- `reminder: AppointmentReminderEntity` Reminder set by the current authenticated user for this appointment. Per-user; empty when no reminder has been set.
- `documents: CloudObjectRelationEntityConnection (8 args)` Documents linked to this appointment.
- `comments: ActivityCommentEntityConnection (7 args)` Comments authored on this appointment.
- `tags: TagRelationEntityConnection (8 args)` Tag labels applied to this appointment.
- `formattedName: String!` Display name of the appointment (alias of subject).
- `recurrence: AppointmentRecurrence` Recurrence configuration for recurring appointments (parsed RRULE plus exception metadata). Empty for one-off appointments.
- `modifiedByUser: DateTime` Timestamp of the most recent modification made by an end user (excluding system changes). Read-only; computed by Coevera.
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.
- `relatedEntitiesDrilldown: CompactViewDrilldownModel! (1 args)` Records of the given entity type that are related to this record, as a drilldown list.
- `charts: [DashboardChartData!] (1 args)` Data of the given preview pane charts and lists, computed for this record.
- `chartsDrilldown: CompactViewDrilldownModel! (3 args)` Records behind one preview pane chart of this record: all records of a list chart, or the records of a single data point of a report chart.
- `fields: [InterfaceFieldData]! (2 args)` Values of the fields shown in the record's preview pane, as configured for the record's type.
- `mediaTranscription: MediaEntity` Recording attached to this activity, with its transcription and summary when available; null when there is none.

### AppointmentEntityConnection (object)

Paginated list of Appointment records.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [AppointmentEntityEdge]!` Contains the nodes in this connection.
- `totalCount: Int` Total number of items in the connection.

### AppointmentEntityEdge (object)

A Relay edge containing a `AppointmentEntity` and its cursor.

- `node: AppointmentEntity` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### ActivityStatusEnumFilterInput (input)

Conditions on an enumeration field. Several conditions given together must all match.

- `eq: [ActivityStatusEnum!]` Matches any of the listed values.
- `NOT: ActivityStatusEnumFilterInput` Matches values that do not meet this condition.

### AppointmentFilterInput (input)

Filter conditions for Appointment records. Conditions on different fields are combined with AND; use OR, AND and NOT for other combinations.

- `OR: [AppointmentFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [AppointmentFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: AppointmentFilterInput` Matches records that do not meet this filter.
- `globalSearchQuery: String` Search term matched against the fields that the global search covers for this entity.
- `id: EntityFilterStringField` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: EntityFilterDateTimeField` Last modification time.
- `created: EntityFilterDateTimeField` Creation time.
- `activityTypeId: EntityFilterStringField` Id of the appointment type.
- `currencyExchangeRatesListId: EntityFilterStringField` Id of the currency exchange rate list applied to this appointment.
- `description: EntityFilterStringField` Free-form description of the appointment.
- `duration: EntityFilterNumberField` Duration of the appointment, derived from start/end dates.
- `endDate: EntityFilterDateTimeField` End timestamp of the appointment.
- `inviteesCanEdit: Boolean` True when invitees are allowed to edit the appointment. Defaults to false.
- `isRecurrenceActive: Boolean` True when the recurrence series is still generating new occurrences. Read-only.
- `isRecurrenceException: Boolean` True when this occurrence has been modified independently of the recurring series. Read-only.
- `location: EntityFilterStringField` Free-text physical location of the appointment.
- `occurenceDate: EntityFilterDateTimeField` Original date of this occurrence in the recurring series. Set automatically.
- `organizer: EntityFilterStringField` Email of the user organising the appointment. Set automatically and used as the reply-to address in invitation emails.
- `ownerId: EntityFilterStringField` Id of the appointment owner.
- `recurrenceMasterId: EntityFilterStringField` Id of the master appointment.
- `recurrenceRule: EntityFilterStringField` iCalendar RRULE string describing the recurrence pattern (e.g. "FREQ=WEEKLY;BYDAY=MO,WE"). Empty for non-recurring appointments.
- `recurrenceTzid: EntityFilterStringField` IANA timezone the recurrence rule is evaluated in.
- `scheduleId: EntityFilterStringField` Id of the appointment schedule.
- `scheduleTzid: EntityFilterStringField` IANA timezone the appointment was booked in (e.g. "Europe/Bratislava"). Used to evaluate availability against the schedule.
- `startDate: EntityFilterDateTimeField` Start timestamp of the appointment.
- `subject: EntityFilterStringField` Short summary line shown in calendars and lists.
- `tableName: EntityFilterStringField` Discriminator identifying the concrete record type — always "appointment" for Appointment records. Read-only; useful when consuming polymorphic Activity results.
- `unitId: EntityFilterStringField` Id of the sales unit.
- `revision: EntityFilterNumberField` Revision when entity was lastly changed.
- `status: ActivityStatusEnumFilterInput` Current status of the appointment (NotStarted, InProgress, Completed, Canceled). Read-only; derived from the start/end times and the deleted flag.
- `exchangeEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `gapiEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `o365EntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `withCustom: [CustomField!]` Conditions on custom fields, each identified by its api name. All listed conditions must match.
- `activityType: AppointmentTypeFilterInput` Appointment type that classifies this appointment. Drives form layout and icon. Matches records where a related record meets these conditions.
- `currencyExchangeRatesList: CurrencyExchangeRatesListFilterInput` Currency exchange rate list used to convert monetary fields linked to this appointment. Empty to inherit the team space default. Matches records where a related record meets these conditions.
- `owner: ClientFilterInput` Sales user who owns this appointment. Matches records where a related record meets these conditions.
- `recurrenceMaster: AppointmentFilterInput` Master appointment of the recurring series this occurrence belongs to. Empty for standalone appointments and for the master itself. Matches records where a related record meets these conditions.
- `schedule: AppointmentScheduleFilterInput` Appointment schedule (booking link) this appointment was created through, or empty for appointments created directly. Matches records where a related record meets these conditions.
- `unit: SalesUnitFilterInput` Sales unit this appointment is assigned to. Determines which team members can see the record under unit-based sharing. Matches records where a related record meets these conditions.
- `accountRelations: ActivityRelationFilterInput` Accounts this appointment is linked to. Matches records where a related record meets these conditions.
- `contactRelations: ActivityRelationFilterInput` Contacts this appointment is linked to. Matches records where a related record meets these conditions.
- `leadRelations: ActivityRelationFilterInput` Leads this appointment is linked to. Matches records where a related record meets these conditions.
- `opportunityRelations: ActivityRelationFilterInput` Opportunities this appointment is linked to. Matches records where a related record meets these conditions.
- `projectRelations: ActivityRelationFilterInput` Projects this appointment is linked to, including the per-objective ordering. Matches records where a related record meets these conditions.
- `quoteRelations: ActivityRelationFilterInput` Quotes this appointment is linked to. Matches records where a related record meets these conditions.
- `customEntityRelations: ActivityRelationFilterInput` Custom entity records this appointment is linked to. Matches records where a related record meets these conditions.
- `inviteesContacts: AppointmentContactInviteesRelationFilterInput` Non-user invitees on this appointment, identified by email. Contacts are auto-linked when their email matches an existing Contact record. Matches records where a related record meets these conditions.
- `inviteesClients: AppointmentClientInviteesRelationFilterInput` Internal-user invitees on this appointment. Matches records where a related record meets these conditions.
- `reminder: AppointmentReminderFilterInput` Reminder set by the current authenticated user for this appointment. Per-user; empty when no reminder has been set. Matches records where a related record meets these conditions.
- `documents: CloudObjectRelationFilterInput` Documents linked to this appointment. Matches records where a related record meets these conditions.
- `comments: ActivityCommentFilterInput` Comments authored on this appointment. Matches records where a related record meets these conditions.
- `tags: TagRelationFilterInput` Tag labels applied to this appointment. Matches records where a related record meets these conditions.

### AppointmentOrderByInput (input)

Sorting of Appointment records. Set exactly one field in each item; list several items to sort by more fields, in order of priority.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `activityType: [AppointmentTypeOrderByNestedInput!]` Appointment type that classifies this appointment. Drives form layout and icon. Sorts by fields of the related record, listed in order of priority.
- `currencyExchangeRatesList: [CurrencyExchangeRatesListOrderByNestedInput!]` Currency exchange rate list used to convert monetary fields linked to this appointment. Empty to inherit the team space default. Sorts by fields of the related record, listed in order of priority.
- `owner: [ClientOrderByNestedInput!]` Sales user who owns this appointment. Sorts by fields of the related record, listed in order of priority.
- `recurrenceMaster: [AppointmentOrderByNestedInput!]` Master appointment of the recurring series this occurrence belongs to. Empty for standalone appointments and for the master itself. Sorts by fields of the related record, listed in order of priority.
- `schedule: [AppointmentScheduleOrderByNestedInput!]` Appointment schedule (booking link) this appointment was created through, or empty for appointments created directly. Sorts by fields of the related record, listed in order of priority.
- `unit: [SalesUnitOrderByNestedInput!]` Sales unit this appointment is assigned to. Determines which team members can see the record under unit-based sharing. Sorts by fields of the related record, listed in order of priority.
- `activityTypeId: OrderByEnum` Id of the appointment type.
- `currencyExchangeRatesListId: OrderByEnum` Id of the currency exchange rate list applied to this appointment.
- `description: OrderByEnum` Free-form description of the appointment.
- `duration: OrderByEnum` Duration of the appointment, derived from start/end dates.
- `endDate: OrderByEnum` End timestamp of the appointment.
- `inviteesCanEdit: OrderByEnum` True when invitees are allowed to edit the appointment. Defaults to false.
- `location: OrderByEnum` Free-text physical location of the appointment.
- `ownerId: OrderByEnum` Id of the appointment owner.
- `recurrenceMasterId: OrderByEnum` Id of the master appointment.
- `scheduleId: OrderByEnum` Id of the appointment schedule.
- `startDate: OrderByEnum` Start timestamp of the appointment.
- `subject: OrderByEnum` Short summary line shown in calendars and lists.
- `unitId: OrderByEnum` Id of the sales unit.
- `revision: OrderByEnum` Revision when entity was lastly changed.
- `status: OrderByEnum` Current status of the appointment (NotStarted, InProgress, Completed, Canceled). Read-only; derived from the start/end times and the deleted flag.
- `exchangeEntityId: OrderByEnum` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `gapiEntityId: OrderByEnum` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `o365EntityId: OrderByEnum` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `reminder: [AppointmentReminderOrderByNestedInput!]` Reminder set by the current authenticated user for this appointment. Per-user; empty when no reminder has been set. Sorts by fields of the related record, listed in order of priority.
- `withCustom: CommonEntityRepositoryOrderByCustomField` Sorts by a custom field.

### AppointmentMeetingInput (input)

Online meeting to link to an appointment: an existing meeting, or the service in which a new one is created.

- `joinUrl: String` Join URL of an existing online meeting. Leave empty to have a new meeting created with the selected service; when that fails, no meeting is attached.
- `type: AppointmentMeetingTypeEnum!` Online meeting service: Microsoft Teams (MsTeams) or Zoom.

### AppointmentReminderOrderByNestedInput (input)

Sorting by a field of the related AppointmentReminder record. Set exactly one field in each item.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `appointmentId: OrderByEnum` Id of the appointment this reminder belongs to.
- `endDateOffset: OrderByEnum` Seconds before the appointment start when the reminder should fire.
- `ownerId: OrderByEnum` Id of the user who set the reminder.
- `snoozeDate: OrderByEnum` Timestamp when a snoozed reminder should fire again. Empty when not snoozed.
- `status: OrderByEnum` Current state of the reminder: Scheduled to fire at its set time, Snoozed until snoozeDate, or Dismissed.
- `revision: OrderByEnum` Revision when entity was lastly changed.

### AppointmentScheduleOrderByNestedInput (input)

Sorting by a field of the related AppointmentSchedule record. Set exactly one field in each item.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `appointmentDescription: OrderByEnum` Description applied to appointments booked through this schedule.
- `appointmentDuration: OrderByEnum` Duration of each booked appointment.
- `appointmentLocation: OrderByEnum` Location applied to appointments booked through this schedule.
- `appointmentLocationType: OrderByEnum` Where booked appointments take place: the location given in appointmentLocation (Custom), or a Microsoft Teams (Microsoft) or Zoom (Zoom) online meeting.
- `appointmentOwnerId: OrderByEnum` Id of the user receiving the booking.
- `appointmentSubject: OrderByEnum` Subject applied to appointments booked through this schedule.
- `appointmentSubjectUsesScheduleName: OrderByEnum` When true, booked appointments use the scheduleName as their subject instead of appointmentSubject.
- `appointmentTypeId: OrderByEnum` Id of the appointment type used for appointments booked through the schedule.
- `bufferTimeAfter: OrderByEnum` Buffer in seconds kept free after each booked appointment (e.g. 900 = 15 minutes).
- `bufferTimeBefore: OrderByEnum` Buffer in seconds kept free before each booked appointment (e.g. 900 = 15 minutes).
- `confirmationPageType: OrderByEnum` What is shown to the booker after confirming (e.g. default Coevera page or a custom redirect URL).
- `confirmationPageUrl: OrderByEnum` Custom URL the booker is redirected to after confirming. Used when confirmationPageType selects a custom redirect.
- `isEnabled: OrderByEnum` Master switch for the schedule. Disabled schedules do not accept new bookings.
- `minimumNoticeTime: OrderByEnum` Minimum notice in seconds required before a slot can be booked (e.g. 3600 = one hour).
- `name: OrderByEnum` Admin-only name for the schedule, used in pickers and lists. Not shown to bookers; use scheduleName for the public-facing name.
- `ownerId: OrderByEnum` Id of the schedule owner.
- `planningDayOffset: OrderByEnum` With Offset planning, how many days ahead the schedule remains bookable.
- `planningPeriodFrom: OrderByEnum` With Period planning, first date bookings are accepted for.
- `planningPeriodTo: OrderByEnum` With Period planning, last date bookings are accepted for.
- `planningType: OrderByEnum` Time window in which the schedule accepts bookings: any future date (Infinite), up to planningDayOffset days ahead (Offset), or between planningPeriodFrom and planningPeriodTo (Period).
- `reminderEmailEnabled: OrderByEnum` True when a reminder email is sent to invitees ahead of the booked appointment.
- `reminderEmailOffset: OrderByEnum` Time before the appointment when the reminder email is sent. Interpreted using reminderEmailOffsetType.
- `reminderEmailOffsetType: OrderByEnum` Time unit of reminderEmailOffset: Minute, Hour, Day or Week.
- `replyCompanyEmailId: OrderByEnum` Id of the company email used as the From / Reply-To on schedule confirmation emails. Empty falls back to the team space default.
- `scheduleName: OrderByEnum` Public-facing name of the schedule, shown to bookers on the booking page.
- `timeIncrement: OrderByEnum` Step in seconds between offered start times (e.g. 900 means slots at :00, :15, :30, :45).
- `type: OrderByEnum` Kind of meetings booked through the schedule: one-to-one (OneToOne) or group (Group) meetings.
- `url: OrderByEnum` Public URL slug of the schedule, used to share the booking page.

### ChangeOwnershipAppointmentInput (input)

Parameters of the changeOwnershipAppointment mutation.

- `ownerId: ID!` User who becomes the new owner of the appointment.
- `unitId: ID!` Sales unit the appointment is assigned to.
- `keepOwnerAsAttendee: Boolean!` When true, the previous owner (if still an active user) is added to the invited users with no response yet, unless already invited.
- `id: ID!` Identifier of the AppointmentEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### CreateAppointmentClientInviteesRelationNoAppointmentBackrefInput (input)

Field values of a new AppointmentClientInviteesRelation record, created together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `clientId: ID!` Id of the user.
- `response: InviteeResponseEnum` Response of the invitee to the appointment invitation: NoResponse, Accepted or Rejected.
- `revision: Int` Revision when entity was lastly changed.

### CreateAppointmentContactInviteesRelationNoAppointmentBackrefInput (input)

Field values of a new AppointmentContactInviteesRelation record, created together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `contactId: ID` Id of the matched contact.
- `email: String!` Email address of the invitee. Required and used as the natural key for the link.
- `firstName: String` Given name of the invitee, when supplied.
- `inviteeType: AppointmentInviteeTypeEnum` How the invitee was added: invited directly on the appointment (Standard), or the person who booked it through an appointment schedule (Scheduled).
- `lastName: String` Family name of the invitee, when supplied.
- `response: InviteeResponseEnum` Response of the invitee to the appointment invitation: NoResponse, Accepted or Rejected.
- `revision: Int` Revision when entity was lastly changed.

### CreateAppointmentInput (input)

Field values of a new Appointment record.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `mediaTranscriptionId: UUID` Id of the linked Media record holding the activity's call recording / transcription, when available.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `activityTypeId: ID` Id of the appointment type.
- `currencyExchangeRatesListId: ID` Id of the currency exchange rate list applied to this appointment.
- `description: String` Free-form description of the appointment.
- `duration: Float` Duration of the appointment, derived from start/end dates.
- `endDate: DateTime!` End timestamp of the appointment.
- `inviteesCanEdit: Boolean` True when invitees are allowed to edit the appointment. Defaults to false.
- `isRecurrenceActive: Boolean` True when the recurrence series is still generating new occurrences. Read-only.
- `isRecurrenceException: Boolean` True when this occurrence has been modified independently of the recurring series. Read-only.
- `location: String` Free-text physical location of the appointment.
- `meetingUrl: AppointmentMeetingInput` Online meeting link associated with the appointment (join URL plus meeting type, e.g. Zoom, Teams). Empty when the appointment has no online meeting attached.
- `occurenceDate: DateTime` Original date of this occurrence in the recurring series. Set automatically.
- `organizer: String` Email of the user organising the appointment. Set automatically and used as the reply-to address in invitation emails.
- `ownerId: ID!` Id of the appointment owner.
- `recurrenceMasterId: ID` Id of the master appointment.
- `recurrenceRule: String` iCalendar RRULE string describing the recurrence pattern (e.g. "FREQ=WEEKLY;BYDAY=MO,WE"). Empty for non-recurring appointments.
- `recurrenceTzid: String` IANA timezone the recurrence rule is evaluated in.
- `scheduleId: ID` Id of the appointment schedule.
- `scheduleTzid: String` IANA timezone the appointment was booked in (e.g. "Europe/Bratislava"). Used to evaluate availability against the schedule.
- `startDate: DateTime` Start timestamp of the appointment.
- `subject: String!` Short summary line shown in calendars and lists.
- `unitId: ID` Id of the sales unit.
- `customFields: JSONString` Custom field values to set, as a JSON object keyed by custom field API name, e.g. {"cfBudget": 1000}. Only the custom fields included are changed; each value uses the format of that field.
- `revision: Int` Revision when entity was lastly changed.
- `accountRelations: [CreateActivityRelationNoActivityBackrefInput!]` Accounts this appointment is linked to.
- `contactRelations: [CreateActivityRelationNoActivityBackrefInput!]` Contacts this appointment is linked to.
- `leadRelations: [CreateActivityRelationNoActivityBackrefInput!]` Leads this appointment is linked to.
- `opportunityRelations: [CreateActivityRelationNoActivityBackrefInput!]` Opportunities this appointment is linked to.
- `projectRelations: [CreateActivityRelationNoActivityBackrefInput!]` Projects this appointment is linked to, including the per-objective ordering.
- `quoteRelations: [CreateActivityRelationNoActivityBackrefInput!]` Quotes this appointment is linked to.
- `customEntityRelations: [CreateActivityRelationNoActivityBackrefInput!]` Custom entity records this appointment is linked to.
- `inviteesContacts: [CreateAppointmentContactInviteesRelationNoAppointmentBackrefInput!]` Non-user invitees on this appointment, identified by email. Contacts are auto-linked when their email matches an existing Contact record.
- `inviteesClients: [CreateAppointmentClientInviteesRelationNoAppointmentBackrefInput!]` Internal-user invitees on this appointment.
- `reminder: CreateAppointmentReminderNoAppointmentBackrefInput` Reminder set by the current authenticated user for this appointment. Per-user; empty when no reminder has been set.
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Documents linked to this appointment.
- `comments: [CreateActivityCommentNoActivityBackrefInput!]` Comments authored on this appointment.
- `tags: [CreateTagRelationNoAppointmentBackrefInput!]` Tag labels applied to this appointment.

### CreateAppointmentReminderNoAppointmentBackrefInput (input)

Field values of a new AppointmentReminder record, created together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `endDateOffset: Int!` Seconds before the appointment start when the reminder should fire.
- `ownerId: ID!` Id of the user who set the reminder.
- `snoozeDate: DateTime` Timestamp when a snoozed reminder should fire again. Empty when not snoozed.
- `status: ReminderStatusEnum` Current state of the reminder: Scheduled to fire at its set time, Snoozed until snoozeDate, or Dismissed.
- `revision: Int` Revision when entity was lastly changed.

### CreateOrUpdateAppointmentInput (input)

Field values of an Appointment record to create, or to update when its id is set.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID` Unique identifier of entity.
- `mediaTranscriptionId: UUID` Id of the linked Media record holding the activity's call recording / transcription, when available.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `activityTypeId: ID` Id of the appointment type.
- `currencyExchangeRatesListId: ID` Id of the currency exchange rate list applied to this appointment.
- `description: String` Free-form description of the appointment.
- `duration: Float` Duration of the appointment, derived from start/end dates.
- `endDate: DateTime` End timestamp of the appointment.
- `inviteesCanEdit: Boolean` True when invitees are allowed to edit the appointment. Defaults to false.
- `isRecurrenceActive: Boolean` True when the recurrence series is still generating new occurrences. Read-only.
- `isRecurrenceException: Boolean` True when this occurrence has been modified independently of the recurring series. Read-only.
- `location: String` Free-text physical location of the appointment.
- `meetingUrl: AppointmentMeetingInput` Online meeting link associated with the appointment (join URL plus meeting type, e.g. Zoom, Teams). Empty when the appointment has no online meeting attached.
- `occurenceDate: DateTime` Original date of this occurrence in the recurring series. Set automatically.
- `organizer: String` Email of the user organising the appointment. Set automatically and used as the reply-to address in invitation emails.
- `ownerId: ID` Id of the appointment owner.
- `recurrenceMasterId: ID` Id of the master appointment.
- `recurrenceRule: String` iCalendar RRULE string describing the recurrence pattern (e.g. "FREQ=WEEKLY;BYDAY=MO,WE"). Empty for non-recurring appointments.
- `recurrenceTzid: String` IANA timezone the recurrence rule is evaluated in.
- `scheduleId: ID` Id of the appointment schedule.
- `scheduleTzid: String` IANA timezone the appointment was booked in (e.g. "Europe/Bratislava"). Used to evaluate availability against the schedule.
- `startDate: DateTime` Start timestamp of the appointment.
- `subject: String` Short summary line shown in calendars and lists.
- `unitId: ID` Id of the sales unit.
- `customFields: JSONString` Custom field values to set, as a JSON object keyed by custom field API name, e.g. {"cfBudget": 1000}. Only the custom fields included are changed; each value uses the format of that field.
- `revision: Int` Revision when entity was lastly changed.
- `accountRelations: [CreateActivityRelationNoActivityBackrefInput!]` Accounts this appointment is linked to.
- `contactRelations: [CreateActivityRelationNoActivityBackrefInput!]` Contacts this appointment is linked to.
- `leadRelations: [CreateActivityRelationNoActivityBackrefInput!]` Leads this appointment is linked to.
- `opportunityRelations: [CreateActivityRelationNoActivityBackrefInput!]` Opportunities this appointment is linked to.
- `projectRelations: [CreateActivityRelationNoActivityBackrefInput!]` Projects this appointment is linked to, including the per-objective ordering.
- `quoteRelations: [CreateActivityRelationNoActivityBackrefInput!]` Quotes this appointment is linked to.
- `customEntityRelations: [CreateActivityRelationNoActivityBackrefInput!]` Custom entity records this appointment is linked to.
- `inviteesContacts: [CreateAppointmentContactInviteesRelationNoAppointmentBackrefInput!]` Non-user invitees on this appointment, identified by email. Contacts are auto-linked when their email matches an existing Contact record.
- `inviteesClients: [CreateAppointmentClientInviteesRelationNoAppointmentBackrefInput!]` Internal-user invitees on this appointment.
- `exchangeEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `gapiEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `o365EntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `reminder: UpdateAppointmentReminderNoAppointmentBackrefInput` Reminder set by the current authenticated user for this appointment. Per-user; empty when no reminder has been set.
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Documents linked to this appointment.
- `comments: [CreateActivityCommentNoActivityBackrefInput!]` Comments authored on this appointment.
- `tags: [CreateTagRelationNoAppointmentBackrefInput!]` Tag labels applied to this appointment.

### CreateTagRelationNoAppointmentBackrefInput (input)

Field values of a new TagRelation record, created together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `accountId: ID` Id of the linked account.
- `contactId: ID` Id of the linked contact.
- `customEntityId: ID` Id of the linked custom entity record.
- `emailId: ID` Id of the linked email.
- `leadId: ID` Id of the linked lead.
- `opptyId: ID` Id of the linked opportunity.
- `processId: ID` Id of the linked sales process.
- `projectId: ID` Id of the linked project.
- `quoteId: ID` Id of the linked quote.
- `solutionId: ID` Id of the linked solution.
- `tagId: ID!` Id of the tag attached to the record.
- `taskId: ID` Id of the linked task.
- `revision: Int` Revision when entity was lastly changed.

### DeleteAppointmentInput (input)

Id of the Appointment record to delete.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID!` Unique identifier of entity.

### RemoveReminderAppointmentInput (input)

Parameters of the removeReminderAppointment mutation.

- `id: ID!` Identifier of the AppointmentEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### RespondToAppointmentInvitationInput (input)

Parameters of the respondToAppointmentInvitation mutation.

- `response: InviteeResponseEnum!` The response: Accepted, Rejected, or NoResponse to clear an earlier answer.
- `id: ID!` Identifier of the AppointmentEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### RestoreAppointmentInput (input)

Parameters of the restoreAppointment mutation.

- `id: ID!` Identifier of the AppointmentEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### SetReminderAppointmentInput (input)

Parameters of the setReminderAppointment mutation.

- `endDateOffset: Int` How long before the appointment start the reminder fires, in seconds. When a first reminder is created without an offset and without the Scheduled status, the user's default appointment reminder is used.
- `status: ReminderStatusEnum` State of the reminder: Scheduled, Snoozed or Dismissed. Omit to keep the current state.
- `snoozeDate: DateTime` When a snoozed reminder fires again; used with the Snoozed status.
- `id: ID!` Identifier of the AppointmentEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### UpdateAppointmentInput (input)

Id of an Appointment record and the field values to change.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID!` Unique identifier of entity.
- `mediaTranscriptionId: UUID` Id of the linked Media record holding the activity's call recording / transcription, when available.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `activityTypeId: ID` Id of the appointment type.
- `currencyExchangeRatesListId: ID` Id of the currency exchange rate list applied to this appointment.
- `description: String` Free-form description of the appointment.
- `duration: Float` Duration of the appointment, derived from start/end dates.
- `endDate: DateTime` End timestamp of the appointment.
- `inviteesCanEdit: Boolean` True when invitees are allowed to edit the appointment. Defaults to false.
- `isRecurrenceActive: Boolean` True when the recurrence series is still generating new occurrences. Read-only.
- `isRecurrenceException: Boolean` True when this occurrence has been modified independently of the recurring series. Read-only.
- `location: String` Free-text physical location of the appointment.
- `meetingUrl: AppointmentMeetingInput` Online meeting link associated with the appointment (join URL plus meeting type, e.g. Zoom, Teams). Empty when the appointment has no online meeting attached.
- `occurenceDate: DateTime` Original date of this occurrence in the recurring series. Set automatically.
- `organizer: String` Email of the user organising the appointment. Set automatically and used as the reply-to address in invitation emails.
- `ownerId: ID` Id of the appointment owner.
- `recurrenceMasterId: ID` Id of the master appointment.
- `recurrenceRule: String` iCalendar RRULE string describing the recurrence pattern (e.g. "FREQ=WEEKLY;BYDAY=MO,WE"). Empty for non-recurring appointments.
- `recurrenceTzid: String` IANA timezone the recurrence rule is evaluated in.
- `scheduleId: ID` Id of the appointment schedule.
- `scheduleTzid: String` IANA timezone the appointment was booked in (e.g. "Europe/Bratislava"). Used to evaluate availability against the schedule.
- `startDate: DateTime` Start timestamp of the appointment.
- `subject: String` Short summary line shown in calendars and lists.
- `unitId: ID` Id of the sales unit.
- `customFields: JSONString` Custom field values to set, as a JSON object keyed by custom field API name, e.g. {"cfBudget": 1000}. Only the custom fields included are changed; each value uses the format of that field.
- `revision: Int` Revision when entity was lastly changed.
- `accountRelations: [CreateActivityRelationNoActivityBackrefInput!]` Accounts this appointment is linked to.
- `contactRelations: [CreateActivityRelationNoActivityBackrefInput!]` Contacts this appointment is linked to.
- `leadRelations: [CreateActivityRelationNoActivityBackrefInput!]` Leads this appointment is linked to.
- `opportunityRelations: [CreateActivityRelationNoActivityBackrefInput!]` Opportunities this appointment is linked to.
- `projectRelations: [CreateActivityRelationNoActivityBackrefInput!]` Projects this appointment is linked to, including the per-objective ordering.
- `quoteRelations: [CreateActivityRelationNoActivityBackrefInput!]` Quotes this appointment is linked to.
- `customEntityRelations: [CreateActivityRelationNoActivityBackrefInput!]` Custom entity records this appointment is linked to.
- `inviteesContacts: [CreateAppointmentContactInviteesRelationNoAppointmentBackrefInput!]` Non-user invitees on this appointment, identified by email. Contacts are auto-linked when their email matches an existing Contact record.
- `inviteesClients: [CreateAppointmentClientInviteesRelationNoAppointmentBackrefInput!]` Internal-user invitees on this appointment.
- `exchangeEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `gapiEntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `o365EntityId: String` External identifier of the record in the linked third-party service (e.g. Google, Microsoft 365, Exchange). Maintained by the sync engine.
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Documents linked to this appointment.
- `comments: [CreateActivityCommentNoActivityBackrefInput!]` Comments authored on this appointment.
- `tags: [CreateTagRelationNoAppointmentBackrefInput!]` Tag labels applied to this appointment.

### UpdateAppointmentReminderNoAppointmentBackrefInput (input)

Id of an AppointmentReminder record and the field values to change, updated together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `endDateOffset: Int` Seconds before the appointment start when the reminder should fire.
- `ownerId: ID` Id of the user who set the reminder.
- `snoozeDate: DateTime` Timestamp when a snoozed reminder should fire again. Empty when not snoozed.
- `status: ReminderStatusEnum` Current state of the reminder: Scheduled to fire at its set time, Snoozed until snoozeDate, or Dismissed.
- `revision: Int` Revision when entity was lastly changed.

### BulkUpdateAppointmentPayload (object)

Result of the bulkUpdateAppointment mutation.

- `result: BulkUpdateResults!` Ids of the created, updated and deleted records, and the items that failed.

### ChangeOwnershipAppointmentPayload (object)

Result of the changeOwnershipAppointment mutation.

- `result: AppointmentEntity` The appointment with its new owner.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### ConvertAppointmentPayload (object)

Result of the convertAppointment mutation.

- `appointment: AppointmentEntity!` The created record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### CreateAppointmentPayload (object)

Result of the createAppointment mutation.

- `appointment: AppointmentEntity` The created record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### DeleteAppointmentPayload (object)

Result of the deleteAppointment mutation.

- `appointment: AppointmentEntity` The deleted record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### RemoveReminderAppointmentPayload (object)

Result of the removeReminderAppointment mutation.

- `result: AppointmentEntity` The appointment with the dismissed reminder.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### RespondToAppointmentInvitationPayload (object)

Result of the respondToAppointmentInvitation mutation.

- `result: AppointmentEntity` The appointment with the updated response.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### RestoreAppointmentPayload (object)

Result of the restoreAppointment mutation.

- `result: AppointmentEntity` The restored record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### SetReminderAppointmentPayload (object)

Result of the setReminderAppointment mutation.

- `result: AppointmentEntity` The appointment with the updated reminder.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### UpdateAppointmentPayload (object)

Result of the updateAppointment mutation.

- `appointment: AppointmentEntity` The updated record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### ActivityStatusEnum (enum)

Status of a task or appointment.

- `NotStarted` Task not started yet, or appointment that starts in the future.
- `InProgress` Task being worked on, or appointment taking place now.
- `Waiting` Task waiting on someone or something else.
- `Completed` Task done, or appointment that has already ended.
- `Deferred` Task postponed.
- `Canceled` Appointment that was canceled.

### AppointmentAutoPrefill (object)

New, unsaved appointment pre-filled by AI or from an email conversation, with the ids of the fields that were filled in.

- `entity: AppointmentEntity` New appointment carrying the pre-filled values; it is not saved.
- `fieldIds: [UUID!]!` Ids of the fields that were filled in.

### AppointmentMeeting (object)

Online meeting (Microsoft Teams or Zoom) linked to an appointment.

- `joinUrl: String!` URL participants use to join the online meeting.
- `type: AppointmentMeetingTypeEnum!` Online meeting service: Microsoft Teams (MsTeams) or Zoom.

### AppointmentMeetingTypeEnum (enum)

Online meeting service used for an appointment's meeting link.

- `MsTeams` Microsoft Teams meeting.
- `Zoom` Zoom meeting.

### AppointmentRecurrence (object)

Recurrence of an appointment that belongs to a recurring series.

- `rrule: String!` Recurrence rule of the series in iCalendar (RFC 5545) RRULE format. Empty when the rule is not known.
- `rruleHumanReadable: String!` The recurrence rule as readable text in the language of the current user, e.g. "Every week on Monday". Empty when the rule cannot be read.
- `calendarUrl: String` Link to open the appointment in Outlook on the web, for series synchronized from Office 365. Empty otherwise.

Types several repositories share, such as `PageInfo` and the filter fields, are in the [types index](https://developers.coevera.com/reference/graphql/types.md). The [SDL](https://developers.coevera.com/graphql/schema.graphql) has the whole schema in one file.

## Example

```graphql
query FirstAppointments {
  entities {
    appointment {
      getByCriteria(first: 3, orderBy: [{ modified: Desc }]) {
        totalCount
        edges { node { id formattedName subject modified } }
      }
    }
  }
}
```

```bash
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query FirstAppointments { entities { appointment { getByCriteria(first: 3, orderBy: [{ modified: Desc }]) { totalCount edges { node { id formattedName subject modified } } } } } }"}'
```

## Examples of each operation

Built from the schema and checked against it; replace the placeholders, such as `<appointment id>`, with values from your space.

### getById

```graphql
query AppointmentGetById {
  entities {
    appointment {
      getById(entityId: "<appointment id>") {
        id
        formattedName
        subject
        modified
      }
    }
  }
}
```

### getByIds

```graphql
query AppointmentGetByIds {
  entities {
    appointment {
      getByIds(entityIds: ["<appointment id>"]) {
        id
        formattedName
        subject
        modified
      }
    }
  }
}
```

### getAll

```graphql
query AppointmentGetAll {
  entities {
    appointment {
      getAll(limit: 10) {
        id
        formattedName
        subject
        modified
      }
    }
  }
}
```

### getByCriteria

```graphql
query AppointmentGetByCriteria {
  entities {
    appointment {
      getByCriteria(first: 10) {
        totalCount
        edges {
          node {
            id
            formattedName
            subject
            modified
          }
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}
```

### getChangedFieldsSinceRevision

```graphql
query AppointmentGetChangedFieldsSinceRevision {
  entities {
    appointment {
      getChangedFieldsSinceRevision(id: "<appointment id>", revision: 10)
    }
  }
}
```

### getBySession

```graphql
query AppointmentGetBySession {
  entities {
    appointment {
      getBySession(
        includedIds: ["<appointment id>"]
        excludedIds: ["<appointment id>"]
        sessionId: "<session id>"
        first: 10
      ) {
        totalCount
        edges {
          node {
            id
            formattedName
            subject
            modified
          }
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}
```

### getByIdFormatted

```graphql
query AppointmentGetByIdFormatted {
  entities {
    appointment {
      getByIdFormatted(id: "<appointment id>")
    }
  }
}
```

### autoPrefill

```graphql
query AppointmentAutoPrefill {
  entities {
    appointment {
      autoPrefill(mappingId: "<mapping id>", entityId: "<appointment id>") {
        id
        formattedName
        subject
        modified
      }
    }
  }
}
```

### aiAutoPrefill

```graphql
query AppointmentAiAutoPrefill {
  entities {
    appointment {
      aiAutoPrefill(actionId: "<action id>") {
        entity {
          id
          formattedName
          subject
          modified
        }
        fieldIds
      }
    }
  }
}
```

### autoPrefillFromEmail

```graphql
query AppointmentAutoPrefillFromEmail {
  entities {
    appointment {
      autoPrefillFromEmail(emailId: "<email id>") {
        entity {
          id
          formattedName
          subject
          modified
        }
        fieldIds
      }
    }
  }
}
```

### changeOwnershipAppointment

```graphql
mutation ChangeOwnershipAppointment {
  changeOwnershipAppointment(
    input: {ownerId: "<owner id>", unitId: "<unit id>", keepOwnerAsAttendee: false, id: "<appointment id>"}
  ) {
    result {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### restoreAppointment

```graphql
mutation RestoreAppointment {
  restoreAppointment(input: {id: "<appointment id>"}) {
    result {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### respondToAppointmentInvitation

```graphql
mutation RespondToAppointmentInvitation {
  respondToAppointmentInvitation(
    input: {response: NoResponse, id: "<appointment id>"}
  ) {
    result {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### setReminderAppointment

```graphql
mutation SetReminderAppointment {
  setReminderAppointment(input: {id: "<appointment id>"}) {
    result {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### removeReminderAppointment

```graphql
mutation RemoveReminderAppointment {
  removeReminderAppointment(input: {id: "<appointment id>"}) {
    result {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### createAppointment

```graphql
mutation CreateAppointment {
  createAppointment(
    input: {endDate: "2026-12-15T09:00:00+00:00", ownerId: "<owner id>", subject: "Call Northwind Analytics"}
  ) {
    appointment {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### updateAppointment

```graphql
mutation UpdateAppointment {
  updateAppointment(input: {id: "<appointment id>"}) {
    appointment {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### bulkUpdateAppointment

```graphql
mutation BulkUpdateAppointment {
  bulkUpdateAppointment(input: [{id: "<appointment id>"}]) {
    result {
      created {
        id
      }
      errors {
        index
        code
        message
        entityId
      }
      updated
      deleted
      errorsOnDelete {
        index
        code
        message
        entityId
      }
    }
  }
}
```

### deleteAppointment

```graphql
mutation DeleteAppointment {
  deleteAppointment(input: {id: "<appointment id>"}) {
    appointment {
      id
      formattedName
      subject
      modified
    }
  }
}
```

### convertAppointment

```graphql
mutation ConvertAppointment {
  convertAppointment(
    input: {endDate: "2026-12-15T09:00:00+00:00", ownerId: "<owner id>", subject: "Call Northwind Analytics"}
    sourceEntity: AiAgent
    sourceEntityId: "<source entity id>"
    operation: Nothing
    options: {}
  ) {
    appointment {
      id
      formattedName
      subject
      modified
    }
  }
}
```
