Směny.cz API

GraphQL API pro platformu Směny.cz — workforce scheduling SaaS.

Získání API tokenu

  1. Přihlas se do Směny.cz jako správce firmy.
  2. Přejdi do Nastavení → API přístupy: https://smeny.cz/setting/dashboard
  3. Vytvoř nový API přístup a vygeneruj token: https://smeny.cz/company-access-token/list
  4. Zkopíruj vygenerovaný token — zobrazí se pouze jednou.

Autentizace

Vygenerovaný token přidej do každého požadavku v HTTP hlavičce:

Authorization: Bearer <tvůj-token>

Alternativně lze token předat jako query parametr ?token=<tvůj-token> (méně bezpečné).

Endpoint

Všechny GraphQL dotazy a mutace jdou na jeden endpoint metodou POST:

POST https://smeny.cz/api/graphql
Content-Type: application/json

Příklad s curl:

curl -X POST https://smeny.cz/api/graphql \
  -H "Authorization: Bearer <tvůj-token>" \
  -H "Content-Type: application/json" \
  -d '{"query": "query { me { id firstName lastName } }"}'

Chyby

API vrací chyby v standardním GraphQL formátu. Pole extensions obsahuje HTTP stavový kód a kategorii chyby:

{
  "errors": [
    {
      "message": "Popis chyby",
      "path": ["fieldName"],
      "extensions": {
        "code": 403,
        "category": "validation"
      }
    }
  ]
}

Časté hodnoty extensions.code: 400 (chybný vstup / validace), 401 (neplatný nebo chybějící token), 403 (nedostatečná oprávnění), 404 (záznam nenalezen).

Stránkování

Listy používají cursor-based paginaci (Relay Connection pattern). Každý dotaz vracející kolekci přijímá argument pager typu Pager:

Argument Typ Popis
first Int Počet záznamů od začátku (nebo od after)
after String Cursor — vrátí záznamy za tímto cursorem
last Int Počet záznamů od konce (vyžaduje before)
before String Cursor — vrátí záznamy před tímto cursorem

Odpověď obsahuje edges[].cursor, pageInfo.hasNextPage, pageInfo.endCursor a totalCount.

Příklad iterace přes všechny záznamy:

query (: String) {
  users(pager: { first: 50, after:  }) {
    edges { node { id firstName } cursor }
    pageInfo { hasNextPage endCursor }
    totalCount
  }
}

Dávkové dotazy

Více GraphQL dotazů lze odeslat v jednom HTTP požadavku (Apollo batching) na endpoint /api/graphql/batch jako JSON pole dotazů.

License

Proprietary

API Endpoints
# Production:
https://smeny.cz/api/graphql

Queries

absenceExport

Response

Returns an AbsenceExportConnection!

Arguments
Name Description
pager - Pager
filter - AbsenceExportFilter

Example

Query
query absenceExport(
  $pager: Pager,
  $filter: AbsenceExportFilter
) {
  absenceExport(
    pager: $pager,
    filter: $filter
  ) {
    edges {
      ...AbsenceExportConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": AbsenceExportFilter
}
Response
{
  "data": {
    "absenceExport": {
      "edges": [AbsenceExportConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

approvalRequest

Response

Returns an ApprovalRequest

Arguments
Name Description
id - ID!

Example

Query
query approvalRequest($id: ID!) {
  approvalRequest(id: $id) {
    id
    type
    subjectDate
    requestedAt
    requestedBy {
      ...UserFragment
    }
    state
    decision
    decidedBy {
      ...UserFragment
    }
    decidedAt
    cancelledAt
    cancelledBy {
      ...UserFragment
    }
    note
    decisionStrategy {
      ...ApprovalRequestDecisionStrategyFragment
    }
    approvals {
      ...UsersConnectionFragment
    }
    defaultApproval {
      ...UserFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "approvalRequest": {
      "id": "xyz789",
      "type": "ATTENDANCE",
      "subjectDate": "2007-12-03",
      "requestedAt": "2007-12-03",
      "requestedBy": User,
      "state": "PENDING",
      "decision": "ACCEPTED",
      "decidedBy": User,
      "decidedAt": "2007-12-03",
      "cancelledAt": "2007-12-03",
      "cancelledBy": User,
      "note": "abc123",
      "decisionStrategy": ApprovalRequestDecisionStrategy,
      "approvals": UsersConnection,
      "defaultApproval": User
    }
  }
}

approvalRequestStats

Response

Returns an ApprovalRequestStats

Example

Query
query approvalRequestStats {
  approvalRequestStats {
    approvalRequestTypes {
      ...approvalRequestTypeStatsFragment
    }
  }
}
Response
{
  "data": {
    "approvalRequestStats": {
      "approvalRequestTypes": [approvalRequestTypeStats]
    }
  }
}

approvalRequests

Response

Returns an ApprovalRequestsConnection!

Arguments
Name Description
pager - Pager
filter - ApprovalRequestsFilter

Example

Query
query approvalRequests(
  $pager: Pager,
  $filter: ApprovalRequestsFilter
) {
  approvalRequests(
    pager: $pager,
    filter: $filter
  ) {
    edges {
      ...ApprovalRequestConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": ApprovalRequestsFilter
}
Response
{
  "data": {
    "approvalRequests": {
      "edges": [ApprovalRequestConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

attendance

Response

Returns an Attendance

Arguments
Name Description
id - ID!

Example

Query
query attendance($id: ID!) {
  attendance(id: $id) {
    id
    since
    till
    checkedIn
    checkedOut
    fundDrawing
    user {
      ...UserFragment
    }
    attendanceType
    absenceType {
      ...AttendanceTypeFragment
    }
    presenceStatus
    type {
      ...AttendanceTypeFragment
    }
    shift {
      ...ShiftFragment
    }
    request {
      ...AttendanceRequestFragment
    }
    cancellation {
      ...AttendanceCancellationFragment
    }
    userActions
    breakDuration
    attendanceDuration
    duration
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "attendance": {
      "id": 4,
      "since": "2007-12-03",
      "till": "2007-12-03",
      "checkedIn": "2007-12-03",
      "checkedOut": "2007-12-03",
      "fundDrawing": 123.45,
      "user": User,
      "attendanceType": "ABSENCE",
      "absenceType": AttendanceType,
      "presenceStatus": "PRESENT",
      "type": AttendanceType,
      "shift": Shift,
      "request": AttendanceRequest,
      "cancellation": AttendanceCancellation,
      "userActions": ["CANCEL"],
      "breakDuration": 123,
      "attendanceDuration": 123,
      "duration": 987
    }
  }
}

attendanceType

Response

Returns an AttendanceType

Arguments
Name Description
id - ID!

Example

Query
query attendanceType($id: ID!) {
  attendanceType(id: $id) {
    id
    icon
    color
    name
    externalId
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "attendanceType": {
      "id": "4",
      "icon": "ABSENCE",
      "color": "xyz789",
      "name": "xyz789",
      "externalId": "xyz789"
    }
  }
}

attendanceTypes

Response

Returns an AttendanceTypesConnection!

Arguments
Name Description
pager - Pager

Example

Query
query attendanceTypes($pager: Pager) {
  attendanceTypes(pager: $pager) {
    edges {
      ...AttendanceTypesConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{"pager": Pager}
Response
{
  "data": {
    "attendanceTypes": {
      "edges": [AttendanceTypesConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

attendances

Response

Returns an AttendancesConnection!

Arguments
Name Description
pager - Pager
filter - AttendanceFilter

Example

Query
query attendances(
  $pager: Pager,
  $filter: AttendanceFilter
) {
  attendances(
    pager: $pager,
    filter: $filter
  ) {
    edges {
      ...AttendancesConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": AttendanceFilter
}
Response
{
  "data": {
    "attendances": {
      "edges": [AttendancesConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

balancingPeriods

Response

Returns a BalancingPeriodsConnection!

Arguments
Name Description
pager - Pager

Example

Query
query balancingPeriods($pager: Pager) {
  balancingPeriods(pager: $pager) {
    edges {
      ...BalancingPeriodsConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{"pager": Pager}
Response
{
  "data": {
    "balancingPeriods": {
      "edges": [BalancingPeriodsConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

content

Response

Returns a Content

Arguments
Name Description
id - String!
options - DeviceInfo

Example

Query
query content(
  $id: String!,
  $options: DeviceInfo
) {
  content(
    id: $id,
    options: $options
  ) {
    id
    title
    components {
      ...ComponentFragment
    }
  }
}
Variables
{
  "id": "abc123",
  "options": DeviceInfo
}
Response
{
  "data": {
    "content": {
      "id": 4,
      "title": "xyz789",
      "components": [Component]
    }
  }
}

fileType

Response

Returns a FileType

Arguments
Name Description
type - FileTypeEnum!

Example

Query
query fileType($type: FileTypeEnum!) {
  fileType(type: $type) {
    type
    maxSize
    maxHeight
    maxWidth
    allowedMimeTypes
    requiredOwningUserId
    requiredOwningOrganizationId
  }
}
Variables
{"type": "PRESENCE_LOG"}
Response
{
  "data": {
    "fileType": {
      "type": "PRESENCE_LOG",
      "maxSize": 123,
      "maxHeight": 987,
      "maxWidth": 987,
      "allowedMimeTypes": ["xyz789"],
      "requiredOwningUserId": true,
      "requiredOwningOrganizationId": true
    }
  }
}

importResult

Response

Returns an ImportResult

Arguments
Name Description
id - ID!

Example

Query
query importResult($id: ID!) {
  importResult(id: $id) {
    status
    imported {
      ...ImportResultImportedFragment
    }
    failed {
      ...ImportResultFailedFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "importResult": {
      "status": "COMPLETED",
      "imported": ImportResultImported,
      "failed": ImportResultFailed
    }
  }
}

me

Response

Returns a User!

Example

Query
query me {
  me {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Response
{
  "data": {
    "me": {
      "id": "4",
      "externalId": "abc123",
      "email": "xyz789",
      "username": "abc123",
      "personalNumber": "xyz789",
      "birthdate": "2007-12-03",
      "birthNumber": "xyz789",
      "passportNumber": "xyz789",
      "identityCardNumber": "abc123",
      "employeeCardNumber": "xyz789",
      "phone": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "title": "xyz789",
      "gender": "MALE",
      "fullName": "xyz789",
      "mainWorkplace": Workplace,
      "rating": 123.45,
      "hasAccount": true,
      "userGroups": [UserGroup],
      "shiftPlanning": UserShiftPlanning,
      "attendance": UserAttendance,
      "roles": [UserRole],
      "attendances": [Attendance],
      "customFieldValues": [UserCustomFieldValue],
      "shifts": [Shift],
      "availabilities": [Availability],
      "note": "xyz789",
      "superior": User,
      "iCals": [UserICal],
      "avatar": File
    }
  }
}

meUsers

Response

Returns [User!]!

Example

Query
query meUsers {
  meUsers {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Response
{
  "data": {
    "meUsers": [
      {
        "id": "4",
        "externalId": "abc123",
        "email": "xyz789",
        "username": "abc123",
        "personalNumber": "xyz789",
        "birthdate": "2007-12-03",
        "birthNumber": "xyz789",
        "passportNumber": "xyz789",
        "identityCardNumber": "xyz789",
        "employeeCardNumber": "xyz789",
        "phone": "xyz789",
        "firstName": "xyz789",
        "lastName": "xyz789",
        "title": "abc123",
        "gender": "MALE",
        "fullName": "xyz789",
        "mainWorkplace": Workplace,
        "rating": 987.65,
        "hasAccount": true,
        "userGroups": [UserGroup],
        "shiftPlanning": UserShiftPlanning,
        "attendance": UserAttendance,
        "roles": [UserRole],
        "attendances": [Attendance],
        "customFieldValues": [UserCustomFieldValue],
        "shifts": [Shift],
        "availabilities": [Availability],
        "note": "xyz789",
        "superior": User,
        "iCals": [UserICal],
        "avatar": File
      }
    ]
  }
}

message

Response

Returns a Message

Arguments
Name Description
id - ID!

Example

Query
query message($id: ID!) {
  message(id: $id) {
    id
    parent {
      ...MessageFragment
    }
    messageThread {
      ...MessageThreadFragment
    }
    body
    createdAt
    createdBy {
      ...UserFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "message": {
      "id": "4",
      "parent": Message,
      "messageThread": MessageThread,
      "body": "abc123",
      "createdAt": "2007-12-03",
      "createdBy": User
    }
  }
}

messageThread

Response

Returns a MessageThread

Arguments
Name Description
id - ID!

Example

Query
query messageThread($id: ID!) {
  messageThread(id: $id) {
    id
    messageThreadType {
      ...MessageThreadTypeFragment
    }
    subject
    firstMessage {
      ...MessageFragment
    }
    lastMessage {
      ...MessageFragment
    }
    createdAt
    createdBy {
      ...UserFragment
    }
    messages {
      ...MessageFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "messageThread": {
      "id": "4",
      "messageThreadType": MessageThreadType,
      "subject": "xyz789",
      "firstMessage": Message,
      "lastMessage": Message,
      "createdAt": "2007-12-03",
      "createdBy": User,
      "messages": [Message]
    }
  }
}

messageThreadParticipants

Arguments
Name Description
filter - MessageThreadParticipantFilter
pager - Pager

Example

Query
query messageThreadParticipants(
  $filter: MessageThreadParticipantFilter,
  $pager: Pager
) {
  messageThreadParticipants(
    filter: $filter,
    pager: $pager
  ) {
    edges {
      ...MessageThreadParticipantsConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "filter": MessageThreadParticipantFilter,
  "pager": Pager
}
Response
{
  "data": {
    "messageThreadParticipants": {
      "edges": [MessageThreadParticipantsConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

messageThreadPrivate

Response

Returns a MessageThread

Arguments
Name Description
peerUserId - ID!

Example

Query
query messageThreadPrivate($peerUserId: ID!) {
  messageThreadPrivate(peerUserId: $peerUserId) {
    id
    messageThreadType {
      ...MessageThreadTypeFragment
    }
    subject
    firstMessage {
      ...MessageFragment
    }
    lastMessage {
      ...MessageFragment
    }
    createdAt
    createdBy {
      ...UserFragment
    }
    messages {
      ...MessageFragment
    }
  }
}
Variables
{"peerUserId": 4}
Response
{
  "data": {
    "messageThreadPrivate": {
      "id": "4",
      "messageThreadType": MessageThreadType,
      "subject": "abc123",
      "firstMessage": Message,
      "lastMessage": Message,
      "createdAt": "2007-12-03",
      "createdBy": User,
      "messages": [Message]
    }
  }
}

messageThreadStats

Response

Returns a MessageThreadStats

Example

Query
query messageThreadStats {
  messageThreadStats {
    unreadCount
    messageThreadCategories {
      ...MessageThreadCategoryStatsFragment
    }
  }
}
Response
{
  "data": {
    "messageThreadStats": {
      "unreadCount": 123,
      "messageThreadCategories": [
        MessageThreadCategoryStats
      ]
    }
  }
}

positions

Response

Returns a PositionsConnection!

Arguments
Name Description
pager - Pager

Example

Query
query positions($pager: Pager) {
  positions(pager: $pager) {
    edges {
      ...PositionsConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{"pager": Pager}
Response
{
  "data": {
    "positions": {
      "edges": [PositionsConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

presenceLogs

Response

Returns a PresenceLogsConnection!

Arguments
Name Description
pager - Pager
filter - PresenceLogsFilter

Example

Query
query presenceLogs(
  $pager: Pager,
  $filter: PresenceLogsFilter
) {
  presenceLogs(
    pager: $pager,
    filter: $filter
  ) {
    edges {
      ...PresenceLogConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": PresenceLogsFilter
}
Response
{
  "data": {
    "presenceLogs": {
      "edges": [PresenceLogConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

productivities

Response

Returns a ProductivitiesConnection!

Arguments
Name Description
pager - Pager
filter - ProductivityFilter
sort - [ProductivitySort]

Example

Query
query productivities(
  $pager: Pager,
  $filter: ProductivityFilter,
  $sort: [ProductivitySort]
) {
  productivities(
    pager: $pager,
    filter: $filter,
    sort: $sort
  ) {
    edges {
      ...ProductivitiesConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": ProductivityFilter,
  "sort": [ProductivitySort]
}
Response
{
  "data": {
    "productivities": {
      "edges": [ProductivitiesConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

scheduledReminders

Response

Returns [ScheduledReminder!]!

Example

Query
query scheduledReminders {
  scheduledReminders {
    id
    header
    body
    url
    notifyAt
    type
  }
}
Response
{
  "data": {
    "scheduledReminders": [
      {
        "id": 4,
        "header": "abc123",
        "body": "xyz789",
        "url": "xyz789",
        "notifyAt": "2007-12-03",
        "type": "SHIFT_REMINDER"
      }
    ]
  }
}

shift

Response

Returns a Shift

Arguments
Name Description
id - ID!

Example

Query
query shift($id: ID!) {
  shift(id: $id) {
    id
    groupHash
    since
    till
    timeLabel
    workplace {
      ...WorkplaceFragment
    }
    position {
      ...PositionFragment
    }
    userGroup {
      ...UserGroupFragment
    }
    shiftTime {
      ...ShiftTimeFragment
    }
    user {
      ...UserFragment
    }
    note
    borrow
    assignment {
      ...ShiftAssignmentFragment
    }
    coworkerShifts {
      ...ShiftFragment
    }
    resourceReservations {
      ...ResourceReservationFragment
    }
    attendances {
      ...AttendanceFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "shift": {
      "id": "4",
      "groupHash": "abc123",
      "since": "2007-12-03",
      "till": "2007-12-03",
      "timeLabel": "abc123",
      "workplace": Workplace,
      "position": Position,
      "userGroup": UserGroup,
      "shiftTime": ShiftTime,
      "user": User,
      "note": "abc123",
      "borrow": true,
      "assignment": ShiftAssignment,
      "coworkerShifts": [Shift],
      "resourceReservations": [ResourceReservation],
      "attendances": [Attendance]
    }
  }
}

shiftFeasibleUsers

Response

Returns a ShiftFeasibleUsersConnection

Arguments
Name Description
filter - ShiftFeasibleUsersFilter
pager - Pager

Example

Query
query shiftFeasibleUsers(
  $filter: ShiftFeasibleUsersFilter,
  $pager: Pager
) {
  shiftFeasibleUsers(
    filter: $filter,
    pager: $pager
  ) {
    edges {
      ...ShiftFeasibleUsersConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "filter": ShiftFeasibleUsersFilter,
  "pager": Pager
}
Response
{
  "data": {
    "shiftFeasibleUsers": {
      "edges": [ShiftFeasibleUsersConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

shiftOfferableUsers

Response

Returns a ShiftOfferableUsersConnection

Arguments
Name Description
filter - ShiftOfferableUsersFilter
pager - Pager

Example

Query
query shiftOfferableUsers(
  $filter: ShiftOfferableUsersFilter,
  $pager: Pager
) {
  shiftOfferableUsers(
    filter: $filter,
    pager: $pager
  ) {
    edges {
      ...ShiftOfferableUsersConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "filter": ShiftOfferableUsersFilter,
  "pager": Pager
}
Response
{
  "data": {
    "shiftOfferableUsers": {
      "edges": [ShiftOfferableUsersConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

shiftPlanningStats

Response

Returns [ShiftPlanningStats]

Arguments
Name Description
filter - ShiftPlanningStatsFilter!

Example

Query
query shiftPlanningStats($filter: ShiftPlanningStatsFilter!) {
  shiftPlanningStats(filter: $filter) {
    workplace {
      ...WorkplaceFragment
    }
    date
    shiftAssignmentRequest
    unoccupied
    occupied
  }
}
Variables
{"filter": ShiftPlanningStatsFilter}
Response
{
  "data": {
    "shiftPlanningStats": [
      {
        "workplace": Workplace,
        "date": "2007-12-03",
        "shiftAssignmentRequest": 123,
        "unoccupied": 123,
        "occupied": 123
      }
    ]
  }
}

shiftTimes

Response

Returns a ShiftTimesConnection!

Arguments
Name Description
pager - Pager

Example

Query
query shiftTimes($pager: Pager) {
  shiftTimes(pager: $pager) {
    edges {
      ...ShiftTimesConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{"pager": Pager}
Response
{
  "data": {
    "shiftTimes": {
      "edges": [ShiftTimesConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

shifts

Response

Returns a ShiftsConnection!

Arguments
Name Description
pager - Pager
filter - ShiftFilter
sort - [ShiftSort]

Example

Query
query shifts(
  $pager: Pager,
  $filter: ShiftFilter,
  $sort: [ShiftSort]
) {
  shifts(
    pager: $pager,
    filter: $filter,
    sort: $sort
  ) {
    edges {
      ...ShiftsConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": ShiftFilter,
  "sort": [ShiftSort]
}
Response
{
  "data": {
    "shifts": {
      "edges": [ShiftsConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

status

Response

Returns a Status!

Example

Query
query status {
  status {
    apiStatus
  }
}
Response
{"data": {"status": {"apiStatus": "OK"}}}

timeClock

Response

Returns a TimeClock

Arguments
Name Description
id - ID!

Example

Query
query timeClock($id: ID!) {
  timeClock(id: $id) {
    id
    name
    mode
    showInput
    authorization {
      ...TimeClockAuthorizationFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "timeClock": {
      "id": 4,
      "name": "abc123",
      "mode": "INTERACTIVE",
      "showInput": false,
      "authorization": TimeClockAuthorization
    }
  }
}

user

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
query user($id: ID!) {
  user(id: $id) {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "user": {
      "id": "4",
      "externalId": "xyz789",
      "email": "abc123",
      "username": "xyz789",
      "personalNumber": "abc123",
      "birthdate": "2007-12-03",
      "birthNumber": "abc123",
      "passportNumber": "xyz789",
      "identityCardNumber": "abc123",
      "employeeCardNumber": "abc123",
      "phone": "xyz789",
      "firstName": "xyz789",
      "lastName": "abc123",
      "title": "abc123",
      "gender": "MALE",
      "fullName": "xyz789",
      "mainWorkplace": Workplace,
      "rating": 987.65,
      "hasAccount": false,
      "userGroups": [UserGroup],
      "shiftPlanning": UserShiftPlanning,
      "attendance": UserAttendance,
      "roles": [UserRole],
      "attendances": [Attendance],
      "customFieldValues": [UserCustomFieldValue],
      "shifts": [Shift],
      "availabilities": [Availability],
      "note": "abc123",
      "superior": User,
      "iCals": [UserICal],
      "avatar": File
    }
  }
}

userByPersonalNumber

Response

Returns a User

Arguments
Name Description
personalNumber - String!

Example

Query
query userByPersonalNumber($personalNumber: String!) {
  userByPersonalNumber(personalNumber: $personalNumber) {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Variables
{"personalNumber": "abc123"}
Response
{
  "data": {
    "userByPersonalNumber": {
      "id": "4",
      "externalId": "xyz789",
      "email": "xyz789",
      "username": "abc123",
      "personalNumber": "xyz789",
      "birthdate": "2007-12-03",
      "birthNumber": "abc123",
      "passportNumber": "abc123",
      "identityCardNumber": "xyz789",
      "employeeCardNumber": "xyz789",
      "phone": "xyz789",
      "firstName": "xyz789",
      "lastName": "abc123",
      "title": "xyz789",
      "gender": "MALE",
      "fullName": "xyz789",
      "mainWorkplace": Workplace,
      "rating": 123.45,
      "hasAccount": false,
      "userGroups": [UserGroup],
      "shiftPlanning": UserShiftPlanning,
      "attendance": UserAttendance,
      "roles": [UserRole],
      "attendances": [Attendance],
      "customFieldValues": [UserCustomFieldValue],
      "shifts": [Shift],
      "availabilities": [Availability],
      "note": "xyz789",
      "superior": User,
      "iCals": [UserICal],
      "avatar": File
    }
  }
}

userGroups

Response

Returns a UserGroupsConnection!

Arguments
Name Description
pager - Pager

Example

Query
query userGroups($pager: Pager) {
  userGroups(pager: $pager) {
    edges {
      ...UserGroupsConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{"pager": Pager}
Response
{
  "data": {
    "userGroups": {
      "edges": [UserGroupsConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

users

Response

Returns a UsersConnection!

Arguments
Name Description
pager - Pager!
filter - UsersFilter
sort - [UserSort]

Example

Query
query users(
  $pager: Pager!,
  $filter: UsersFilter,
  $sort: [UserSort]
) {
  users(
    pager: $pager,
    filter: $filter,
    sort: $sort
  ) {
    edges {
      ...UsersConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": UsersFilter,
  "sort": [UserSort]
}
Response
{
  "data": {
    "users": {
      "edges": [UsersConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

workplace

Response

Returns a Workplace

Arguments
Name Description
id - ID!

Example

Query
query workplace($id: ID!) {
  workplace(id: $id) {
    id
    externalId
    parent {
      ...WorkplaceFragment
    }
    name
    fullName
    uniqueName
    color
    tags
    rank
    treeRank
    hasDescendants
    shiftPlanning {
      ...WorkplaceShiftPlanningFragment
    }
    customFieldValues {
      ...WorkplaceCustomFieldValueFragment
    }
    address {
      ...AddressFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "workplace": {
      "id": "4",
      "externalId": "abc123",
      "parent": Workplace,
      "name": "xyz789",
      "fullName": "abc123",
      "uniqueName": "xyz789",
      "color": "xyz789",
      "tags": ["xyz789"],
      "rank": 123.45,
      "treeRank": 123.45,
      "hasDescendants": false,
      "shiftPlanning": WorkplaceShiftPlanning,
      "customFieldValues": [WorkplaceCustomFieldValue],
      "address": Address
    }
  }
}

workplaces

Response

Returns a WorkplacesConnection!

Arguments
Name Description
pager - Pager
filter - WorkplacesFilter

Example

Query
query workplaces(
  $pager: Pager,
  $filter: WorkplacesFilter
) {
  workplaces(
    pager: $pager,
    filter: $filter
  ) {
    edges {
      ...WorkplacesConnectionEdgeFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "pager": Pager,
  "filter": WorkplacesFilter
}
Response
{
  "data": {
    "workplaces": {
      "edges": [WorkplacesConnectionEdge],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

Mutations

absenceRequestAvailability

Response

Returns an AbsenceRequestAvailabilityPayload

Arguments
Name Description
input - AbsenceRequestAvailabilityInput!

Example

Query
mutation absenceRequestAvailability($input: AbsenceRequestAvailabilityInput!) {
  absenceRequestAvailability(input: $input) {
    enabled
    message
  }
}
Variables
{"input": AbsenceRequestAvailabilityInput}
Response
{
  "data": {
    "absenceRequestAvailability": {
      "enabled": true,
      "message": "abc123"
    }
  }
}

absenceTypesImport

Response

Returns an AbsenceTypesImportPayload!

Arguments
Name Description
input - AbsenceTypesImportInput!

Example

Query
mutation absenceTypesImport($input: AbsenceTypesImportInput!) {
  absenceTypesImport(input: $input) {
    imported {
      ...AbsenceTypeImportSuccessPayloadFragment
    }
    failed {
      ...AbsenceTypeImportErrorPayloadFragment
    }
  }
}
Variables
{"input": AbsenceTypesImportInput}
Response
{
  "data": {
    "absenceTypesImport": {
      "imported": [AbsenceTypeImportSuccessPayload],
      "failed": [AbsenceTypeImportErrorPayload]
    }
  }
}

approvalRequestApprove

Response

Returns a Void

Arguments
Name Description
input - ApprovalRequestApproveInput!

Example

Query
mutation approvalRequestApprove($input: ApprovalRequestApproveInput!) {
  approvalRequestApprove(input: $input)
}
Variables
{"input": ApprovalRequestApproveInput}
Response
{"data": {"approvalRequestApprove": null}}

approvalRequestReject

Response

Returns a Void

Arguments
Name Description
input - ApprovalRequestRejectInput!

Example

Query
mutation approvalRequestReject($input: ApprovalRequestRejectInput!) {
  approvalRequestReject(input: $input)
}
Variables
{"input": ApprovalRequestRejectInput}
Response
{"data": {"approvalRequestReject": null}}

attendanceCancellationConfirm

Arguments
Name Description
input - AttendanceCancellationConfirmInput!

Example

Query
mutation attendanceCancellationConfirm($input: AttendanceCancellationConfirmInput!) {
  attendanceCancellationConfirm(input: $input) {
    id
  }
}
Variables
{"input": AttendanceCancellationConfirmInput}
Response
{
  "data": {
    "attendanceCancellationConfirm": {
      "id": "4"
    }
  }
}

attendanceCancellationReject

Arguments
Name Description
input - AttendanceCancellationRejectInput!

Example

Query
mutation attendanceCancellationReject($input: AttendanceCancellationRejectInput!) {
  attendanceCancellationReject(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceCancellationRejectInput}
Response
{
  "data": {
    "attendanceCancellationReject": {
      "attendance": Attendance
    }
  }
}

attendanceCancellationRequest

Arguments
Name Description
input - AttendanceCancellationRequestInput!

Example

Query
mutation attendanceCancellationRequest($input: AttendanceCancellationRequestInput!) {
  attendanceCancellationRequest(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceCancellationRequestInput}
Response
{
  "data": {
    "attendanceCancellationRequest": {
      "attendance": Attendance
    }
  }
}

attendanceCancellationRequestCancellation

Example

Query
mutation attendanceCancellationRequestCancellation($input: AttendanceCancellationRequestCancellationInput!) {
  attendanceCancellationRequestCancellation(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceCancellationRequestCancellationInput}
Response
{
  "data": {
    "attendanceCancellationRequestCancellation": {
      "attendance": Attendance
    }
  }
}

attendanceCreate

Response

Returns an AttendanceCreatePayload!

Arguments
Name Description
input - AttendanceCreateInput!

Example

Query
mutation attendanceCreate($input: AttendanceCreateInput!) {
  attendanceCreate(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceCreateInput}
Response
{"data": {"attendanceCreate": {"attendance": Attendance}}}

attendanceDelete

Response

Returns an AttendanceDeletePayload!

Arguments
Name Description
input - AttendanceDeleteInput!

Example

Query
mutation attendanceDelete($input: AttendanceDeleteInput!) {
  attendanceDelete(input: $input) {
    id
  }
}
Variables
{"input": AttendanceDeleteInput}
Response
{"data": {"attendanceDelete": {"id": 4}}}

attendanceRequest

Response

Returns an AttendanceRequestPayload!

Arguments
Name Description
input - AttendanceRequestInput!

Example

Query
mutation attendanceRequest($input: AttendanceRequestInput!) {
  attendanceRequest(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceRequestInput}
Response
{
  "data": {
    "attendanceRequest": {"attendance": Attendance}
  }
}

attendanceRequestCancellation

Arguments
Name Description
input - AttendanceRequestCancellationInput!

Example

Query
mutation attendanceRequestCancellation($input: AttendanceRequestCancellationInput!) {
  attendanceRequestCancellation(input: $input) {
    id
  }
}
Variables
{"input": AttendanceRequestCancellationInput}
Response
{"data": {"attendanceRequestCancellation": {"id": 4}}}

attendanceRequestConfirm

Response

Returns an AttendanceRequestConfirmPayload

Arguments
Name Description
input - AttendanceRequestConfirmInput!

Example

Query
mutation attendanceRequestConfirm($input: AttendanceRequestConfirmInput!) {
  attendanceRequestConfirm(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceRequestConfirmInput}
Response
{
  "data": {
    "attendanceRequestConfirm": {"attendance": Attendance}
  }
}

attendanceRequestReject

Response

Returns an AttendanceRequestRejectPayload

Arguments
Name Description
input - AttendanceRequestRejectInput!

Example

Query
mutation attendanceRequestReject($input: AttendanceRequestRejectInput!) {
  attendanceRequestReject(input: $input) {
    id
  }
}
Variables
{"input": AttendanceRequestRejectInput}
Response
{"data": {"attendanceRequestReject": {"id": 4}}}

attendanceUpdate

Response

Returns an AttendanceUpdatePayload!

Arguments
Name Description
input - AttendanceUpdateInput!

Example

Query
mutation attendanceUpdate($input: AttendanceUpdateInput!) {
  attendanceUpdate(input: $input) {
    attendance {
      ...AttendanceFragment
    }
  }
}
Variables
{"input": AttendanceUpdateInput}
Response
{"data": {"attendanceUpdate": {"attendance": Attendance}}}

availabilityCreate

Response

Returns an AvailabilityCreatePayload!

Arguments
Name Description
input - AvailabilityCreateInput!

Example

Query
mutation availabilityCreate($input: AvailabilityCreateInput!) {
  availabilityCreate(input: $input) {
    availability {
      ...AvailabilityFragment
    }
  }
}
Variables
{"input": AvailabilityCreateInput}
Response
{
  "data": {
    "availabilityCreate": {"availability": Availability}
  }
}

availabilityDelete

Response

Returns an AvailabilityDeletePayload!

Arguments
Name Description
input - AvailabilityDeleteInput!

Example

Query
mutation availabilityDelete($input: AvailabilityDeleteInput!) {
  availabilityDelete(input: $input) {
    id
  }
}
Variables
{"input": AvailabilityDeleteInput}
Response
{
  "data": {
    "availabilityDelete": {"id": "4"}
  }
}

availabilityUpdate

Response

Returns an AvailabilityUpdatePayload!

Arguments
Name Description
input - AvailabilityUpdateInput!

Example

Query
mutation availabilityUpdate($input: AvailabilityUpdateInput!) {
  availabilityUpdate(input: $input) {
    availability {
      ...AvailabilityFragment
    }
  }
}
Variables
{"input": AvailabilityUpdateInput}
Response
{
  "data": {
    "availabilityUpdate": {"availability": Availability}
  }
}

dispatch

Description

JWT-driven entry point; the signed token selects the operation and its parameters. See DispatchInput for the full interface (actions: login, presence-start, presence-end).

Response

Returns a DispatchPayload

Arguments
Name Description
input - DispatchInput!

Example

Query
mutation dispatch($input: DispatchInput!) {
  dispatch(input: $input) {
    action
    data {
      ...keyValueFragment
    }
  }
}
Variables
{"input": DispatchInput}
Response
{
  "data": {
    "dispatch": {
      "action": "abc123",
      "data": [keyValue]
    }
  }
}

meUpdate

Response

Returns a MeUpdatePayload!

Arguments
Name Description
input - MeUpdateInput!

Example

Query
mutation meUpdate($input: MeUpdateInput!) {
  meUpdate(input: $input) {
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": MeUpdateInput}
Response
{"data": {"meUpdate": {"user": User}}}

messageAdd

Response

Returns a MessageAddPayload!

Arguments
Name Description
input - MessageAddInput!

Example

Query
mutation messageAdd($input: MessageAddInput!) {
  messageAdd(input: $input) {
    message {
      ...MessageFragment
    }
  }
}
Variables
{"input": MessageAddInput}
Response
{"data": {"messageAdd": {"message": Message}}}

messageRead

Response

Returns a Void

Arguments
Name Description
input - MessageReadInput!

Example

Query
mutation messageRead($input: MessageReadInput!) {
  messageRead(input: $input)
}
Variables
{"input": MessageReadInput}
Response
{"data": {"messageRead": null}}

messageThreadCreate

Response

Returns a MessageThreadCreatePayload!

Arguments
Name Description
input - MessageThreadCreateInput!

Example

Query
mutation messageThreadCreate($input: MessageThreadCreateInput!) {
  messageThreadCreate(input: $input) {
    messageThread {
      ...MessageThreadFragment
    }
  }
}
Variables
{"input": MessageThreadCreateInput}
Response
{
  "data": {
    "messageThreadCreate": {
      "messageThread": MessageThread
    }
  }
}

messageThreadsRead

Response

Returns a Void

Arguments
Name Description
input - MessageThreadsReadInput!

Example

Query
mutation messageThreadsRead($input: MessageThreadsReadInput!) {
  messageThreadsRead(input: $input)
}
Variables
{"input": MessageThreadsReadInput}
Response
{"data": {"messageThreadsRead": null}}

positionCreate

Response

Returns a PositionCreatePayload!

Arguments
Name Description
input - PositionCreateInput!

Example

Query
mutation positionCreate($input: PositionCreateInput!) {
  positionCreate(input: $input) {
    position {
      ...PositionFragment
    }
  }
}
Variables
{"input": PositionCreateInput}
Response
{"data": {"positionCreate": {"position": Position}}}

positionDelete

Response

Returns a PositionDeletePayload!

Arguments
Name Description
input - PositionDeleteInput!

Example

Query
mutation positionDelete($input: PositionDeleteInput!) {
  positionDelete(input: $input) {
    id
  }
}
Variables
{"input": PositionDeleteInput}
Response
{"data": {"positionDelete": {"id": 4}}}

positionUpdate

Response

Returns a PositionUpdatePayload!

Arguments
Name Description
input - PositionUpdateInput!

Example

Query
mutation positionUpdate($input: PositionUpdateInput!) {
  positionUpdate(input: $input) {
    position {
      ...PositionFragment
    }
  }
}
Variables
{"input": PositionUpdateInput}
Response
{"data": {"positionUpdate": {"position": Position}}}

presenceEnd

Response

Returns a PresenceEndPayload!

Arguments
Name Description
input - PresenceEndInput!

Example

Query
mutation presenceEnd($input: PresenceEndInput!) {
  presenceEnd(input: $input) {
    ended
    message
  }
}
Variables
{"input": PresenceEndInput}
Response
{
  "data": {
    "presenceEnd": {
      "ended": false,
      "message": "xyz789"
    }
  }
}

presenceLogCreate

Response

Returns a PresenceLogCreatePayload!

Arguments
Name Description
input - PresenceLogCreateInput!

Example

Query
mutation presenceLogCreate($input: PresenceLogCreateInput!) {
  presenceLogCreate(input: $input) {
    presenceLog {
      ...PresenceLogFragment
    }
  }
}
Variables
{"input": PresenceLogCreateInput}
Response
{
  "data": {
    "presenceLogCreate": {"presenceLog": PresenceLog}
  }
}

presenceLogDelete

Response

Returns a Void

Arguments
Name Description
input - PresenceLogDeleteInput!

Example

Query
mutation presenceLogDelete($input: PresenceLogDeleteInput!) {
  presenceLogDelete(input: $input)
}
Variables
{"input": PresenceLogDeleteInput}
Response
{"data": {"presenceLogDelete": null}}

presenceStart

Response

Returns a PresenceStartPayload!

Arguments
Name Description
input - PresenceStartInput

Example

Query
mutation presenceStart($input: PresenceStartInput) {
  presenceStart(input: $input) {
    started
    message
  }
}
Variables
{"input": PresenceStartInput}
Response
{
  "data": {
    "presenceStart": {
      "started": false,
      "message": "xyz789"
    }
  }
}

shiftAssignmentCancellationConfirm

Arguments
Name Description
input - ShiftAssignmentCancellationConfirmInput!

Example

Query
mutation shiftAssignmentCancellationConfirm($input: ShiftAssignmentCancellationConfirmInput!) {
  shiftAssignmentCancellationConfirm(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentCancellationConfirmInput}
Response
{
  "data": {
    "shiftAssignmentCancellationConfirm": {"shift": Shift}
  }
}

shiftAssignmentCancellationReject

Arguments
Name Description
input - ShiftAssignmentCancellationRejectInput!

Example

Query
mutation shiftAssignmentCancellationReject($input: ShiftAssignmentCancellationRejectInput!) {
  shiftAssignmentCancellationReject(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentCancellationRejectInput}
Response
{
  "data": {
    "shiftAssignmentCancellationReject": {"shift": Shift}
  }
}

shiftAssignmentCancellationRequest

Description

Request shift assignment cancellation

Arguments
Name Description
input - ShiftAssignmentCancellationRequestInput!

Example

Query
mutation shiftAssignmentCancellationRequest($input: ShiftAssignmentCancellationRequestInput!) {
  shiftAssignmentCancellationRequest(input: $input) {
    id
  }
}
Variables
{"input": ShiftAssignmentCancellationRequestInput}
Response
{"data": {"shiftAssignmentCancellationRequest": {"id": 4}}}

shiftAssignmentCancellationRequestCancellation

Description

Cancel shift assignment cancellation request

Example

Query
mutation shiftAssignmentCancellationRequestCancellation($input: ShiftAssignmentCancellationRequestCancellationInput!) {
  shiftAssignmentCancellationRequestCancellation(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{
  "input": ShiftAssignmentCancellationRequestCancellationInput
}
Response
{
  "data": {
    "shiftAssignmentCancellationRequestCancellation": {
      "shift": Shift
    }
  }
}

shiftAssignmentConfirm

Response

Returns a ShiftAssignmentConfirmPayload

Arguments
Name Description
input - ShiftAssignmentConfirmInput!

Example

Query
mutation shiftAssignmentConfirm($input: ShiftAssignmentConfirmInput!) {
  shiftAssignmentConfirm(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentConfirmInput}
Response
{"data": {"shiftAssignmentConfirm": {"shift": Shift}}}

shiftAssignmentOfferAccept

Description

Accept shift assignment offer

Arguments
Name Description
input - ShiftAssignmentOfferAcceptInput!

Example

Query
mutation shiftAssignmentOfferAccept($input: ShiftAssignmentOfferAcceptInput!) {
  shiftAssignmentOfferAccept(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentOfferAcceptInput}
Response
{"data": {"shiftAssignmentOfferAccept": {"shift": Shift}}}

shiftAssignmentOfferConfirm

Description

Confirm shift assignment offer

Arguments
Name Description
input - ShiftAssignmentOfferConfirmInput!

Example

Query
mutation shiftAssignmentOfferConfirm($input: ShiftAssignmentOfferConfirmInput!) {
  shiftAssignmentOfferConfirm(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentOfferConfirmInput}
Response
{
  "data": {
    "shiftAssignmentOfferConfirm": {"shift": Shift}
  }
}

shiftAssignmentOfferDecline

Description

Decline shift assignment offer

Arguments
Name Description
input - ShiftAssignmentOfferDeclineInput!

Example

Query
mutation shiftAssignmentOfferDecline($input: ShiftAssignmentOfferDeclineInput!) {
  shiftAssignmentOfferDecline(input: $input) {
    id
  }
}
Variables
{"input": ShiftAssignmentOfferDeclineInput}
Response
{
  "data": {
    "shiftAssignmentOfferDecline": {
      "id": "4"
    }
  }
}

shiftAssignmentOfferReject

Description

Reject shift assignment offer

Arguments
Name Description
input - ShiftAssignmentOfferRejectInput!

Example

Query
mutation shiftAssignmentOfferReject($input: ShiftAssignmentOfferRejectInput!) {
  shiftAssignmentOfferReject(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentOfferRejectInput}
Response
{"data": {"shiftAssignmentOfferReject": {"shift": Shift}}}

shiftAssignmentOfferRequest

Description

Request shift assignment offer

Arguments
Name Description
input - ShiftAssignmentOfferRequestInput!

Example

Query
mutation shiftAssignmentOfferRequest($input: ShiftAssignmentOfferRequestInput!) {
  shiftAssignmentOfferRequest(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentOfferRequestInput}
Response
{
  "data": {
    "shiftAssignmentOfferRequest": {"shift": Shift}
  }
}

shiftAssignmentOfferRequestCancellation

Description

Cancel shift assignment offer request

Example

Query
mutation shiftAssignmentOfferRequestCancellation($input: ShiftAssignmentOfferRequestCancellationInput!) {
  shiftAssignmentOfferRequestCancellation(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentOfferRequestCancellationInput}
Response
{
  "data": {
    "shiftAssignmentOfferRequestCancellation": {
      "shift": Shift
    }
  }
}

shiftAssignmentReject

Response

Returns a ShiftAssignmentRejectPayload

Arguments
Name Description
input - ShiftAssignmentRejectInput!

Example

Query
mutation shiftAssignmentReject($input: ShiftAssignmentRejectInput!) {
  shiftAssignmentReject(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentRejectInput}
Response
{"data": {"shiftAssignmentReject": {"shift": Shift}}}

shiftAssignmentRequest

Description

Request shift assignment

Response

Returns a ShiftAssignmentRequestPayload!

Arguments
Name Description
input - ShiftAssignmentRequestInput!

Example

Query
mutation shiftAssignmentRequest($input: ShiftAssignmentRequestInput!) {
  shiftAssignmentRequest(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftAssignmentRequestInput}
Response
{"data": {"shiftAssignmentRequest": {"shift": Shift}}}

shiftAssignmentRequestCancellation

Description

Cancel shift assignment request

Arguments
Name Description
input - ShiftAssignmentRequestCancellationInput!

Example

Query
mutation shiftAssignmentRequestCancellation($input: ShiftAssignmentRequestCancellationInput!) {
  shiftAssignmentRequestCancellation(input: $input) {
    id
  }
}
Variables
{"input": ShiftAssignmentRequestCancellationInput}
Response
{"data": {"shiftAssignmentRequestCancellation": {"id": 4}}}

shiftBatchChange

Response

Returns a ShiftBatchChangePayload!

Arguments
Name Description
input - ShiftBatchChangeInput!

Example

Query
mutation shiftBatchChange($input: ShiftBatchChangeInput!) {
  shiftBatchChange(input: $input) {
    created {
      ...ShiftBatchCreatePayloadFragment
    }
    updated {
      ...ShiftBatchUpdatePayloadFragment
    }
    deleted {
      ...ShiftBatchDeletePayloadFragment
    }
  }
}
Variables
{"input": ShiftBatchChangeInput}
Response
{
  "data": {
    "shiftBatchChange": {
      "created": ShiftBatchCreatePayload,
      "updated": ShiftBatchUpdatePayload,
      "deleted": ShiftBatchDeletePayload
    }
  }
}

shiftCreate

Response

Returns a ShiftCreatePayload!

Arguments
Name Description
input - ShiftCreateInput!

Example

Query
mutation shiftCreate($input: ShiftCreateInput!) {
  shiftCreate(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftCreateInput}
Response
{"data": {"shiftCreate": {"shift": Shift}}}

shiftDelete

Response

Returns a ShiftDeletePayload!

Arguments
Name Description
input - ShiftDeleteInput!

Example

Query
mutation shiftDelete($input: ShiftDeleteInput!) {
  shiftDelete(input: $input) {
    id
  }
}
Variables
{"input": ShiftDeleteInput}
Response
{"data": {"shiftDelete": {"id": 4}}}

shiftTimeCreate

Response

Returns a ShiftTimeCreatePayload!

Arguments
Name Description
input - ShiftTimeCreateInput!

Example

Query
mutation shiftTimeCreate($input: ShiftTimeCreateInput!) {
  shiftTimeCreate(input: $input) {
    shiftTime {
      ...ShiftTimeFragment
    }
  }
}
Variables
{"input": ShiftTimeCreateInput}
Response
{"data": {"shiftTimeCreate": {"shiftTime": ShiftTime}}}

shiftTimeDelete

Response

Returns a ShiftTimeDeletePayload!

Arguments
Name Description
input - ShiftTimeDeleteInput!

Example

Query
mutation shiftTimeDelete($input: ShiftTimeDeleteInput!) {
  shiftTimeDelete(input: $input) {
    id
  }
}
Variables
{"input": ShiftTimeDeleteInput}
Response
{"data": {"shiftTimeDelete": {"id": 4}}}

shiftTimeUpdate

Response

Returns a ShiftTimeUpdatePayload!

Arguments
Name Description
input - ShiftTimeUpdateInput!

Example

Query
mutation shiftTimeUpdate($input: ShiftTimeUpdateInput!) {
  shiftTimeUpdate(input: $input) {
    shiftTime {
      ...ShiftTimeFragment
    }
  }
}
Variables
{"input": ShiftTimeUpdateInput}
Response
{"data": {"shiftTimeUpdate": {"shiftTime": ShiftTime}}}

shiftTimesImport

Response

Returns a ShiftTimesImportPayload!

Arguments
Name Description
input - ShiftTimesImportInput!

Example

Query
mutation shiftTimesImport($input: ShiftTimesImportInput!) {
  shiftTimesImport(input: $input) {
    imported {
      ...ShiftTimeImportSuccessPayloadFragment
    }
    failed {
      ...ShiftTimeImportErrorPayloadFragment
    }
  }
}
Variables
{"input": ShiftTimesImportInput}
Response
{
  "data": {
    "shiftTimesImport": {
      "imported": [ShiftTimeImportSuccessPayload],
      "failed": [ShiftTimeImportErrorPayload]
    }
  }
}

shiftUpdate

Response

Returns a ShiftUpdatePayload!

Arguments
Name Description
input - ShiftUpdateInput!

Example

Query
mutation shiftUpdate($input: ShiftUpdateInput!) {
  shiftUpdate(input: $input) {
    shift {
      ...ShiftFragment
    }
  }
}
Variables
{"input": ShiftUpdateInput}
Response
{"data": {"shiftUpdate": {"shift": Shift}}}

timeClockLogin

Response

Returns a TimeClockLoginPayload!

Arguments
Name Description
input - TimeClockLoginInput!

Example

Query
mutation timeClockLogin($input: TimeClockLoginInput!) {
  timeClockLogin(input: $input) {
    timeClock {
      ...TimeClockFragment
    }
    token
  }
}
Variables
{"input": TimeClockLoginInput}
Response
{
  "data": {
    "timeClockLogin": {
      "timeClock": TimeClock,
      "token": "xyz789"
    }
  }
}

timeClockPassThrough

Response

Returns a TimeClockPassThroughPayload!

Arguments
Name Description
input - TimeClockPassThroughInput!

Example

Query
mutation timeClockPassThrough($input: TimeClockPassThroughInput!) {
  timeClockPassThrough(input: $input) {
    type
    checked
    message
  }
}
Variables
{"input": TimeClockPassThroughInput}
Response
{
  "data": {
    "timeClockPassThrough": {
      "type": "CHECKED_IN",
      "checked": false,
      "message": "xyz789"
    }
  }
}

timeClockPassThroughsImport

Arguments
Name Description
input - TimeClockPassThroughsImportInput!

Example

Query
mutation timeClockPassThroughsImport($input: TimeClockPassThroughsImportInput!) {
  timeClockPassThroughsImport(input: $input) {
    importId
  }
}
Variables
{"input": TimeClockPassThroughsImportInput}
Response
{"data": {"timeClockPassThroughsImport": {"importId": 4}}}

timeClockStatus

Response

Returns a TimeClockStatusPayload!

Arguments
Name Description
input - TimeClockStatusInput!

Example

Query
mutation timeClockStatus($input: TimeClockStatusInput!) {
  timeClockStatus(input: $input) {
    id
  }
}
Variables
{"input": TimeClockStatusInput}
Response
{"data": {"timeClockStatus": {"id": "4"}}}

timeClockUserOneTimeLogin

Arguments
Name Description
input - TimeClockUserOneTimeLoginInput!

Example

Query
mutation timeClockUserOneTimeLogin($input: TimeClockUserOneTimeLoginInput!) {
  timeClockUserOneTimeLogin(input: $input) {
    redirectUrl
    errorMessage
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": TimeClockUserOneTimeLoginInput}
Response
{
  "data": {
    "timeClockUserOneTimeLogin": {
      "redirectUrl": "xyz789",
      "errorMessage": "abc123",
      "user": User
    }
  }
}

userAddPositions

Response

Returns a User

Arguments
Name Description
userId - ID!
positionIds - [ID!]!

Example

Query
mutation userAddPositions(
  $userId: ID!,
  $positionIds: [ID!]!
) {
  userAddPositions(
    userId: $userId,
    positionIds: $positionIds
  ) {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Variables
{"userId": 4, "positionIds": ["4"]}
Response
{
  "data": {
    "userAddPositions": {
      "id": 4,
      "externalId": "xyz789",
      "email": "xyz789",
      "username": "abc123",
      "personalNumber": "abc123",
      "birthdate": "2007-12-03",
      "birthNumber": "abc123",
      "passportNumber": "xyz789",
      "identityCardNumber": "abc123",
      "employeeCardNumber": "xyz789",
      "phone": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "title": "xyz789",
      "gender": "MALE",
      "fullName": "xyz789",
      "mainWorkplace": Workplace,
      "rating": 987.65,
      "hasAccount": false,
      "userGroups": [UserGroup],
      "shiftPlanning": UserShiftPlanning,
      "attendance": UserAttendance,
      "roles": [UserRole],
      "attendances": [Attendance],
      "customFieldValues": [UserCustomFieldValue],
      "shifts": [Shift],
      "availabilities": [Availability],
      "note": "xyz789",
      "superior": User,
      "iCals": [UserICal],
      "avatar": File
    }
  }
}

userAddWorkplaces

Response

Returns a UserAddWorkplacesPayload

Arguments
Name Description
input - UserAddWorkplacesInput!

Example

Query
mutation userAddWorkplaces($input: UserAddWorkplacesInput!) {
  userAddWorkplaces(input: $input) {
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": UserAddWorkplacesInput}
Response
{"data": {"userAddWorkplaces": {"user": User}}}

userAssignPushToken

Response

Returns a Void

Arguments
Name Description
input - UserAssignPushTokenInput!

Example

Query
mutation userAssignPushToken($input: UserAssignPushTokenInput!) {
  userAssignPushToken(input: $input)
}
Variables
{"input": UserAssignPushTokenInput}
Response
{"data": {"userAssignPushToken": null}}

userAvatarRemove

Response

Returns a UserAvatarRemovePayload!

Arguments
Name Description
input - UserAvatarRemoveInput!

Example

Query
mutation userAvatarRemove($input: UserAvatarRemoveInput!) {
  userAvatarRemove(input: $input) {
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": UserAvatarRemoveInput}
Response
{"data": {"userAvatarRemove": {"user": User}}}

userAvatarSet

Response

Returns a UserAvatarSetPayload!

Arguments
Name Description
input - UserAvatarSetInput!

Example

Query
mutation userAvatarSet($input: UserAvatarSetInput!) {
  userAvatarSet(input: $input) {
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": UserAvatarSetInput}
Response
{"data": {"userAvatarSet": {"user": User}}}

userCreate

Response

Returns a UserCreatePayload!

Arguments
Name Description
input - UserCreateInput!

Example

Query
mutation userCreate($input: UserCreateInput!) {
  userCreate(input: $input) {
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": UserCreateInput}
Response
{"data": {"userCreate": {"user": User}}}

userDelete

Response

Returns a UserDeletePayload!

Arguments
Name Description
input - UserDeleteInput!

Example

Query
mutation userDelete($input: UserDeleteInput!) {
  userDelete(input: $input) {
    id
  }
}
Variables
{"input": UserDeleteInput}
Response
{"data": {"userDelete": {"id": 4}}}

userEnroll

Response

Returns a UserEnrollPayload!

Arguments
Name Description
input - UserEnrollInput!

Example

Query
mutation userEnroll($input: UserEnrollInput!) {
  userEnroll(input: $input) {
    user {
      ...UserFragment
    }
    token
  }
}
Variables
{"input": UserEnrollInput}
Response
{
  "data": {
    "userEnroll": {
      "user": User,
      "token": "abc123"
    }
  }
}

userInvite

Response

Returns a Void

Arguments
Name Description
input - UserInviteInput!

Example

Query
mutation userInvite($input: UserInviteInput!) {
  userInvite(input: $input)
}
Variables
{"input": UserInviteInput}
Response
{"data": {"userInvite": null}}

userPasswordReset

Response

Returns a Void

Arguments
Name Description
input - UserPasswordResetInput!

Example

Query
mutation userPasswordReset($input: UserPasswordResetInput!) {
  userPasswordReset(input: $input)
}
Variables
{"input": UserPasswordResetInput}
Response
{"data": {"userPasswordReset": null}}

userPasswordResetRequest

Response

Returns a Void

Arguments
Name Description
input - UserPasswordResetRequestInput!

Example

Query
mutation userPasswordResetRequest($input: UserPasswordResetRequestInput!) {
  userPasswordResetRequest(input: $input)
}
Variables
{"input": UserPasswordResetRequestInput}
Response
{"data": {"userPasswordResetRequest": null}}

userRemovePositions

Response

Returns a User

Arguments
Name Description
userId - ID!
positionIds - [ID!]!

Example

Query
mutation userRemovePositions(
  $userId: ID!,
  $positionIds: [ID!]!
) {
  userRemovePositions(
    userId: $userId,
    positionIds: $positionIds
  ) {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Variables
{"userId": "4", "positionIds": [4]}
Response
{
  "data": {
    "userRemovePositions": {
      "id": "4",
      "externalId": "abc123",
      "email": "xyz789",
      "username": "xyz789",
      "personalNumber": "abc123",
      "birthdate": "2007-12-03",
      "birthNumber": "abc123",
      "passportNumber": "xyz789",
      "identityCardNumber": "xyz789",
      "employeeCardNumber": "xyz789",
      "phone": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "title": "abc123",
      "gender": "MALE",
      "fullName": "abc123",
      "mainWorkplace": Workplace,
      "rating": 987.65,
      "hasAccount": false,
      "userGroups": [UserGroup],
      "shiftPlanning": UserShiftPlanning,
      "attendance": UserAttendance,
      "roles": [UserRole],
      "attendances": [Attendance],
      "customFieldValues": [UserCustomFieldValue],
      "shifts": [Shift],
      "availabilities": [Availability],
      "note": "abc123",
      "superior": User,
      "iCals": [UserICal],
      "avatar": File
    }
  }
}

userRemovePushToken

Response

Returns a Void

Arguments
Name Description
input - UserRemovePushTokenInput!

Example

Query
mutation userRemovePushToken($input: UserRemovePushTokenInput!) {
  userRemovePushToken(input: $input)
}
Variables
{"input": UserRemovePushTokenInput}
Response
{"data": {"userRemovePushToken": null}}

userRemoveWorkplaces

Response

Returns a UserAddWorkplacesPayload

Arguments
Name Description
input - UserRemoveWorkplacesInput!

Example

Query
mutation userRemoveWorkplaces($input: UserRemoveWorkplacesInput!) {
  userRemoveWorkplaces(input: $input) {
    user {
      ...UserFragment
    }
  }
}
Variables
{"input": UserRemoveWorkplacesInput}
Response
{"data": {"userRemoveWorkplaces": {"user": User}}}

userUpdate

Response

Returns a User

Arguments
Name Description
user - UserUpdateInput!

Example

Query
mutation userUpdate($user: UserUpdateInput!) {
  userUpdate(user: $user) {
    id
    externalId
    email
    username
    personalNumber
    birthdate
    birthNumber
    passportNumber
    identityCardNumber
    employeeCardNumber
    phone
    firstName
    lastName
    title
    gender
    fullName
    mainWorkplace {
      ...WorkplaceFragment
    }
    rating
    hasAccount
    userGroups {
      ...UserGroupFragment
    }
    shiftPlanning {
      ...UserShiftPlanningFragment
    }
    attendance {
      ...UserAttendanceFragment
    }
    roles {
      ...UserRoleFragment
    }
    attendances {
      ...AttendanceFragment
    }
    customFieldValues {
      ...UserCustomFieldValueFragment
    }
    shifts {
      ...ShiftFragment
    }
    availabilities {
      ...AvailabilityFragment
    }
    note
    superior {
      ...UserFragment
    }
    iCals {
      ...UserICalFragment
    }
    avatar {
      ...FileFragment
    }
  }
}
Variables
{"user": UserUpdateInput}
Response
{
  "data": {
    "userUpdate": {
      "id": "4",
      "externalId": "abc123",
      "email": "xyz789",
      "username": "abc123",
      "personalNumber": "abc123",
      "birthdate": "2007-12-03",
      "birthNumber": "xyz789",
      "passportNumber": "abc123",
      "identityCardNumber": "abc123",
      "employeeCardNumber": "xyz789",
      "phone": "abc123",
      "firstName": "xyz789",
      "lastName": "abc123",
      "title": "xyz789",
      "gender": "MALE",
      "fullName": "xyz789",
      "mainWorkplace": Workplace,
      "rating": 123.45,
      "hasAccount": true,
      "userGroups": [UserGroup],
      "shiftPlanning": UserShiftPlanning,
      "attendance": UserAttendance,
      "roles": [UserRole],
      "attendances": [Attendance],
      "customFieldValues": [UserCustomFieldValue],
      "shifts": [Shift],
      "availabilities": [Availability],
      "note": "xyz789",
      "superior": User,
      "iCals": [UserICal],
      "avatar": File
    }
  }
}

usersAbsencesImport

Response

Returns a UsersAbsencesImportPayload!

Arguments
Name Description
input - UsersAbsencesImportInput!

Example

Query
mutation usersAbsencesImport($input: UsersAbsencesImportInput!) {
  usersAbsencesImport(input: $input) {
    importId
  }
}
Variables
{"input": UsersAbsencesImportInput}
Response
{
  "data": {
    "usersAbsencesImport": {"importId": "4"}
  }
}

usersBatchDelete

Response

Returns a UsersBatchDeletePayload!

Arguments
Name Description
input - UsersBatchDeleteInput!

Example

Query
mutation usersBatchDelete($input: UsersBatchDeleteInput!) {
  usersBatchDelete(input: $input) {
    deletedCount
  }
}
Variables
{"input": UsersBatchDeleteInput}
Response
{"data": {"usersBatchDelete": {"deletedCount": 123}}}

usersImport

Response

Returns a UsersImportPayload!

Arguments
Name Description
input - UsersImportInput!

Example

Query
mutation usersImport($input: UsersImportInput!) {
  usersImport(input: $input) {
    imported {
      ...UserImportSuccessPayloadFragment
    }
    failed {
      ...UserImportErrorPayloadFragment
    }
  }
}
Variables
{"input": UsersImportInput}
Response
{
  "data": {
    "usersImport": {
      "imported": [UserImportSuccessPayload],
      "failed": [UserImportErrorPayload]
    }
  }
}

usersShiftsImport

Response

Returns a UsersShiftsImportPayload!

Arguments
Name Description
input - UsersShiftsImportInput!

Example

Query
mutation usersShiftsImport($input: UsersShiftsImportInput!) {
  usersShiftsImport(input: $input) {
    importId
  }
}
Variables
{"input": UsersShiftsImportInput}
Response
{"data": {"usersShiftsImport": {"importId": 4}}}

workplacesImport

Response

Returns a WorkplacesImportPayload!

Arguments
Name Description
input - WorkplacesImportInput!

Example

Query
mutation workplacesImport($input: WorkplacesImportInput!) {
  workplacesImport(input: $input) {
    imported {
      ...WorkplaceImportSuccessPayloadFragment
    }
    failed {
      ...WorkplaceImportErrorPayloadFragment
    }
  }
}
Variables
{"input": WorkplacesImportInput}
Response
{
  "data": {
    "workplacesImport": {
      "imported": [WorkplaceImportSuccessPayload],
      "failed": [WorkplaceImportErrorPayload]
    }
  }
}

Types

AbsenceDate

Fields
Field Name Description
id - ID!
date - Date!
sinceTime - Time
tillTime - Time
since - Date
till - Date
duration - Int! Duration of absence date in seconds.
absence - Attendance!
Example
{
  "id": 4,
  "date": "2007-12-03",
  "sinceTime": "10:15:30Z",
  "tillTime": "10:15:30Z",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "duration": 987,
  "absence": Attendance
}

AbsenceExportConnection

Fields
Field Name Description
edges - [AbsenceExportConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [AbsenceExportConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

AbsenceExportConnectionEdge

Fields
Field Name Description
node - AbsenceDate Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": AbsenceDate,
  "cursor": "abc123"
}

AbsenceExportFilter

Fields
Input Field Description
since - DateFilter!
Example
{"since": DateFilter}

AbsenceRequestAvailabilityInput

Fields
Input Field Description
absenceRequests - [AttendanceRequestInput!]!
Example
{"absenceRequests": [AttendanceRequestInput]}

AbsenceRequestAvailabilityPayload

Fields
Field Name Description
enabled - Boolean!
message - String
Example
{"enabled": true, "message": "abc123"}

AbsenceTypeImportError

Fields
Field Name Description
message - String!
path - [String!]
Example
{
  "message": "xyz789",
  "path": ["xyz789"]
}

AbsenceTypeImportErrorOutput

Fields
Field Name Description
id - ID
externalId - String
name - String
Example
{
  "id": 4,
  "externalId": "xyz789",
  "name": "abc123"
}

AbsenceTypeImportErrorPayload

Fields
Field Name Description
input - AbsenceTypeImportErrorOutput!
errors - [AbsenceTypeImportError!]!
Example
{
  "input": AbsenceTypeImportErrorOutput,
  "errors": [AbsenceTypeImportError]
}

AbsenceTypeImportInput

Fields
Input Field Description
id - ID
externalId - String
name - String
Example
{
  "id": "4",
  "externalId": "abc123",
  "name": "abc123"
}

AbsenceTypeImportSuccessPayload

Fields
Field Name Description
absenceType - AttendanceType!
Example
{"absenceType": AttendanceType}

AbsenceTypesImportInput

Fields
Input Field Description
absenceTypes - [AbsenceTypeImportInput!]
Example
{"absenceTypes": [AbsenceTypeImportInput]}

AbsenceTypesImportPayload

Fields
Field Name Description
imported - [AbsenceTypeImportSuccessPayload!]
failed - [AbsenceTypeImportErrorPayload!]
Example
{
  "imported": [AbsenceTypeImportSuccessPayload],
  "failed": [AbsenceTypeImportErrorPayload]
}

Address

Fields
Field Name Description
street - String!
city - String!
zip - String
country - String
note - String
Example
{
  "street": "abc123",
  "city": "abc123",
  "zip": "xyz789",
  "country": "abc123",
  "note": "abc123"
}

AddressInput

Fields
Input Field Description
street - String!
city - String!
zip - String
country - String
note - String
Example
{
  "street": "xyz789",
  "city": "xyz789",
  "zip": "abc123",
  "country": "xyz789",
  "note": "abc123"
}

ApiStatusEnum

Values
Enum Value Description

OK

Example
"OK"

ApprovalRequest

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
Example
{
  "id": "xyz789",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "xyz789",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User
}

ApprovalRequestApproveInput

Fields
Input Field Description
nextApproverId - ID
id - ID!
Example
{"nextApproverId": 4, "id": 4}

ApprovalRequestApproversFilter

Fields
Input Field Description
search - SearchFilter
Example
{"search": SearchFilter}

ApprovalRequestAttendance

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
attendance - Attendance!
Example
{
  "id": "abc123",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "abc123",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User,
  "attendance": Attendance
}

ApprovalRequestAttendanceCancellation

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
attendance - Attendance!
Example
{
  "id": "abc123",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "abc123",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User,
  "attendance": Attendance
}

ApprovalRequestConnectionEdge

Fields
Field Name Description
node - ApprovalRequest Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": ApprovalRequest,
  "cursor": "abc123"
}

ApprovalRequestDecision

Values
Enum Value Description

ACCEPTED

REJECTED

Example
"ACCEPTED"

ApprovalRequestDecisionMode

Values
Enum Value Description

SIMPLE

MULTI_APPROVER

Example
"SIMPLE"

ApprovalRequestDecisionStrategy

Fields
Field Name Description
mode - ApprovalRequestDecisionMode!
Example
{"mode": "SIMPLE"}

ApprovalRequestRejectInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

ApprovalRequestShiftAssignment

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
shift - Shift!
Example
{
  "id": "abc123",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "xyz789",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User,
  "shift": Shift
}

ApprovalRequestShiftAssignmentCancellation

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
shift - Shift!
attendanceType - AttendanceType
Example
{
  "id": "abc123",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "xyz789",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User,
  "shift": Shift,
  "attendanceType": AttendanceType
}

ApprovalRequestShiftAssignmentOffer

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
shift - Shift!
attendanceType - AttendanceType
offeredTo - User
acceptedBy - User
Example
{
  "id": "xyz789",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "xyz789",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User,
  "shift": Shift,
  "attendanceType": AttendanceType,
  "offeredTo": User,
  "acceptedBy": User
}

ApprovalRequestState

Values
Enum Value Description

PENDING

CANCELLED

DECIDED

Example
"PENDING"

ApprovalRequestStats

Fields
Field Name Description
approvalRequestTypes - [approvalRequestTypeStats!]!
Example
{"approvalRequestTypes": [approvalRequestTypeStats]}

ApprovalRequestType

Values
Enum Value Description

ATTENDANCE

ATTENDANCE_CANCELLATION

SHIFT_ASSIGNMENT

SHIFT_ASSIGNMENT_CANCELLATION

SHIFT_ASSIGNMENT_OFFER

Example
"ATTENDANCE"

ApprovalRequestsConnection

Fields
Field Name Description
edges - [ApprovalRequestConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [ApprovalRequestConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ApprovalRequestsFilter

Fields
Input Field Description
search - SearchFilter
state - ApprovalRequestsStateFilter
type - ApprovalRequestsTypeFilter
subjectDate - DateFilter
Example
{
  "search": SearchFilter,
  "state": ApprovalRequestsStateFilter,
  "type": ApprovalRequestsTypeFilter,
  "subjectDate": DateFilter
}

ApprovalRequestsStateFilter

Fields
Input Field Description
equal - ApprovalRequestState
in - [ApprovalRequestState]
Example
{"equal": "PENDING", "in": ["PENDING"]}

ApprovalRequestsTypeFilter

Fields
Input Field Description
equal - String
in - [String]
Example
{
  "equal": "abc123",
  "in": ["xyz789"]
}

Attendance

Fields
Field Name Description
id - ID!
since - Date!
till - Date!
checkedIn - Date
checkedOut - Date
fundDrawing - Float!
user - User!
attendanceType - AttendanceAttendanceType!
absenceType - AttendanceType
presenceStatus - AttendancePresenceStatus
type - AttendanceType
shift - Shift
request - AttendanceRequest
cancellation - AttendanceCancellation
userActions - [AttendanceUserAction!] Actions the current user can perform on this absence (e.g. CANCEL = request its cancellation).
breakDuration - Int Duration of break in seconds.
attendanceDuration - Int Net duration of attendance in seconds. If attendanceType is PRESENCE it is calculate as till minus since minus breakDuration. If attendanceType is absence it is calculate by schedule shifts or working days.
duration - Int Duration of attendance in seconds. Calculated as till minus since.
Example
{
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "checkedIn": "2007-12-03",
  "checkedOut": "2007-12-03",
  "fundDrawing": 123.45,
  "user": User,
  "attendanceType": "ABSENCE",
  "absenceType": AttendanceType,
  "presenceStatus": "PRESENT",
  "type": AttendanceType,
  "shift": Shift,
  "request": AttendanceRequest,
  "cancellation": AttendanceCancellation,
  "userActions": ["CANCEL"],
  "breakDuration": 123,
  "attendanceDuration": 987,
  "duration": 123
}

AttendanceAttendanceType

Values
Enum Value Description

ABSENCE

PRESENCE

Example
"ABSENCE"

AttendanceAttendanceTypeFilter

Fields
Input Field Description
is - AttendanceAttendanceType!
Example
{"is": "ABSENCE"}

AttendanceCancellation

Fields
Field Name Description
request - AttendanceCancellationRequest
Example
{"request": AttendanceCancellationRequest}

AttendanceCancellationConfirmInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

AttendanceCancellationConfirmPayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

AttendanceCancellationRejectInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

AttendanceCancellationRejectPayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceCancellationRequest

Fields
Field Name Description
userActions - [AttendanceCancellationRequestUserAction!]
requestedAt - Date
Example
{
  "userActions": ["CANCEL"],
  "requestedAt": "2007-12-03"
}

AttendanceCancellationRequestCancellationInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

AttendanceCancellationRequestCancellationPayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceCancellationRequestInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

AttendanceCancellationRequestPayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceCancellationRequestUserAction

Values
Enum Value Description

CANCEL

CONFIRM

REJECT

Example
"CANCEL"

AttendanceCreateInput

Fields
Input Field Description
attendanceTypeId - ID!
userId - ID!
note - String
id - ID
since - Date!
till - Date!
Example
{
  "attendanceTypeId": "4",
  "userId": 4,
  "note": "abc123",
  "id": 4,
  "since": "2007-12-03",
  "till": "2007-12-03"
}

AttendanceCreatePayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

AttendanceDeletePayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

AttendanceFilter

Fields
Input Field Description
since - DateFilter
till - DateFilter
attendanceType - AttendanceAttendanceTypeFilter
Example
{
  "since": DateFilter,
  "till": DateFilter,
  "attendanceType": AttendanceAttendanceTypeFilter
}

AttendanceFund

Fields
Field Name Description
id - ID!
attendanceType - AttendanceType!
period - AttendanceFundPeriod!
perPeriod - Int!
Example
{
  "id": "4",
  "attendanceType": AttendanceType,
  "period": "MONTH",
  "perPeriod": 987
}

AttendanceFundPeriod

Values
Enum Value Description

MONTH

YEAR

Example
"MONTH"

AttendancePresenceStatus

Values
Enum Value Description

PRESENT

NOT_PRESENT

BREAK

Example
"PRESENT"

AttendanceRequest

Fields
Field Name Description
userActions - [AttendanceRequestUserAction!]
requestedAt - Date
Example
{
  "userActions": ["CANCEL"],
  "requestedAt": "2007-12-03"
}

AttendanceRequestCancellationInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

AttendanceRequestCancellationPayload

Fields
Field Name Description
id - ID!
Example
{"id": 4}

AttendanceRequestConfirmInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

AttendanceRequestConfirmPayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceRequestInput

Fields
Input Field Description
attendanceTypeId - ID!
userId - ID!
note - String
id - ID
since - Date!
till - Date!
Example
{
  "attendanceTypeId": 4,
  "userId": "4",
  "note": "abc123",
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03"
}

AttendanceRequestPayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceRequestRejectInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

AttendanceRequestRejectPayload

Fields
Field Name Description
id - ID!
Example
{"id": 4}

AttendanceRequestUserAction

Values
Enum Value Description

CANCEL

CONFIRM

REJECT

Example
"CANCEL"

AttendanceType

Fields
Field Name Description
id - ID!
icon - AttendanceTypeIcon
color - String
name - String!
externalId - String
Example
{
  "id": "4",
  "icon": "ABSENCE",
  "color": "xyz789",
  "name": "xyz789",
  "externalId": "xyz789"
}

AttendanceTypeIcon

Values
Enum Value Description

ABSENCE

ILLNESS

FAMILY_MEMBER_CARE

VACATION

UNPAID_VACATION

COMPENSATORY_VACATION

BUSINESS_TRIP

HOME_OFFICE

EMERGENCY

AVAILABLE

Example
"ABSENCE"

AttendanceTypesConnection

Fields
Field Name Description
edges - [AttendanceTypesConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [AttendanceTypesConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

AttendanceTypesConnectionEdge

Fields
Field Name Description
node - AttendanceType Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": AttendanceType,
  "cursor": "xyz789"
}

AttendanceUpdateInput

Fields
Input Field Description
id - ID!
since - Date
till - Date
Example
{
  "id": 4,
  "since": "2007-12-03",
  "till": "2007-12-03"
}

AttendanceUpdatePayload

Fields
Field Name Description
attendance - Attendance!
Example
{"attendance": Attendance}

AttendanceUserAction

Values
Enum Value Description

CANCEL

Example
"CANCEL"

AttendancesConnection

Fields
Field Name Description
edges - [AttendancesConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [AttendancesConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

AttendancesConnectionEdge

Fields
Field Name Description
node - Attendance Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": Attendance,
  "cursor": "xyz789"
}

Availability

Fields
Field Name Description
id - ID!
since - Date!
till - Date!
user - User!
note - String
Example
{
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "user": User,
  "note": "xyz789"
}

AvailabilityCreateInput

Fields
Input Field Description
userId - ID
note - String
id - ID
since - Date!
till - Date!
Example
{
  "userId": "4",
  "note": "xyz789",
  "id": 4,
  "since": "2007-12-03",
  "till": "2007-12-03"
}

AvailabilityCreatePayload

Fields
Field Name Description
availability - Availability!
Example
{"availability": Availability}

AvailabilityDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

AvailabilityDeletePayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

AvailabilityUpdateInput

Fields
Input Field Description
note - String
id - ID!
since - Date
till - Date
Example
{
  "note": "abc123",
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03"
}

AvailabilityUpdatePayload

Fields
Field Name Description
availability - Availability!
Example
{"availability": Availability}

BalancingPeriod

Description

Vyrovnávací období (§ 83 ZP) — časový interval a fond hodin nastavený firmou.

Fields
Field Name Description
id - ID!
since - Date!
till - Date!
hourlyFund - Float!
Example
{
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "hourlyFund": 987.65
}

BalancingPeriodsConnection

Fields
Field Name Description
edges - [BalancingPeriodsConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [BalancingPeriodsConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

BalancingPeriodsConnectionEdge

Fields
Field Name Description
node - BalancingPeriod Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": BalancingPeriod,
  "cursor": "xyz789"
}

BaseApprovalRequest

Fields
Field Name Description
id - String!
type - ApprovalRequestType!
subjectDate - Date!
requestedAt - Date
requestedBy - User!
state - ApprovalRequestState!
decision - ApprovalRequestDecision
decidedBy - User
decidedAt - Date
cancelledAt - Date
cancelledBy - User
note - String
decisionStrategy - ApprovalRequestDecisionStrategy!
approvals - UsersConnection!
Arguments
defaultApproval - User
Example
{
  "id": "xyz789",
  "type": "ATTENDANCE",
  "subjectDate": "2007-12-03",
  "requestedAt": "2007-12-03",
  "requestedBy": User,
  "state": "PENDING",
  "decision": "ACCEPTED",
  "decidedBy": User,
  "decidedAt": "2007-12-03",
  "cancelledAt": "2007-12-03",
  "cancelledBy": User,
  "note": "abc123",
  "decisionStrategy": ApprovalRequestDecisionStrategy,
  "approvals": UsersConnection,
  "defaultApproval": User
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BooleanFilter

Fields
Input Field Description
is - Boolean!
Example
{"is": true}

Component

Fields
Field Name Description
type - String!
Example
{"type": "xyz789"}

Content

Fields
Field Name Description
id - ID!
title - String!
components - [Component]
Example
{
  "id": 4,
  "title": "xyz789",
  "components": [Component]
}

CustomField

Fields
Field Name Description
id - ID!
name - String!
readonly - Boolean! Hodnotu nelze měnit ručně (dnes: spravovaná importem). U custom fieldů pracovišť vždy false.
Example
{
  "id": 4,
  "name": "abc123",
  "readonly": true
}

Date

Example
"2007-12-03"

DateFilter

Fields
Input Field Description
equal - Date
lessThan - Date
lessThanOrEqual - Date
greaterThanOrEqual - Date
greaterThan - Date
Example
{
  "equal": "2007-12-03",
  "lessThan": "2007-12-03",
  "lessThanOrEqual": "2007-12-03",
  "greaterThanOrEqual": "2007-12-03",
  "greaterThan": "2007-12-03"
}

DateRangeFilter

Fields
Input Field Description
since - Date!
till - Date!
Example
{
  "since": "2007-12-03",
  "till": "2007-12-03"
}

DeviceInfo

Fields
Input Field Description
screenHeight - Int
screenWidth - Int
colorScheme - String
platformOS - String
platformVersion - String
appVersion - String
Example
{
  "screenHeight": 987,
  "screenWidth": 987,
  "colorScheme": "xyz789",
  "platformOS": "xyz789",
  "platformVersion": "xyz789",
  "appVersion": "xyz789"
}

DispatchInput

Description

Unified, JWT-driven entry point. A single signed token selects the operation (claim action) and carries all of its parameters, so the concrete operations are documented here rather than in the GraphQL arguments. Authentication. The dispatch mutation has no access rule of its own — the caller is authenticated by verifying the token signature against the company's registered public key, matched by the iss claim. Token. RS256, signed with the company's private key. Required claims: iss (company issuer), action, exp (expiration). The user is identified by one of personalNumber, email or externalId (resolved in that order). Parameters may be placed at the top level of the claims or nested inside a parameters object. Actions (action claim): - login — issues a one-time login. Optional: targetApp (desktop or other), redirect. Returns redirectUrl (always) and loginToken (when targetApp is not desktop). - presence-start — clocks the user in (same behavior as the presenceStart mutation). Optional: timeClockId, geolocation { latitude, longitude }. Returns started ("true"/"false") and message (only when present). - presence-end — clocks the user out or starts a break (same behavior as the presenceEnd mutation). Required: type (PRESENCE or BREAK). Optional: timeClockId, geolocation { latitude, longitude }. Returns ended ("true"/"false") and message (only when present). Example token payload (presence-end): json { "iss": "cominfo-test", "action": "presence-end", "exp": 1735000000, "parameters": { "personalNumber": "30479", "type": "PRESENCE", "geolocation": { "latitude": 50.08, "longitude": 14.43 } } } Errors (returned as a GraphQL UserError): unknown action; missing or invalid presence-end type; user not found or not enabled; invalid/unsigned token or unknown company public key.

Fields
Input Field Description
token - String! Signed JWT that encodes the action (claim action) and its parameters. See the type description for the full interface.
Example
{"token": "abc123"}

DispatchPayload

Description

Result of a dispatch action — the performed action and its data as key/value pairs.

Fields
Field Name Description
action - String! The performed action (echo of the action claim), e.g. login, presence-start, presence-end.
data - [keyValue!] Action result as key/value pairs. Keys depend on the action, e.g. redirectUrl, loginToken, started, ended, message.
Example
{
  "action": "abc123",
  "data": [keyValue]
}

EmploymentImportInput

Fields
Input Field Description
externalId - String
since - Date!
till - Date
employmentType - String
employmentTimeExternalId - String
workingDayDuration - Float
terminationNote - String
terminationReasonExternalId - String
Example
{
  "externalId": "xyz789",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "employmentType": "abc123",
  "employmentTimeExternalId": "abc123",
  "workingDayDuration": 987.65,
  "terminationNote": "abc123",
  "terminationReasonExternalId": "abc123"
}

File

Fields
Field Name Description
id - ID!
originalName - String!
mimeType - String!
size - Int!
createdAt - Date!
createdBy - User
preview - FilePreview!
Arguments
width - Int
height - Int
Example
{
  "id": 4,
  "originalName": "abc123",
  "mimeType": "abc123",
  "size": 987,
  "createdAt": "2007-12-03",
  "createdBy": User,
  "preview": FilePreview
}

FilePreview

Fields
Field Name Description
url - String!
width - Int
height - Int
Example
{
  "url": "xyz789",
  "width": 123,
  "height": 987
}

FileType

Fields
Field Name Description
type - FileTypeEnum!
maxSize - Int!
maxHeight - Int
maxWidth - Int
allowedMimeTypes - [String!]
requiredOwningUserId - Boolean!
requiredOwningOrganizationId - Boolean!
Example
{
  "type": "PRESENCE_LOG",
  "maxSize": 987,
  "maxHeight": 987,
  "maxWidth": 123,
  "allowedMimeTypes": ["abc123"],
  "requiredOwningUserId": false,
  "requiredOwningOrganizationId": false
}

FileTypeEnum

Values
Enum Value Description

PRESENCE_LOG

USER_AVATAR

Example
"PRESENCE_LOG"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

Gender

Description

Pohlaví uživatele (mapováno na interní pole sex).

Values
Enum Value Description

MALE

FEMALE

Example
"MALE"

GeolocationErrorInput

Fields
Input Field Description
code - Int
message - String!
Example
{"code": 123, "message": "abc123"}

GeolocationInput

Fields
Input Field Description
latitude - Float!
longitude - Float!
Example
{"latitude": 123.45, "longitude": 123.45}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

IdEqualFilter

Fields
Input Field Description
equal - ID!
Example
{"equal": 4}

IdFilter

Fields
Input Field Description
equal - ID
in - [ID!]
Example
{"equal": "4", "in": [4]}

ImportResult

Fields
Field Name Description
status - ImportResultStatusEnum!
imported - ImportResultImported!
failed - ImportResultFailed!
Example
{
  "status": "COMPLETED",
  "imported": ImportResultImported,
  "failed": ImportResultFailed
}

ImportResultFailed

Fields
Field Name Description
count - Int!
errors - [ImportResultFailedError!]
Example
{"count": 987, "errors": [ImportResultFailedError]}

ImportResultFailedError

Fields
Field Name Description
error - [ImportResultFailedErrorError!]
Example
{"error": [ImportResultFailedErrorError]}

ImportResultFailedErrorError

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

ImportResultImported

Fields
Field Name Description
count - Int!
Example
{"count": 987}

ImportResultStatusEnum

Values
Enum Value Description

COMPLETED

IMPORTING

Example
"COMPLETED"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

MeUpdateICalInput

Fields
Input Field Description
type - UserICalTypeEnum!
enabled - Boolean!
Example
{"type": "USER", "enabled": false}

MeUpdateInput

Fields
Input Field Description
fullName - String
email - String
username - String
phone - String
password - String
iCals - [MeUpdateICalInput!]
Example
{
  "fullName": "abc123",
  "email": "xyz789",
  "username": "abc123",
  "phone": "xyz789",
  "password": "xyz789",
  "iCals": [MeUpdateICalInput]
}

MeUpdatePayload

Fields
Field Name Description
user - User!
Example
{"user": User}

Message

Fields
Field Name Description
id - ID!
parent - Message
messageThread - MessageThread
body - String!
createdAt - Date!
createdBy - User
Example
{
  "id": "4",
  "parent": Message,
  "messageThread": MessageThread,
  "body": "xyz789",
  "createdAt": "2007-12-03",
  "createdBy": User
}

MessageAddInput

Fields
Input Field Description
messageThreadId - ID!
id - ID
parentId - ID
messageTypeId - String!
data - String!
Example
{
  "messageThreadId": 4,
  "id": "4",
  "parentId": "4",
  "messageTypeId": "xyz789",
  "data": "xyz789"
}

MessageAddPayload

Fields
Field Name Description
message - Message!
Example
{"message": Message}

MessageReadInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

MessageThread

Fields
Field Name Description
id - ID!
messageThreadType - MessageThreadType!
subject - String!
firstMessage - Message!
lastMessage - Message!
createdAt - Date!
createdBy - User!
messages - [Message!]!
Example
{
  "id": "4",
  "messageThreadType": MessageThreadType,
  "subject": "xyz789",
  "firstMessage": Message,
  "lastMessage": Message,
  "createdAt": "2007-12-03",
  "createdBy": User,
  "messages": [Message]
}

MessageThreadCategoryStats

Fields
Field Name Description
id - ID!
name - String!
unreadCount - Int!
Example
{
  "id": 4,
  "name": "xyz789",
  "unreadCount": 987
}

MessageThreadCreateInput

Fields
Input Field Description
id - ID
messageThreadTypeId - ID!
data - String!
participantIds - [ID!]!
message - MessageThreadCreateMessageInput!
Example
{
  "id": "4",
  "messageThreadTypeId": "4",
  "data": "abc123",
  "participantIds": [4],
  "message": MessageThreadCreateMessageInput
}

MessageThreadCreateMessageInput

Fields
Input Field Description
id - ID
parentId - ID
messageTypeId - String!
data - String!
Example
{
  "id": 4,
  "parentId": 4,
  "messageTypeId": "xyz789",
  "data": "abc123"
}

MessageThreadCreatePayload

Fields
Field Name Description
messageThread - MessageThread!
Example
{"messageThread": MessageThread}

MessageThreadParticipant

Fields
Field Name Description
id - ID!
messageThread - MessageThread!
user - User!
read - Boolean!
lastReadMessage - Message
Example
{
  "id": 4,
  "messageThread": MessageThread,
  "user": User,
  "read": true,
  "lastReadMessage": Message
}

MessageThreadParticipantCategoryFilter

Fields
Input Field Description
equal - String!
Example
{"equal": "xyz789"}

MessageThreadParticipantFilter

Fields
Input Field Description
userId - IdFilter
categoryId - MessageThreadParticipantCategoryFilter
Example
{
  "userId": IdFilter,
  "categoryId": MessageThreadParticipantCategoryFilter
}

MessageThreadParticipantsConnection

Fields
Field Name Description
edges - [MessageThreadParticipantsConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [MessageThreadParticipantsConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

MessageThreadParticipantsConnectionEdge

Fields
Field Name Description
node - MessageThreadParticipant Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": MessageThreadParticipant,
  "cursor": "abc123"
}

MessageThreadReplyType

Values
Enum Value Description

NONE

ALL

AUTHOR

Example
"NONE"

MessageThreadStats

Fields
Field Name Description
unreadCount - Int!
messageThreadCategories - [MessageThreadCategoryStats!]!
Example
{
  "unreadCount": 987,
  "messageThreadCategories": [MessageThreadCategoryStats]
}

MessageThreadType

Fields
Field Name Description
id - ID!
replyType - MessageThreadReplyType!
Example
{"id": "4", "replyType": "NONE"}

MessageThreadsReadCategoryInput

Fields
Input Field Description
equal - String!
Example
{"equal": "xyz789"}

MessageThreadsReadInput

Fields
Input Field Description
category - MessageThreadsReadCategoryInput
Example
{"category": MessageThreadsReadCategoryInput}

Node

NullableIdFilter

Fields
Input Field Description
equal - ID
in - [ID!]
Example
{"equal": 4, "in": ["4"]}

NullableStringFilter

Fields
Input Field Description
equal - String
in - [String!]
Example
{
  "equal": "abc123",
  "in": ["abc123"]
}

PageInfo

Description

Information about pagination in a connection.

Fields
Field Name Description
hasNextPage - Boolean! When paginating forwards, are there more items?
hasPreviousPage - Boolean! When paginating backwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
endCursor - String When paginating forwards, the cursor to continue.
Example
{
  "hasNextPage": false,
  "hasPreviousPage": true,
  "startCursor": "abc123",
  "endCursor": "abc123"
}

Pager

Fields
Input Field Description
first - Int
after - String
last - Int
before - String
Example
{
  "first": 987,
  "after": "abc123",
  "last": 987,
  "before": "abc123"
}

Position

Fields
Field Name Description
id - ID!
externalId - String
name - String!
rank - Int!
Example
{
  "id": 4,
  "externalId": "xyz789",
  "name": "abc123",
  "rank": 123
}

PositionCreateInput

Fields
Input Field Description
id - ID
name - String!
Example
{"id": 4, "name": "abc123"}

PositionCreatePayload

Fields
Field Name Description
position - Position!
Example
{"position": Position}

PositionDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

PositionDeletePayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

PositionUpdateInput

Fields
Input Field Description
id - ID!
name - String!
Example
{
  "id": "4",
  "name": "abc123"
}

PositionUpdatePayload

Fields
Field Name Description
position - Position!
Example
{"position": Position}

PositionsConnection

Fields
Field Name Description
edges - [PositionsConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [PositionsConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

PositionsConnectionEdge

Fields
Field Name Description
node - Position Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": Position,
  "cursor": "abc123"
}

PresenceEndInput

Fields
Input Field Description
type - PresenceEndTypeEnum!
timeClockId - ID
geolocation - GeolocationInput
geolocationError - GeolocationErrorInput
Example
{
  "type": "BREAK",
  "timeClockId": "4",
  "geolocation": GeolocationInput,
  "geolocationError": GeolocationErrorInput
}

PresenceEndPayload

Fields
Field Name Description
ended - Boolean!
message - String
Example
{"ended": true, "message": "abc123"}

PresenceEndTypeEnum

Values
Enum Value Description

BREAK

PRESENCE

Example
"BREAK"

PresenceLog

Fields
Field Name Description
id - ID!
user - User!
year - Int!
month - Int!
processedAt - Date
processedBy - User
file - File
Example
{
  "id": 4,
  "user": User,
  "year": 987,
  "month": 987,
  "processedAt": "2007-12-03",
  "processedBy": User,
  "file": File
}

PresenceLogConnectionEdge

Fields
Field Name Description
node - PresenceLog Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": PresenceLog,
  "cursor": "abc123"
}

PresenceLogCreateInput

Fields
Input Field Description
userId - ID!
year - Int!
month - Int!
fileUploadToken - String!
Example
{
  "userId": "4",
  "year": 987,
  "month": 987,
  "fileUploadToken": "xyz789"
}

PresenceLogCreatePayload

Fields
Field Name Description
presenceLog - PresenceLog!
Example
{"presenceLog": PresenceLog}

PresenceLogDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

PresenceLogsConnection

Fields
Field Name Description
edges - [PresenceLogConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [PresenceLogConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

PresenceLogsFilter

Fields
Input Field Description
userId - IdFilter
period - DateRangeFilter
Example
{
  "userId": IdFilter,
  "period": DateRangeFilter
}

PresenceStartInput

Fields
Input Field Description
timeClockId - ID
geolocation - GeolocationInput
geolocationError - GeolocationErrorInput
Example
{
  "timeClockId": "4",
  "geolocation": GeolocationInput,
  "geolocationError": GeolocationErrorInput
}

PresenceStartPayload

Fields
Field Name Description
started - Boolean!
message - String
Example
{"started": false, "message": "abc123"}

ProductivitiesConnection

Fields
Field Name Description
edges - [ProductivitiesConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [ProductivitiesConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

ProductivitiesConnectionEdge

Fields
Field Name Description
node - Productivity Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": Productivity,
  "cursor": "abc123"
}

Productivity

Fields
Field Name Description
id - ID!
date - Date!
workplace - Workplace!
volume - Float!
utilization - Float!
productivity - Float!
workedHours - Float!
unoccupiedHours - Float
Example
{
  "id": 4,
  "date": "2007-12-03",
  "workplace": Workplace,
  "volume": 123.45,
  "utilization": 987.65,
  "productivity": 123.45,
  "workedHours": 987.65,
  "unoccupiedHours": 987.65
}

ProductivityFilter

Fields
Input Field Description
date - DateFilter
Example
{"date": DateFilter}

ProductivitySort

Fields
Input Field Description
date - SortDirection
Example
{"date": "ASC"}

Resource

Fields
Field Name Description
id - ID!
name - String!
resourceCategory - ResourceCategory!
Example
{
  "id": 4,
  "name": "abc123",
  "resourceCategory": ResourceCategory
}

ResourceCategory

Fields
Field Name Description
id - ID!
name - String!
Example
{"id": 4, "name": "xyz789"}

ResourceReservation

Fields
Field Name Description
id - ID!
resourceCategory - ResourceCategory!
resource - Resource
since - Date!
till - Date!
Example
{
  "id": 4,
  "resourceCategory": ResourceCategory,
  "resource": Resource,
  "since": "2007-12-03",
  "till": "2007-12-03"
}

ScheduledReminder

Description

Naplánované připomenutí pro klienta (např. push notifikace).

Fields
Field Name Description
id - ID!
header - String!
body - String!
url - String
notifyAt - Date!
type - ScheduledReminderType!
Example
{
  "id": "4",
  "header": "xyz789",
  "body": "xyz789",
  "url": "xyz789",
  "notifyAt": "2007-12-03",
  "type": "SHIFT_REMINDER"
}

ScheduledReminderType

Values
Enum Value Description

SHIFT_REMINDER

Example
"SHIFT_REMINDER"

SearchFilter

Fields
Input Field Description
contains - String!
Example
{"contains": "abc123"}

Shift

Fields
Field Name Description
id - ID!
groupHash - String
since - Date!
till - Date!
timeLabel - String
workplace - Workplace
position - Position
userGroup - UserGroup
shiftTime - ShiftTime
user - User
note - String
borrow - Boolean!
assignment - ShiftAssignment!
coworkerShifts - [Shift!]
resourceReservations - [ResourceReservation!]
attendances - [Attendance!]
Arguments
Example
{
  "id": 4,
  "groupHash": "xyz789",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "timeLabel": "abc123",
  "workplace": Workplace,
  "position": Position,
  "userGroup": UserGroup,
  "shiftTime": ShiftTime,
  "user": User,
  "note": "abc123",
  "borrow": true,
  "assignment": ShiftAssignment,
  "coworkerShifts": [Shift],
  "resourceReservations": [ResourceReservation],
  "attendances": [Attendance]
}

ShiftAssignment

Fields
Field Name Description
userActions - [ShiftAssignmentUserAction!]
confirmationRequired - Boolean!
request - ShiftAssignmentRequest
cancellation - ShiftAssignmentCancellation
offer - ShiftAssignmentOffer!
Example
{
  "userActions": ["ATTEND"],
  "confirmationRequired": false,
  "request": ShiftAssignmentRequest,
  "cancellation": ShiftAssignmentCancellation,
  "offer": ShiftAssignmentOffer
}

ShiftAssignmentCancellation

Fields
Field Name Description
confirmationRequired - Boolean!
attendanceTypeRequired - Boolean!
request - ShiftAssignmentCancellationRequest
Example
{
  "confirmationRequired": false,
  "attendanceTypeRequired": true,
  "request": ShiftAssignmentCancellationRequest
}

ShiftAssignmentCancellationConfirmInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

ShiftAssignmentCancellationConfirmPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentCancellationRejectInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentCancellationRejectPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentCancellationRequest

Fields
Field Name Description
userActions - [ShiftAssignmentCancellationRequestUserAction!]
user - User!
note - String
attendanceType - AttendanceType
cancellable - Boolean!
Example
{
  "userActions": ["CANCEL"],
  "user": User,
  "note": "abc123",
  "attendanceType": AttendanceType,
  "cancellable": false
}

ShiftAssignmentCancellationRequestCancellationInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentCancellationRequestCancellationPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentCancellationRequestInput

Fields
Input Field Description
attendanceTypeId - ID
note - String
id - ID!
Example
{
  "attendanceTypeId": "4",
  "note": "abc123",
  "id": "4"
}

ShiftAssignmentCancellationRequestPayload

Fields
Field Name Description
id - ID!
Example
{"id": 4}

ShiftAssignmentCancellationRequestUserAction

Values
Enum Value Description

CANCEL

CONFIRM

REJECT

Example
"CANCEL"

ShiftAssignmentConfirmInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentConfirmPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentOffer

Fields
Field Name Description
confirmationRequired - Boolean!
attendanceTypeRequired - Boolean!
request - ShiftAssignmentOfferRequest
Example
{
  "confirmationRequired": true,
  "attendanceTypeRequired": false,
  "request": ShiftAssignmentOfferRequest
}

ShiftAssignmentOfferAcceptInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentOfferAcceptPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentOfferConfirmInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

ShiftAssignmentOfferConfirmPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentOfferDeclineInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentOfferDeclinePayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

ShiftAssignmentOfferRejectInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentOfferRejectPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentOfferRequest

Fields
Field Name Description
userActions - [ShiftAssignmentOfferRequestUserAction!]
offeredTo - User
acceptedBy - User
note - String
attendanceType - AttendanceType
cancellable - Boolean!
Example
{
  "userActions": ["CANCEL"],
  "offeredTo": User,
  "acceptedBy": User,
  "note": "abc123",
  "attendanceType": AttendanceType,
  "cancellable": false
}

ShiftAssignmentOfferRequestCancellationInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

ShiftAssignmentOfferRequestCancellationPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentOfferRequestInput

Fields
Input Field Description
offeredToId - ID
attendanceTypeId - ID
note - String
id - ID!
Example
{
  "offeredToId": 4,
  "attendanceTypeId": "4",
  "note": "xyz789",
  "id": 4
}

ShiftAssignmentOfferRequestPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentOfferRequestUserAction

Values
Enum Value Description

CANCEL

CONFIRM

REJECT

ACCEPT

DECLINE

UPDATE

Example
"CANCEL"

ShiftAssignmentRejectInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"}

ShiftAssignmentRejectPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentRequest

Fields
Field Name Description
userActions - [ShiftAssignmentRequestUserAction!]
user - User!
requestedBy - User
cancellable - Boolean!
Example
{
  "userActions": ["CANCEL"],
  "user": User,
  "requestedBy": User,
  "cancellable": true
}

ShiftAssignmentRequestCancellationInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftAssignmentRequestCancellationPayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

ShiftAssignmentRequestInput

Fields
Input Field Description
since - Date
till - Date
workplaceId - ID
positionId - ID
userGroupId - ID
groupHash - String
note - String
Example
{
  "since": "2007-12-03",
  "till": "2007-12-03",
  "workplaceId": 4,
  "positionId": "4",
  "userGroupId": "4",
  "groupHash": "abc123",
  "note": "xyz789"
}

ShiftAssignmentRequestPayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftAssignmentRequestUserAction

Values
Enum Value Description

CANCEL

CONFIRM

REJECT

Example
"CANCEL"

ShiftAssignmentUserAction

Values
Enum Value Description

ATTEND

CANCEL

OFFER

CONFIRM

REJECT

Example
"ATTEND"

ShiftAttendancesFilter

Fields
Input Field Description
attendanceType - AttendanceAttendanceTypeFilter
Example
{"attendanceType": AttendanceAttendanceTypeFilter}

ShiftBatchChangeInput

Fields
Input Field Description
create - [ShiftCreateInput!]
update - [ShiftUpdateInput!]
delete - [ShiftDeleteInput!]
Example
{
  "create": [ShiftCreateInput],
  "update": [ShiftUpdateInput],
  "delete": [ShiftDeleteInput]
}

ShiftBatchChangePayload

Fields
Field Name Description
created - ShiftBatchCreatePayload
updated - ShiftBatchUpdatePayload
deleted - ShiftBatchDeletePayload
Example
{
  "created": ShiftBatchCreatePayload,
  "updated": ShiftBatchUpdatePayload,
  "deleted": ShiftBatchDeletePayload
}

ShiftBatchCreatePayload

Fields
Field Name Description
shifts - [Shift!]
Example
{"shifts": [Shift]}

ShiftBatchDeletePayload

Fields
Field Name Description
ids - [ID!]
Example
{"ids": [4]}

ShiftBatchUpdatePayload

Fields
Field Name Description
shifts - [Shift!]
Example
{"shifts": [Shift]}

ShiftCreateInput

Fields
Input Field Description
workplaceId - ID!
positionId - ID
userId - ID
note - String
id - ID
since - Date!
till - Date!
Example
{
  "workplaceId": "4",
  "positionId": 4,
  "userId": "4",
  "note": "abc123",
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03"
}

ShiftCreatePayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftDeletePayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

ShiftFeasibility

Values
Enum Value Description

AVAILABLE

PARTIALLY_AVAILABLE

UNAVAILABLE

BUSY

ABSENCE

Example
"AVAILABLE"

ShiftFeasibleUser

Fields
Field Name Description
feasibility - ShiftFeasibility!
user - User!
Example
{"feasibility": "AVAILABLE", "user": User}

ShiftFeasibleUsersConnection

Fields
Field Name Description
edges - [ShiftFeasibleUsersConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [ShiftFeasibleUsersConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ShiftFeasibleUsersConnectionEdge

Fields
Field Name Description
node - ShiftFeasibleUser Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": ShiftFeasibleUser,
  "cursor": "xyz789"
}

ShiftFeasibleUsersFilter

Fields
Input Field Description
workplaceId - IdEqualFilter!
positionId - IdEqualFilter
feasibleAt - DateRangeFilter!
search - SearchFilter
Example
{
  "workplaceId": IdEqualFilter,
  "positionId": IdEqualFilter,
  "feasibleAt": DateRangeFilter,
  "search": SearchFilter
}

ShiftFilter

Fields
Input Field Description
workplaceId - WorkplaceIdFilter
userId - NullableIdFilter
userExternalId - NullableStringFilter
since - DateFilter
state - ShiftStateFilter
Example
{
  "workplaceId": WorkplaceIdFilter,
  "userId": NullableIdFilter,
  "userExternalId": NullableStringFilter,
  "since": DateFilter,
  "state": ShiftStateFilter
}

ShiftOfferableUser

Fields
Field Name Description
user - User!
Example
{"user": User}

ShiftOfferableUsersConnection

Fields
Field Name Description
edges - [ShiftOfferableUsersConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [ShiftOfferableUsersConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 123
}

ShiftOfferableUsersConnectionEdge

Fields
Field Name Description
node - ShiftOfferableUser Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": ShiftOfferableUser,
  "cursor": "xyz789"
}

ShiftOfferableUsersFilter

Fields
Input Field Description
shiftId - IdEqualFilter!
search - SearchFilter
Example
{
  "shiftId": IdEqualFilter,
  "search": SearchFilter
}

ShiftPattern

Fields
Field Name Description
id - ID!
since - Time!
till - Time!
workplace - Workplace!
position - Position
user - User
note - String
Example
{
  "id": 4,
  "since": "10:15:30Z",
  "till": "10:15:30Z",
  "workplace": Workplace,
  "position": Position,
  "user": User,
  "note": "xyz789"
}

ShiftPlanningStats

Fields
Field Name Description
workplace - Workplace!
date - Date!
shiftAssignmentRequest - Int!
unoccupied - Int!
occupied - Int!
Example
{
  "workplace": Workplace,
  "date": "2007-12-03",
  "shiftAssignmentRequest": 123,
  "unoccupied": 987,
  "occupied": 987
}

ShiftPlanningStatsFilter

Fields
Input Field Description
workplaceId - WorkplaceIdFilter!
period - DateRangeFilter
Example
{
  "workplaceId": WorkplaceIdFilter,
  "period": DateRangeFilter
}

ShiftSort

Fields
Input Field Description
since - SortDirection
userFullName - SortDirection
positionName - SortDirection
positionRank - SortDirection
Example
{
  "since": "ASC",
  "userFullName": "ASC",
  "positionName": "ASC",
  "positionRank": "ASC"
}

ShiftState

Values
Enum Value Description

OCCUPIED

UNOCCUPIED

ASSIGNMENT_REQUEST

ASSIGNMENT_CANCELLATION_REQUEST

Example
"OCCUPIED"

ShiftStateFilter

Fields
Input Field Description
equal - ShiftState
in - [ShiftState!]
Example
{"equal": "OCCUPIED", "in": ["OCCUPIED"]}

ShiftTime

Fields
Field Name Description
id - ID!
since - Time!
till - Time!
name - String
abbreviation - String
code - String
externalId - String
Example
{
  "id": 4,
  "since": "10:15:30Z",
  "till": "10:15:30Z",
  "name": "abc123",
  "abbreviation": "abc123",
  "code": "abc123",
  "externalId": "xyz789"
}

ShiftTimeCreateInput

Fields
Input Field Description
since - Time!
till - Time!
id - ID
externalId - String
name - String
abbreviation - String
code - String
Example
{
  "since": "10:15:30Z",
  "till": "10:15:30Z",
  "id": 4,
  "externalId": "abc123",
  "name": "abc123",
  "abbreviation": "abc123",
  "code": "xyz789"
}

ShiftTimeCreatePayload

Fields
Field Name Description
shiftTime - ShiftTime!
Example
{"shiftTime": ShiftTime}

ShiftTimeDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ShiftTimeDeletePayload

Fields
Field Name Description
id - ID!
Example
{"id": 4}

ShiftTimeImportError

Fields
Field Name Description
message - String!
path - [String!]
Example
{
  "message": "abc123",
  "path": ["abc123"]
}

ShiftTimeImportErrorOutput

Fields
Field Name Description
id - ID
externalId - String
name - String
abbreviation - String
code - String
since - Time
till - Time
Example
{
  "id": "4",
  "externalId": "abc123",
  "name": "abc123",
  "abbreviation": "abc123",
  "code": "xyz789",
  "since": "10:15:30Z",
  "till": "10:15:30Z"
}

ShiftTimeImportErrorPayload

Fields
Field Name Description
input - ShiftTimeImportErrorOutput!
errors - [ShiftTimeImportError!]!
Example
{
  "input": ShiftTimeImportErrorOutput,
  "errors": [ShiftTimeImportError]
}

ShiftTimeImportInput

Fields
Input Field Description
id - ID
externalId - String
name - String
abbreviation - String
code - String
since - Time
till - Time
Example
{
  "id": "4",
  "externalId": "xyz789",
  "name": "xyz789",
  "abbreviation": "abc123",
  "code": "abc123",
  "since": "10:15:30Z",
  "till": "10:15:30Z"
}

ShiftTimeImportSuccessPayload

Fields
Field Name Description
shiftTime - ShiftTime!
Example
{"shiftTime": ShiftTime}

ShiftTimeUpdateInput

Fields
Input Field Description
id - ID
externalId - String
name - String
abbreviation - String
code - String
since - Time
till - Time
Example
{
  "id": 4,
  "externalId": "abc123",
  "name": "xyz789",
  "abbreviation": "abc123",
  "code": "abc123",
  "since": "10:15:30Z",
  "till": "10:15:30Z"
}

ShiftTimeUpdatePayload

Fields
Field Name Description
shiftTime - ShiftTime!
Example
{"shiftTime": ShiftTime}

ShiftTimesConnection

Fields
Field Name Description
edges - [ShiftTimesConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [ShiftTimesConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ShiftTimesConnectionEdge

Fields
Field Name Description
node - ShiftTime Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": ShiftTime,
  "cursor": "xyz789"
}

ShiftTimesImportInput

Fields
Input Field Description
shiftTimes - [ShiftTimeImportInput!]
Example
{"shiftTimes": [ShiftTimeImportInput]}

ShiftTimesImportPayload

Fields
Field Name Description
imported - [ShiftTimeImportSuccessPayload!]
failed - [ShiftTimeImportErrorPayload!]
Example
{
  "imported": [ShiftTimeImportSuccessPayload],
  "failed": [ShiftTimeImportErrorPayload]
}

ShiftUpdateInput

Fields
Input Field Description
workplaceId - ID
positionId - ID
userId - ID
note - String
id - ID!
since - Date
till - Date
Example
{
  "workplaceId": 4,
  "positionId": "4",
  "userId": 4,
  "note": "abc123",
  "id": "4",
  "since": "2007-12-03",
  "till": "2007-12-03"
}

ShiftUpdatePayload

Fields
Field Name Description
shift - Shift!
Example
{"shift": Shift}

ShiftsConnection

Fields
Field Name Description
edges - [ShiftsConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [ShiftsConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

ShiftsConnectionEdge

Fields
Field Name Description
node - Shift Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": Shift,
  "cursor": "xyz789"
}

SortDirection

Values
Enum Value Description

ASC

DESC

Example
"ASC"

Status

Fields
Field Name Description
apiStatus - ApiStatusEnum!
Example
{"apiStatus": "OK"}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

TextFilter

Fields
Input Field Description
equals - String
like - String
ilike - String
Example
{
  "equals": "xyz789",
  "like": "abc123",
  "ilike": "abc123"
}

Time

Example
"10:15:30Z"

TimeClock

Fields
Field Name Description
id - ID!
name - String
mode - TimeClockModeEnum!
showInput - Boolean!
authorization - TimeClockAuthorization!
Example
{
  "id": 4,
  "name": "xyz789",
  "mode": "INTERACTIVE",
  "showInput": false,
  "authorization": TimeClockAuthorization
}

TimeClockAuthorization

Fields
Field Name Description
storage - TimeClockAuthorizationStorageEnum!
Example
{"storage": "URL"}

TimeClockAuthorizationStorageEnum

Values
Enum Value Description

URL

LOCAL_STORAGE

Example
"URL"

TimeClockLoginInput

Fields
Input Field Description
pin - String!
Example
{"pin": "xyz789"}

TimeClockLoginPayload

Fields
Field Name Description
timeClock - TimeClock!
token - String!
Example
{
  "timeClock": TimeClock,
  "token": "abc123"
}

TimeClockModeEnum

Values
Enum Value Description

INTERACTIVE

NON_INTERACTIVE

USER_TERMINAL

Example
"INTERACTIVE"

TimeClockPassThroughImportInput

Fields
Input Field Description
cardCode - String
userExternalId - String
timeClockExternalId - String!
type - TimeClockPassThroughTypeEnum!
checkedAt - Date
externalId - String
Example
{
  "cardCode": "xyz789",
  "userExternalId": "xyz789",
  "timeClockExternalId": "abc123",
  "type": "CHECKED_IN",
  "checkedAt": "2007-12-03",
  "externalId": "xyz789"
}

TimeClockPassThroughInput

Fields
Input Field Description
timeClockId - ID!
cardCode - String!
Example
{
  "timeClockId": "4",
  "cardCode": "abc123"
}

TimeClockPassThroughPayload

Fields
Field Name Description
type - TimeClockPassThroughTypeEnum!
checked - Boolean!
message - String
Example
{
  "type": "CHECKED_IN",
  "checked": true,
  "message": "xyz789"
}

TimeClockPassThroughTypeEnum

Values
Enum Value Description

CHECKED_IN

CHECKED_OUT

break

Example
"CHECKED_IN"

TimeClockPassThroughsImportInput

Fields
Input Field Description
timeClockPassThroughs - [TimeClockPassThroughImportInput!]
Example
{
  "timeClockPassThroughs": [
    TimeClockPassThroughImportInput
  ]
}

TimeClockPassThroughsImportPayload

Fields
Field Name Description
importId - ID!
Example
{"importId": 4}

TimeClockStatusInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

TimeClockStatusPayload

Fields
Field Name Description
id - ID!
Example
{"id": 4}

TimeClockUserOneTimeLoginInput

Fields
Input Field Description
timeClockId - ID!
cardCode - String!
Example
{
  "timeClockId": "4",
  "cardCode": "xyz789"
}

TimeClockUserOneTimeLoginPayload

Fields
Field Name Description
redirectUrl - String
errorMessage - String
user - User
Example
{
  "redirectUrl": "xyz789",
  "errorMessage": "abc123",
  "user": User
}

UnavailabilityImportInput

Fields
Input Field Description
externalId - String
since - Date!
till - Date!
unavailabilityTypeExternalId - String
Example
{
  "externalId": "abc123",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "unavailabilityTypeExternalId": "abc123"
}

User

Fields
Field Name Description
id - ID!
externalId - String
email - String
username - String
personalNumber - String
birthdate - Date
birthNumber - String
passportNumber - String
identityCardNumber - String
employeeCardNumber - String
phone - String
firstName - String!
lastName - String
title - String
gender - Gender
fullName - String!
mainWorkplace - Workplace!
rating - Float
hasAccount - Boolean!
userGroups - [UserGroup!]
shiftPlanning - UserShiftPlanning!
attendance - UserAttendance!
roles - [UserRole!]
Arguments
filter - UserRolesFilter
attendances - [Attendance!]
Arguments
customFieldValues - [UserCustomFieldValue!]
shifts - [Shift!]
Arguments
filter - UserShiftsFilter
sort - [ShiftSort]
availabilities - [Availability!]
Arguments
note - String
superior - User
iCals - [UserICal!]
avatar - File
Example
{
  "id": "4",
  "externalId": "abc123",
  "email": "abc123",
  "username": "abc123",
  "personalNumber": "xyz789",
  "birthdate": "2007-12-03",
  "birthNumber": "xyz789",
  "passportNumber": "xyz789",
  "identityCardNumber": "xyz789",
  "employeeCardNumber": "abc123",
  "phone": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "title": "xyz789",
  "gender": "MALE",
  "fullName": "xyz789",
  "mainWorkplace": Workplace,
  "rating": 123.45,
  "hasAccount": true,
  "userGroups": [UserGroup],
  "shiftPlanning": UserShiftPlanning,
  "attendance": UserAttendance,
  "roles": [UserRole],
  "attendances": [Attendance],
  "customFieldValues": [UserCustomFieldValue],
  "shifts": [Shift],
  "availabilities": [Availability],
  "note": "abc123",
  "superior": User,
  "iCals": [UserICal],
  "avatar": File
}

UserAbsencesInput

Fields
Input Field Description
since - Date
till - Date
absenceTypeExternalId - String
absenceTypeId - String
Example
{
  "since": "2007-12-03",
  "till": "2007-12-03",
  "absenceTypeExternalId": "abc123",
  "absenceTypeId": "abc123"
}

UserAddWorkplacesInput

Fields
Input Field Description
userId - ID!
workplaceIds - [ID!]!
Example
{"userId": 4, "workplaceIds": [4]}

UserAddWorkplacesPayload

Fields
Field Name Description
user - User!
Example
{"user": User}

UserAllocationInput

Fields
Input Field Description
externalId - String
since - Date!
till - Date!
rootWorkplaceExternalIds - [String!]
positionExternalIds - [String!]
Example
{
  "externalId": "xyz789",
  "since": "2007-12-03",
  "till": "2007-12-03",
  "rootWorkplaceExternalIds": ["xyz789"],
  "positionExternalIds": ["xyz789"]
}

UserAssignPushTokenInput

Fields
Input Field Description
token - String!
appId - String!
Example
{
  "token": "abc123",
  "appId": "xyz789"
}

UserAttendance

Fields
Field Name Description
enabled - Boolean!
workedHours - Float
funds - [UserAttendanceFund!]
Example
{
  "enabled": true,
  "workedHours": 987.65,
  "funds": [UserAttendanceFund]
}

UserAttendanceFund

Fields
Field Name Description
id - ID!
attendanceFund - AttendanceFund!
drawings - [UserAttendanceFundDrawing!]
currentDrawing - UserAttendanceFundDrawing
Example
{
  "id": 4,
  "attendanceFund": AttendanceFund,
  "drawings": [UserAttendanceFundDrawing],
  "currentDrawing": UserAttendanceFundDrawing
}

UserAttendanceFundDrawing

Fields
Field Name Description
id - ID!
year - Int!
month - Int
toDraw - Float!
Example
{
  "id": "4",
  "year": 123,
  "month": 123,
  "toDraw": 987.65
}

UserAttendanceWorkedHoursFilter

Fields
Input Field Description
datePeriod - DateRangeFilter
Example
{"datePeriod": DateRangeFilter}

UserAttendancesFilter

Fields
Input Field Description
since - DateFilter
till - DateFilter
attendanceType - AttendanceAttendanceTypeFilter
Example
{
  "since": DateFilter,
  "till": DateFilter,
  "attendanceType": AttendanceAttendanceTypeFilter
}

UserAvailabilitiesFilter

Fields
Input Field Description
since - DateFilter!
Example
{"since": DateFilter}

UserAvatarRemoveInput

Fields
Input Field Description
userId - ID!
Example
{"userId": 4}

UserAvatarRemovePayload

Fields
Field Name Description
user - User!
Example
{"user": User}

UserAvatarSetInput

Fields
Input Field Description
userId - ID!
fileUploadToken - String!
Example
{"userId": 4, "fileUploadToken": "abc123"}

UserAvatarSetPayload

Fields
Field Name Description
user - User!
Example
{"user": User}

UserCreateInput

Fields
Input Field Description
fullName - String!
scheduleExternalId - String
scheduleSince - Date
scheduleTill - Date
sendCredentials - Boolean
id - ID
externalId - String
firstName - String
surname - String
email - String
title - String
gender - Gender
personalNumber - String
phone - String
note - String
birthdate - Date
birthNumber - String
passportNumber - String
identityCardNumber - String
employeeCardNumber - String
mainWorkplaceId - ID
mainWorkplaceExternalId - String
superiorId - ID
superiorExternalId - String
shiftPlanning - UserShiftPlanningInput
workplaceIds - [ID!]
positionIds - [ID!]
workplaceExternalIds - [String!]
positionExternalIds - [String!]
customFieldValues - [UserCustomFieldValueInput!]
allocations - [UserAllocationInput!]
employments - [EmploymentImportInput!]
unavailabilities - [UnavailabilityImportInput!]
Example
{
  "fullName": "xyz789",
  "scheduleExternalId": "xyz789",
  "scheduleSince": "2007-12-03",
  "scheduleTill": "2007-12-03",
  "sendCredentials": true,
  "id": "4",
  "externalId": "xyz789",
  "firstName": "abc123",
  "surname": "abc123",
  "email": "xyz789",
  "title": "xyz789",
  "gender": "MALE",
  "personalNumber": "xyz789",
  "phone": "abc123",
  "note": "xyz789",
  "birthdate": "2007-12-03",
  "birthNumber": "abc123",
  "passportNumber": "abc123",
  "identityCardNumber": "abc123",
  "employeeCardNumber": "xyz789",
  "mainWorkplaceId": 4,
  "mainWorkplaceExternalId": "xyz789",
  "superiorId": "4",
  "superiorExternalId": "xyz789",
  "shiftPlanning": UserShiftPlanningInput,
  "workplaceIds": [4],
  "positionIds": [4],
  "workplaceExternalIds": ["abc123"],
  "positionExternalIds": ["xyz789"],
  "customFieldValues": [UserCustomFieldValueInput],
  "allocations": [UserAllocationInput],
  "employments": [EmploymentImportInput],
  "unavailabilities": [UnavailabilityImportInput]
}

UserCreatePayload

Fields
Field Name Description
user - User!
Example
{"user": User}

UserCustomFieldValue

Fields
Field Name Description
value - String
validSince - Date Start of the value's validity (versioned fields only).
validTill - Date End of the value's validity; null = currently valid (versioned fields only).
user - User!
customField - CustomField!
Example
{
  "value": "abc123",
  "validSince": "2007-12-03",
  "validTill": "2007-12-03",
  "user": User,
  "customField": CustomField
}

UserCustomFieldValueInput

Fields
Input Field Description
customFieldName - String
customFieldExternalId - String
value - String
optionExternalId - String
Example
{
  "customFieldName": "abc123",
  "customFieldExternalId": "abc123",
  "value": "xyz789",
  "optionExternalId": "xyz789"
}

UserDeleteInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

UserDeletePayload

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

UserEnrollInput

Fields
Input Field Description
password - String!
enrollToken - String!
serviceTermsAccepted - Boolean!
Example
{
  "password": "abc123",
  "enrollToken": "abc123",
  "serviceTermsAccepted": true
}

UserEnrollPayload

Fields
Field Name Description
user - User!
token - String!
Example
{
  "user": User,
  "token": "xyz789"
}

UserGroup

Fields
Field Name Description
id - ID!
name - String!
Example
{
  "id": "4",
  "name": "xyz789"
}

UserGroupsConnection

Fields
Field Name Description
edges - [UserGroupsConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [UserGroupsConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

UserGroupsConnectionEdge

Fields
Field Name Description
node - UserGroup Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": UserGroup,
  "cursor": "abc123"
}

UserICal

Fields
Field Name Description
type - String!
url - String
enabled - Boolean!
Example
{
  "type": "abc123",
  "url": "abc123",
  "enabled": false
}

UserICalTypeEnum

Values
Enum Value Description

USER

Example
"USER"

UserImport

Fields
Field Name Description
id - ID
externalId - String
fullName - String
firstName - String
surname - String
email - String
phone - String
note - String
mainWorkplaceId - ID
mainWorkplaceExternalId - String
superiorId - ID
superiorExternalId - String
shiftPlanningEnabled - Boolean
scheduleExternalId - String
scheduleSince - Date
scheduleTill - Date
username - String Field username is deprecated and will be ignored.
personalNumber - String
Example
{
  "id": "4",
  "externalId": "abc123",
  "fullName": "abc123",
  "firstName": "xyz789",
  "surname": "xyz789",
  "email": "xyz789",
  "phone": "xyz789",
  "note": "abc123",
  "mainWorkplaceId": "4",
  "mainWorkplaceExternalId": "xyz789",
  "superiorId": 4,
  "superiorExternalId": "xyz789",
  "shiftPlanningEnabled": true,
  "scheduleExternalId": "xyz789",
  "scheduleSince": "2007-12-03",
  "scheduleTill": "2007-12-03",
  "username": "xyz789",
  "personalNumber": "abc123"
}

UserImportError

Fields
Field Name Description
message - String!
path - [String!]
Example
{
  "message": "abc123",
  "path": ["xyz789"]
}

UserImportErrorPayload

Fields
Field Name Description
input - UserImport!
errors - [UserImportError!]!
Example
{
  "input": UserImport,
  "errors": [UserImportError]
}

UserImportInput

Fields
Input Field Description
fullName - String
scheduleExternalId - String
scheduleSince - Date
scheduleTill - Date
id - ID
externalId - String
firstName - String
surname - String
email - String
title - String
gender - Gender
personalNumber - String
phone - String
note - String
birthdate - Date
birthNumber - String
passportNumber - String
identityCardNumber - String
employeeCardNumber - String
mainWorkplaceId - ID
mainWorkplaceExternalId - String
superiorId - ID
superiorExternalId - String
shiftPlanning - UserShiftPlanningInput
workplaceIds - [ID!]
positionIds - [ID!]
workplaceExternalIds - [String!]
positionExternalIds - [String!]
customFieldValues - [UserCustomFieldValueInput!]
allocations - [UserAllocationInput!]
employments - [EmploymentImportInput!]
unavailabilities - [UnavailabilityImportInput!]
Example
{
  "fullName": "xyz789",
  "scheduleExternalId": "xyz789",
  "scheduleSince": "2007-12-03",
  "scheduleTill": "2007-12-03",
  "id": "4",
  "externalId": "abc123",
  "firstName": "xyz789",
  "surname": "xyz789",
  "email": "xyz789",
  "title": "abc123",
  "gender": "MALE",
  "personalNumber": "abc123",
  "phone": "abc123",
  "note": "xyz789",
  "birthdate": "2007-12-03",
  "birthNumber": "xyz789",
  "passportNumber": "abc123",
  "identityCardNumber": "abc123",
  "employeeCardNumber": "xyz789",
  "mainWorkplaceId": 4,
  "mainWorkplaceExternalId": "xyz789",
  "superiorId": "4",
  "superiorExternalId": "xyz789",
  "shiftPlanning": UserShiftPlanningInput,
  "workplaceIds": [4],
  "positionIds": ["4"],
  "workplaceExternalIds": ["abc123"],
  "positionExternalIds": ["abc123"],
  "customFieldValues": [UserCustomFieldValueInput],
  "allocations": [UserAllocationInput],
  "employments": [EmploymentImportInput],
  "unavailabilities": [UnavailabilityImportInput]
}

UserImportSuccessPayload

Fields
Field Name Description
user - User!
Example
{"user": User}

UserInviteInput

Fields
Input Field Description
fullName - String!
email - String!
phone - String
inviteToken - String!
serviceTermsAccepted - Boolean!
Example
{
  "fullName": "abc123",
  "email": "xyz789",
  "phone": "abc123",
  "inviteToken": "xyz789",
  "serviceTermsAccepted": true
}

UserPasswordResetInput

Fields
Input Field Description
token - String!
password - String!
Example
{
  "token": "xyz789",
  "password": "abc123"
}

UserPasswordResetRequestInput

Fields
Input Field Description
username - String!
Example
{"username": "abc123"}

UserRemovePushTokenInput

Fields
Input Field Description
appId - String!
Example
{"appId": "abc123"}

UserRemoveWorkplacesInput

Fields
Input Field Description
userId - ID!
workplaceIds - [ID!]!
Example
{"userId": 4, "workplaceIds": [4]}

UserRole

Fields
Field Name Description
id - UserRoleEnum!
name - String!
workplaces - [Workplace!]
Example
{
  "id": "USER",
  "name": "abc123",
  "workplaces": [Workplace]
}

UserRoleEnum

Values
Enum Value Description

USER

ORGANIZATION_ADMIN

ORGANIZATION_ONBOARDING

POSITION_ADMIN

SHIFT_TIME_ADMIN

SHIFT_PLANNING_ADMIN

SHIFT_PLANNING_READ

ATTENDANCE_ADMIN

ATTENDANCE_READ

ATTENDANCE_READ_SELF_WORKED_HOURS

ATTENDANCE_READ_SELF_FUNDS

ATTENDANCE_PRESENCE_LOG_ADMIN

APPROVAL_REQUEST_RESOLVE

USER_ADMIN

USER_READ

Example
"USER"

UserRolesFilter

Fields
Input Field Description
roleId - IdFilter
workplaceId - IdFilter
Example
{
  "roleId": IdFilter,
  "workplaceId": IdFilter
}

UserShiftPlanning

Fields
Field Name Description
enabled - Boolean!
positions - [Position!]
workplaces - [Workplace!]
stats - UserShiftPlanningStats!
shifts - UserShiftPlanningShifts!
shiftPatterns - UserShiftPlanningShiftPatterns!
availabilities - UserShiftPlanningAvailabilities!
Example
{
  "enabled": false,
  "positions": [Position],
  "workplaces": [Workplace],
  "stats": UserShiftPlanningStats,
  "shifts": UserShiftPlanningShifts,
  "shiftPatterns": UserShiftPlanningShiftPatterns,
  "availabilities": UserShiftPlanningAvailabilities
}

UserShiftPlanningAvailabilities

Fields
Field Name Description
enabled - Boolean!
Example
{"enabled": true}

UserShiftPlanningInput

Fields
Input Field Description
enabled - Boolean
Example
{"enabled": false}

UserShiftPlanningShiftPatterns

Fields
Field Name Description
available - [ShiftPattern!]
Example
{"available": [ShiftPattern]}

UserShiftPlanningShiftPatternsAvailableFilter

Fields
Input Field Description
since - DateFilter
workplaceId - WorkplaceIdFilter
Example
{
  "since": DateFilter,
  "workplaceId": WorkplaceIdFilter
}

UserShiftPlanningShifts

Fields
Field Name Description
offered - [Shift!]
available - [Shift!]
Example
{
  "offered": [Shift],
  "available": [Shift]
}

UserShiftPlanningShiftsAvailableFilter

Fields
Input Field Description
since - DateFilter
workplaceId - WorkplaceIdFilter
Example
{
  "since": DateFilter,
  "workplaceId": WorkplaceIdFilter
}

UserShiftPlanningShiftsOfferedFilter

Fields
Input Field Description
since - DateFilter
workplaceId - WorkplaceIdFilter
Example
{
  "since": DateFilter,
  "workplaceId": WorkplaceIdFilter
}

UserShiftPlanningStats

Fields
Field Name Description
daysFromLastShift - Int
totalWorkedHours - Float
Example
{"daysFromLastShift": 123, "totalWorkedHours": 123.45}

UserShiftsFilter

Fields
Input Field Description
since - DateFilter
includeScheduleShifts - BooleanFilter
Example
{
  "since": DateFilter,
  "includeScheduleShifts": BooleanFilter
}

UserShiftsInput

Fields
Input Field Description
since - Date
till - Date
date - Date
shiftTimeId - ID
shiftTimeExternalId - String
workplaceExternalId - String
workplaceId - String
positionId - String
positionExternalId - String
absenceTypeId - String
absenceTypeExternalId - String
Example
{
  "since": "2007-12-03",
  "till": "2007-12-03",
  "date": "2007-12-03",
  "shiftTimeId": "4",
  "shiftTimeExternalId": "xyz789",
  "workplaceExternalId": "abc123",
  "workplaceId": "xyz789",
  "positionId": "abc123",
  "positionExternalId": "abc123",
  "absenceTypeId": "xyz789",
  "absenceTypeExternalId": "xyz789"
}

UserSort

Fields
Input Field Description
totalWorkedHours - SortDirection
lastShiftDate - SortDirection
rating - SortDirection
fullName - SortDirection
Example
{
  "totalWorkedHours": "ASC",
  "lastShiftDate": "ASC",
  "rating": "ASC",
  "fullName": "ASC"
}

UserUpdateInput

Fields
Input Field Description
id - ID!
externalId - String
fullName - String
firstName - String
surname - String
email - String
title - String
gender - Gender
personalNumber - String
phone - String
note - String
birthdate - Date
birthNumber - String
passportNumber - String
identityCardNumber - String
employeeCardNumber - String
mainWorkplaceId - ID
mainWorkplaceExternalId - String
superiorId - ID
superiorExternalId - String
shiftPlanning - UserShiftPlanningInput
workplaceIds - [ID!]
positionIds - [ID!]
workplaceExternalIds - [String!]
positionExternalIds - [String!]
customFieldValues - [UserCustomFieldValueInput!]
allocations - [UserAllocationInput!]
employments - [EmploymentImportInput!]
unavailabilities - [UnavailabilityImportInput!]
Example
{
  "id": 4,
  "externalId": "xyz789",
  "fullName": "xyz789",
  "firstName": "abc123",
  "surname": "xyz789",
  "email": "abc123",
  "title": "xyz789",
  "gender": "MALE",
  "personalNumber": "xyz789",
  "phone": "abc123",
  "note": "abc123",
  "birthdate": "2007-12-03",
  "birthNumber": "abc123",
  "passportNumber": "xyz789",
  "identityCardNumber": "xyz789",
  "employeeCardNumber": "abc123",
  "mainWorkplaceId": "4",
  "mainWorkplaceExternalId": "abc123",
  "superiorId": "4",
  "superiorExternalId": "abc123",
  "shiftPlanning": UserShiftPlanningInput,
  "workplaceIds": [4],
  "positionIds": [4],
  "workplaceExternalIds": ["xyz789"],
  "positionExternalIds": ["abc123"],
  "customFieldValues": [UserCustomFieldValueInput],
  "allocations": [UserAllocationInput],
  "employments": [EmploymentImportInput],
  "unavailabilities": [UnavailabilityImportInput]
}

UsersAbsencesImportInput

Fields
Input Field Description
usersAbsences - [UsersAbsencesInput!]
Example
{"usersAbsences": [UsersAbsencesInput]}

UsersAbsencesImportPayload

Fields
Field Name Description
importId - ID!
Example
{"importId": 4}

UsersAbsencesInput

Fields
Input Field Description
userId - ID
userExternalId - String
absences - [UserAbsencesInput!]
period - UsersAbsencesPeriodInput
Example
{
  "userId": 4,
  "userExternalId": "abc123",
  "absences": [UserAbsencesInput],
  "period": UsersAbsencesPeriodInput
}

UsersAbsencesPeriodCurrentAbsencesEnum

Values
Enum Value Description

KEEP

DELETE

Example
"KEEP"

UsersAbsencesPeriodInput

Fields
Input Field Description
since - Date!
till - Date!
currentAbsences - UsersAbsencesPeriodCurrentAbsencesEnum!
Example
{
  "since": "2007-12-03",
  "till": "2007-12-03",
  "currentAbsences": "KEEP"
}

UsersBatchDeleteInput

Fields
Input Field Description
ids - [ID!]
externalIds - [String!]
Example
{"ids": [4], "externalIds": ["xyz789"]}

UsersBatchDeletePayload

Fields
Field Name Description
deletedCount - Int!
Example
{"deletedCount": 987}

UsersConnection

Fields
Field Name Description
edges - [UsersConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [UsersConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

UsersConnectionEdge

Fields
Field Name Description
node - User Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": User,
  "cursor": "xyz789"
}

UsersFilter

Fields
Input Field Description
fullName - TextFilter
positionId - IdFilter
userGroupId - IdFilter
mainWorkplaceId - WorkplaceIdFilter
shiftPlanningEnabled - BooleanFilter
attendance - DateRangeFilter
externalId - NullableStringFilter
Example
{
  "fullName": TextFilter,
  "positionId": IdFilter,
  "userGroupId": IdFilter,
  "mainWorkplaceId": WorkplaceIdFilter,
  "shiftPlanningEnabled": BooleanFilter,
  "attendance": DateRangeFilter,
  "externalId": NullableStringFilter
}

UsersImportInput

Fields
Input Field Description
users - [UserImportInput!]
Example
{"users": [UserImportInput]}

UsersImportPayload

Fields
Field Name Description
imported - [UserImportSuccessPayload!]
failed - [UserImportErrorPayload!]
Example
{
  "imported": [UserImportSuccessPayload],
  "failed": [UserImportErrorPayload]
}

UsersShiftsImportInput

Fields
Input Field Description
usersShifts - [UsersShiftsInput!]
Example
{"usersShifts": [UsersShiftsInput]}

UsersShiftsImportPayload

Fields
Field Name Description
importId - ID!
Example
{"importId": "4"}

UsersShiftsInput

Fields
Input Field Description
userId - ID
userExternalId - String
shifts - [UserShiftsInput!]
period - UsersShiftsPeriodInput
Example
{
  "userId": 4,
  "userExternalId": "abc123",
  "shifts": [UserShiftsInput],
  "period": UsersShiftsPeriodInput
}

UsersShiftsPeriodCurrentShiftsEnum

Values
Enum Value Description

KEEP

DELETE

UNASSIGN_USER

Example
"KEEP"

UsersShiftsPeriodInput

Fields
Input Field Description
since - Date!
till - Date!
currentShifts - UsersShiftsPeriodCurrentShiftsEnum!
Example
{
  "since": "2007-12-03",
  "till": "2007-12-03",
  "currentShifts": "KEEP"
}

Void

Workplace

Fields
Field Name Description
id - ID!
externalId - String
parent - Workplace
name - String!
fullName - String!
uniqueName - String!
color - String
tags - [String!]
rank - Float!
treeRank - Float!
hasDescendants - Boolean!
shiftPlanning - WorkplaceShiftPlanning!
customFieldValues - [WorkplaceCustomFieldValue!]
address - Address
Example
{
  "id": "4",
  "externalId": "xyz789",
  "parent": Workplace,
  "name": "abc123",
  "fullName": "xyz789",
  "uniqueName": "abc123",
  "color": "xyz789",
  "tags": ["xyz789"],
  "rank": 987.65,
  "treeRank": 123.45,
  "hasDescendants": false,
  "shiftPlanning": WorkplaceShiftPlanning,
  "customFieldValues": [WorkplaceCustomFieldValue],
  "address": Address
}

WorkplaceCustomFieldValue

Fields
Field Name Description
value - String
workplace - User!
customField - CustomField!
Example
{
  "value": "xyz789",
  "workplace": User,
  "customField": CustomField
}

WorkplaceIdFilter

Fields
Input Field Description
equal - ID
in - [ID!]
root - ID
Example
{
  "equal": "4",
  "in": [4],
  "root": "4"
}

WorkplaceImportError

Fields
Field Name Description
message - String!
path - [String!]
Example
{
  "message": "xyz789",
  "path": ["xyz789"]
}

WorkplaceImportErrorOutput

Fields
Field Name Description
address - Address
id - ID
externalId - String
name - String
parentId - ID
parentExternalId - String
Example
{
  "address": Address,
  "id": "4",
  "externalId": "abc123",
  "name": "xyz789",
  "parentId": "4",
  "parentExternalId": "abc123"
}

WorkplaceImportErrorPayload

Fields
Field Name Description
input - WorkplaceImportErrorOutput!
errors - [WorkplaceImportError!]!
Example
{
  "input": WorkplaceImportErrorOutput,
  "errors": [WorkplaceImportError]
}

WorkplaceImportInput

Fields
Input Field Description
id - ID
externalId - String
name - String
parentId - ID
parentExternalId - String
address - AddressInput
Example
{
  "id": "4",
  "externalId": "abc123",
  "name": "abc123",
  "parentId": 4,
  "parentExternalId": "xyz789",
  "address": AddressInput
}

WorkplaceImportSuccessPayload

Fields
Field Name Description
workplace - Workplace!
Example
{"workplace": Workplace}

WorkplaceShiftPlanning

Fields
Field Name Description
enabled - Boolean!
Example
{"enabled": true}

WorkplacesConnection

Fields
Field Name Description
edges - [WorkplacesConnectionEdge] Edges of the connection
pageInfo - PageInfo Page info of the connection
totalCount - Int Total count of items in the connection.
Example
{
  "edges": [WorkplacesConnectionEdge],
  "pageInfo": PageInfo,
  "totalCount": 987
}

WorkplacesConnectionEdge

Fields
Field Name Description
node - Workplace Node of the Edge
cursor - String! The edge cursor
Example
{
  "node": Workplace,
  "cursor": "abc123"
}

WorkplacesFilter

Fields
Input Field Description
parentId - IdEqualFilter
search - SearchFilter
Example
{
  "parentId": IdEqualFilter,
  "search": SearchFilter
}

WorkplacesImportInput

Fields
Input Field Description
workplaces - [WorkplaceImportInput!]
Example
{"workplaces": [WorkplaceImportInput]}

WorkplacesImportPayload

Fields
Field Name Description
imported - [WorkplaceImportSuccessPayload!]
failed - [WorkplaceImportErrorPayload!]
Example
{
  "imported": [WorkplaceImportSuccessPayload],
  "failed": [WorkplaceImportErrorPayload]
}

approvalRequestTypeStats

Fields
Field Name Description
type - ApprovalRequestType!
pendingCount - Int!
Example
{"type": "ATTENDANCE", "pendingCount": 987}

keyValue

Fields
Field Name Description
key - String!
value - String!
Example
{
  "key": "xyz789",
  "value": "xyz789"
}