Dokumentacja dla programistów

Dostępność

Aktualizacja 2026-09-14

Dostępność zasobów składa się z trzech niezależnych warstw: harmonogramu pracy (dni i godziny pracy danego zasobu), harmonogramu dni wolnych firmy (święta i firmowe dni wolne) oraz prywatnego czasu wolnego (PTO). W przypadku użytkowników i zespołów, którym nie przypisano jawnie harmonogramu, stosowane są domyślne harmonogramy pracy i dni wolnych na poziomie konta.

Tymi warstwami zarządzasz w sekcji Administracja (Administration) → Ogólne (General) → Harmonogramy (Schedules). Przypisanie harmonogramu do zespołu nie zmienia przypisań poszczególnych członków. Harmonogramy zespołów mają zastosowanie, gdy zespół jest przypisanym zasobem w widżecie Obciążenie pracą.

Dostępne tylko w wersjach API 2026-10 i nowszych

  • 🚧 Dostępne tylko w planach Pro i Enterprise
  • Ta funkcja jest we wczesnej fazie wdrażania i stopniowo udostępniana. W przypadku kont, na których nie została włączona, zwracany jest błąd FEATURE_NOT_ENABLED.

Typy danych wejściowych i wynikowych oraz wyliczenia używane poniżej opisano w sekcji Inne typy dotyczące dostępności.

Uprawnienia

Są to uprawnienia na poziomie konta, a nie zakresy OAuth. Osobiste tokeny API podlegają uprawnieniom użytkownika wywołującego. Tokeny aplikacji wymagają również odpowiedniego uprawnienia konta przypisanego użytkownikowi wykonującemu działanie.

Uprawnienie Wymagane do
view_schedules Wszystkie zapytania
edit_schedules Tworzenia, aktualizowania i usuwania harmonogramów pracy, harmonogramów dni wolnych firmy oraz wpisów czasu wolnego. Tworzenia, aktualizowania i usuwania PTO innych użytkowników.
assign_users_to_schedules Przypisywania i odłączania harmonogramów pracy oraz harmonogramów dni wolnych firmy
update_own_personal_time_off Tworzenia, aktualizowania i usuwania własnych wpisów PTO, jeśli nie masz uprawnienia edit_schedules

Bez uprawnienia edit_schedules zapytanie user_pto zwraca tylko wpisy wywołującego, niezależnie od przekazanych wartości user_ids.

Zapytania

  • 🚧 Dostępne tylko w planach Pro i Enterprise
  • Wymagany zakres: brak - to API używa uprawnień na poziomie konta, a nie zakresów OAuth
  • Uprawnienie na poziomie konta: view_schedules

Pobieranie harmonogramów pracy

  • Wymagany zakres: brak
  • Uprawnienie na poziomie konta: view_schedules
  • Zwraca WorkSchedulePage
  • Można wykonać bezpośrednio na poziomie głównym; nie można zagnieżdżać w innym zapytaniu
query {
  work_schedules(limit: 25) {
    work_schedules {
      id
      name
      is_default
      days {
        week_day
        is_active
        start_time
        end_time
      }
    }
    cursor
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken, apiVersion: "2026-10" });

const query = `query { work_schedules(limit: 25) { work_schedules { id name is_default } cursor } }`;
const response = await mondayApiClient.request(query);

Argumenty

Argument Typ Opis
ids [ID!] Pobiera harmonogramy o określonych identyfikatorach. Maksymalnie 100. Nie można łączyć z limit, name ani cursor. Nieznane identyfikatory są pomijane.
limit Int Maksymalna liczba harmonogramów do zwrócenia. Domyślnie: 20. Maksymalnie: 500. Nie można łączyć z ids.
name String Filtruje według nazwy harmonogramu (fragment tekstu bez uwzględniania wielkości liter). Maksymalnie 255 znaków. Nie można łączyć z ids ani cursor.
cursor String Kursor z poprzedniej odpowiedzi, który pozwala pobrać następną stronę. Nie można łączyć z ids ani name.

Pola

Pole Typ Opis
work_schedules [WorkSchedule!]! Harmonogramy pracy na tej stronie wyników.
cursor String Kursor do pobrania następnej strony. Zwraca null, gdy nie ma kolejnych wyników.

Pobieranie harmonogramów dni wolnych

  • Wymagany zakres: brak
  • Uprawnienie na poziomie konta: view_schedules
  • Zwraca TimesOffPage
  • Można wykonać bezpośrednio na poziomie głównym; nie można zagnieżdżać w innym zapytaniu
query {
  time_offs(limit: 25) {
    time_offs {
      id
      name
      is_default
      entries {
        id
        name
        start
        end
      }
    }
    cursor
  }
}

Wszystkie wpisy w harmonogramie są zwracane bezpośrednio. Nie ma osobnej paginacji wpisów.

Argumenty

Argument Typ Opis
ids [ID!] Pobiera harmonogramy dni wolnych o określonych identyfikatorach. Maksymalnie 100. Nie można łączyć z limit, name ani cursor.
limit Int Maksymalna liczba harmonogramów do zwrócenia. Domyślnie: 20. Maksymalnie: 500. Nie można łączyć z ids.
name String Filtruje według nazwy harmonogramu (fragment tekstu bez uwzględniania wielkości liter). Maksymalnie 255 znaków. Nie można łączyć z ids ani cursor.
cursor String Kursor z poprzedniej odpowiedzi, który pozwala pobrać następną stronę. Nie można łączyć z ids ani name.

Pola

Pole Typ Opis
time_offs [TimeOff!]! Harmonogramy dni wolnych na tej stronie wyników.
cursor String Kursor do pobrania następnej strony. Zwraca null, gdy nie ma kolejnych wyników.

Pobieranie dostępności zasobów

  • Wymagany zakres: brak
  • Uprawnienie na poziomie konta: view_schedules
  • Zwraca ResourcesAvailability
  • Można wykonać bezpośrednio na poziomie głównym; nie można zagnieżdżać w innym zapytaniu
query {
  resources_availability(user_ids: ["1234567890"], team_ids: ["9876543210"]) {
    users_assigned_schedules {
      user_id
      work_schedule_id
      company_time_off_id
      personal_time_offs {
        id
        start
        end
      }
    }
    teams_assigned_schedules {
      team_id
      work_schedule_id
      company_time_off_id
    }
    work_schedules {
      id
      name
    }
    company_time_offs {
      id
      name
    }
    default_work_schedule_id
    default_company_time_off_id
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken, apiVersion: "2026-10" });

const query = `query ($userIds: [ID!], $teamIds: [ID!]) { resources_availability(user_ids: $userIds, team_ids: $teamIds) { users_assigned_schedules { user_id work_schedule_id company_time_off_id } teams_assigned_schedules { team_id work_schedule_id company_time_off_id } default_work_schedule_id default_company_time_off_id } }`;
const variables = {
  userIds: ["1234567890"],
  teamIds: ["9876543210"]
};

const response = await mondayApiClient.request(query, variables);

To zapytanie nie obsługuje paginacji. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids. Porównaj work_schedule_id z default_work_schedule_id, aby sprawdzić, czy zasób korzysta z harmonogramu domyślnego dla konta. Aby znaleźć identyfikatory, użyj API users i teams.

Argumenty

Argument Typ Opis
user_ids [ID!] Identyfikatory użytkowników, dla których mają zostać pobrane przypisania. Maksymalnie 100. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids.
team_ids [ID!] Identyfikatory zespołów, dla których mają zostać pobrane przypisania. Maksymalnie 100. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids.

Pola

Pole Typ Opis
users_assigned_schedules [UserAssignment!]! Przypisania harmonogramów dla każdego wskazanego użytkownika.
teams_assigned_schedules [TeamAssignment!]! Przypisania harmonogramów dla każdego wskazanego zespołu.
work_schedules [WorkSchedule!]! Unikatowe harmonogramy pracy wskazane w przypisaniach w tej odpowiedzi oraz domyślny harmonogram konta.
company_time_offs [TimeOff!]! Unikatowe harmonogramy dni wolnych firmy wskazane w przypisaniach w tej odpowiedzi oraz domyślny harmonogram konta.
default_work_schedule_id ID! Identyfikator domyślnego harmonogramu pracy na poziomie konta.
default_company_time_off_id ID! Identyfikator domyślnego harmonogramu dni wolnych firmy na poziomie konta.

Pobieranie domyślnych ustawień dostępności konta

  • Wymagany zakres: brak
  • Uprawnienie na poziomie konta: view_schedules
  • Zwraca AccountAvailabilityDefaults
  • Można wykonać bezpośrednio na poziomie głównym; nie można zagnieżdżać w innym zapytaniu
query {
  account_availability_defaults {
    work_schedule {
      id
      name
      days {
        week_day
        is_active
        start_time
        end_time
      }
    }
    time_off {
      id
      name
      entries {
        id
        name
        start
        end
      }
    }
  }
}

To zapytanie zawsze zwraca wynik. Domyślne harmonogramy są tworzone automatycznie, gdy są potrzebne po raz pierwszy.

Pola

Pole Typ Opis
work_schedule WorkSchedule! Domyślny harmonogram pracy konta.
time_off TimeOff! Domyślny harmonogram dni wolnych firmy na koncie.

Pobieranie PTO użytkowników

  • Wymagany zakres: brak
  • Uprawnienie na poziomie konta: view_schedules
  • Zwraca [UserPto!]
  • Można wykonać bezpośrednio na poziomie głównym; nie można zagnieżdżać w innym zapytaniu
query {
  user_pto(user_ids: ["1234567890", "9876543210"]) {
    user_id
    time_off_id
    entries {
      id
      start
      end
    }
  }
}

Użytkownik bez wpisów PTO nadal pojawia się w odpowiedzi, a jego tablica entries jest pusta. Wartość time_off_id wynosi null, dopóki użytkownik nie ma zbioru PTO.

Argumenty

Argument Typ Opis
user_ids [ID!]! Identyfikatory użytkowników, dla których mają zostać pobrane wpisy PTO. Maksymalnie 100.

Pola

Pole Typ Opis
user_id ID! Unikatowy identyfikator użytkownika.
time_off_id ID Identyfikator rekordu prywatnego czasu wolnego użytkownika. Zwraca null, jeśli użytkownik nie ma jeszcze zbioru PTO.
entries [PtoEntry!]! Wpisy prywatnego czasu wolnego użytkownika.

Mutacje

  • 🚧 Dostępne tylko w planach Pro i Enterprise
  • Wymagany zakres: brak - to API używa uprawnień na poziomie konta, a nie zakresów OAuth
  • Niepowodzenie pojedynczych operacji w partii nie przerywa pozostałych. Sprawdź wartość success dla każdego wyniku.

Argumenty daty używają formatu YYYY-MM-DD. Argumenty godziny używają formatu HH:MM (24-godzinnego). Daty dni wolnych i PTO muszą przypadać w przedziale od 1 roku wstecz do 20 lat w przyszłości. Nazwy muszą mieć od 1 do 255 znaków.


Tworzenie harmonogramu pracy

Tworzy jeden lub więcej harmonogramów pracy. Zwraca [WorkScheduleResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  create_work_schedule(inputs: [{
    name: "Standard Work Week",
    days: [
      { week_day: MONDAY, is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: TUESDAY, is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: WEDNESDAY, is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: THURSDAY, is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: FRIDAY, is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: SATURDAY, is_active: false },
      { week_day: SUNDAY, is_active: false }
    ]
  }]) {
    work_schedule {
      id
      name
    }
    success
    error {
      code
      message
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken, apiVersion: "2026-10" });

const query = `mutation ($inputs: [CreateWorkScheduleInput!]!) { create_work_schedule(inputs: $inputs) { work_schedule { id name } success error { code message } } }`;
const variables = {
  inputs: [{
    name: "Standard Work Week",
    days: [
      { week_day: "MONDAY", is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: "TUESDAY", is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: "WEDNESDAY", is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: "THURSDAY", is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: "FRIDAY", is_active: true, start_time: "09:00", end_time: "17:00" },
      { week_day: "SATURDAY", is_active: false },
      { week_day: "SUNDAY", is_active: false }
    ]
  }]
};

const response = await mondayApiClient.request(query, variables);

Pomiń days, aby utworzyć harmonogram, w którym wszystkie siedem dni jest nieaktywnych. W każdym wejściu wartość week_day może wystąpić najwyżej raz. Gdy is_active ma wartość true, wymagane są start_time i end_time, a start_time musi być wcześniejszy niż end_time.

Argumenty

Argument Typ Opis
inputs [CreateWorkScheduleInput!]! Harmonogramy pracy do utworzenia. Maksymalnie 100 na jedno wywołanie.

Aktualizowanie harmonogramu pracy

Aktualizuje nazwę lub godziny pracy istniejącego harmonogramu pracy. Zwraca WorkScheduleResult!.

Uprawnienie na poziomie konta: edit_schedules

mutation {
  update_work_schedule(
    id: "1234567890",
    input: {
      days: [{ week_day: SATURDAY, is_active: true, start_time: "10:00", end_time: "14:00" }]
    }
  ) {
    work_schedule {
      id
      name
      days {
        week_day
        is_active
        start_time
        end_time
      }
    }
    success
    error {
      code
      message
    }
  }
}

Aktualizowane są tylko dni wymienione w input.days. Pozostałe dni pozostają bez zmian.

Argumenty

Argument Typ Opis
id ID! Unikatowy identyfikator harmonogramu pracy.
input UpdateWorkScheduleInput! Pola do zaktualizowania.

Usuwanie harmonogramu pracy

Usuwa jeden lub więcej harmonogramów pracy. Zwraca [WorkScheduleDeleteResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  delete_work_schedule(ids: ["1234567890"]) {
    id
    success
    error {
      code
      message
    }
  }
}

Nie można usunąć harmonogramu, do którego nadal przypisani są użytkownicy lub zespoły. Najpierw odłącz te zasoby. Nie można usunąć domyślnego harmonogramu konta.

Argumenty

Argument Typ Opis
ids [ID!]! Identyfikatory harmonogramów pracy do usunięcia. Maksymalnie 100 na jedno wywołanie.

Przypisywanie harmonogramu pracy

Przypisuje harmonogram pracy użytkownikom lub zespołom. Zwraca AssignWorkScheduleResult.

Uprawnienie na poziomie konta: assign_users_to_schedules

mutation {
  assign_work_schedule(input: {
    user_ids: ["1234567890"],
    team_ids: ["9876543210"],
    work_schedule_id: "1122334455"
  }) {
    users {
      user_id
      success
      error {
        code
        message
      }
    }
    teams {
      team_id
      success
      error {
        code
        message
      }
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken, apiVersion: "2026-10" });

const query = `mutation ($input: AssignWorkScheduleInput!) { assign_work_schedule(input: $input) { users { user_id success error { code message } } teams { team_id success error { code message } } } }`;
const variables = {
  input: {
    user_ids: ["1234567890"],
    team_ids: ["9876543210"],
    work_schedule_id: "1122334455"
  }
};

const response = await mondayApiClient.request(query, variables);

Aby przywrócić zasobowi domyślny harmonogram konta, przekaż identyfikator domyślnego harmonogramu w parametrze work_schedule_id.

Argumenty

Argument Typ Opis
input AssignWorkScheduleInput! Zasoby i harmonogram pracy do przypisania.

Odłączanie harmonogramu pracy

Usuwa jawne przypisania harmonogramu pracy. Zasoby, których to dotyczy, korzystają wtedy z domyślnego harmonogramu konta. Zwraca AssignWorkScheduleResult.

Uprawnienie na poziomie konta: assign_users_to_schedules

mutation {
  unassign_work_schedule(
    user_ids: ["1234567890"],
    team_ids: ["9876543210"]
  ) {
    users {
      user_id
      success
      error {
        code
        message
      }
    }
    teams {
      team_id
      success
      error {
        code
        message
      }
    }
  }
}

Argumenty

Argument Typ Opis
user_ids [ID!] Identyfikatory użytkowników, którym ma zostać odłączony harmonogram. Maksymalnie 100. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids.
team_ids [ID!] Identyfikatory zespołów, którym ma zostać odłączony harmonogram. Maksymalnie 100. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids.

Tworzenie harmonogramu dni wolnych

Tworzy jeden lub więcej harmonogramów dni wolnych firmy, opcjonalnie z początkowymi wpisami. Zwraca [TimeOffResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  create_time_off(inputs: [{
    name: "Public Holidays 2026",
    entries: [
      { name: "New Year's Day", start: "2026-01-01", end: "2026-01-01" },
      { name: "Christmas Day", start: "2026-12-25", end: "2026-12-25" }
    ]
  }]) {
    time_off {
      id
      name
      entries {
        id
        name
        start
        end
      }
    }
    success
    error {
      code
      message
    }
  }
}

Aby dodać wpisy po utworzeniu harmonogramu, użyj operacji tworzenia wpisu dnia wolnego.

Argumenty

Argument Typ Opis
inputs [CreateTimeOffInput!]! Harmonogramy dni wolnych do utworzenia. Maksymalnie 100 na jedno wywołanie.

Aktualizowanie harmonogramu dni wolnych

Aktualizuje nazwę istniejącego harmonogramu dni wolnych firmy. Zwraca TimeOffResult.

Uprawnienie na poziomie konta: edit_schedules

mutation {
  update_time_off(
    id: "1234567890",
    input: { name: "Global Holidays 2026" }
  ) {
    time_off {
      id
      name
    }
    success
    error {
      code
      message
    }
  }
}

Aby dodać, zaktualizować lub usunąć wpisy, użyj mutacji wpisów dni wolnych.

Argumenty

Argument Typ Opis
id ID! Unikatowy identyfikator harmonogramu dni wolnych.
input UpdateTimeOffInput! Pola do zaktualizowania.

Usuwanie harmonogramu dni wolnych

Usuwa jeden lub więcej harmonogramów dni wolnych firmy. Zwraca [TimeOffDeleteResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  delete_time_off(ids: ["1234567890"]) {
    id
    success
    error {
      code
      message
    }
  }
}

Nie można usunąć harmonogramu, do którego nadal przypisani są użytkownicy lub zespoły. Nie można usunąć domyślnego harmonogramu konta.

Argumenty

Argument Typ Opis
ids [ID!]! Identyfikatory harmonogramów dni wolnych do usunięcia. Maksymalnie 100 na jedno wywołanie.

Przypisywanie harmonogramu dni wolnych

Przypisuje harmonogram dni wolnych firmy użytkownikom lub zespołom. Zwraca AssignTimeOffResult.

Uprawnienie na poziomie konta: assign_users_to_schedules

mutation {
  assign_time_off(input: {
    user_ids: ["1234567890"],
    time_off_id: "1122334455"
  }) {
    users {
      user_id
      success
      error {
        code
        message
      }
    }
    teams {
      team_id
      success
      error {
        code
        message
      }
    }
  }
}

Aby przywrócić zasobowi domyślny harmonogram konta, przekaż identyfikator domyślnego harmonogramu dni wolnych.

Argumenty

Argument Typ Opis
input AssignTimeOffInput! Zasoby i harmonogram dni wolnych do przypisania.

Odłączanie harmonogramu dni wolnych

Usuwa jawne przypisania firmowych dni wolnych. Zasoby, których to dotyczy, korzystają wtedy z domyślnego harmonogramu konta. Zwraca AssignTimeOffResult!.

Uprawnienie na poziomie konta: assign_users_to_schedules

mutation {
  unassign_time_off(user_ids: ["1234567890"]) {
    users {
      user_id
      success
      error {
        code
        message
      }
    }
    teams {
      team_id
      success
      error {
        code
        message
      }
    }
  }
}

Argumenty

Argument Typ Opis
user_ids [ID!] Identyfikatory użytkowników, którym mają zostać odłączone dni wolne. Maksymalnie 100. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids.
team_ids [ID!] Identyfikatory zespołów, którym mają zostać odłączone dni wolne. Maksymalnie 100. Wymagane jest podanie co najmniej jednego z parametrów user_ids lub team_ids.

Tworzenie wpisu dnia wolnego

Dodaje jeden lub więcej wpisów dat niepracujących do istniejących harmonogramów dni wolnych. Zwraca [TimeOffEntryResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  create_time_off_entry(inputs: [
    { time_off_id: "1234567890", name: "New Year's Day", start: "2026-01-01", end: "2026-01-01" },
    { time_off_id: "1234567890", name: "Independence Day", start: "2026-07-04", end: "2026-07-04" }
  ]) {
    time_off_entry {
      id
      name
      start
      end
    }
    success
    error {
      code
      message
    }
  }
}

W jednym wywołaniu możesz tworzyć wpisy dla różnych harmonogramów, używając różnych wartości time_off_id.

Argumenty

Argument Typ Opis
inputs [CreateTimeOffEntryInput!]! Wpisy do utworzenia. Maksymalnie 100 na jedno wywołanie.

Aktualizowanie wpisu dnia wolnego

Aktualizuje nazwę lub zakres dat jednego bądź kilku wpisów dni wolnych. Zwraca [TimeOffEntryResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  update_time_off_entry(inputs: [{
    id: "1234567890",
    name: "Christmas Eve",
    start: "2026-12-24",
    end: "2026-12-25"
  }]) {
    time_off_entry {
      id
      name
      start
      end
    }
    success
    error {
      code
      message
    }
  }
}

Argumenty

Argument Typ Opis
inputs [UpdateTimeOffEntryInput!]! Wpisy do zaktualizowania. Maksymalnie 100 na jedno wywołanie.

Usuwanie wpisu dnia wolnego

Usuwa jeden lub więcej wpisów dni wolnych. Zwraca [TimeOffEntryDeleteResult!].

Uprawnienie na poziomie konta: edit_schedules

mutation {
  delete_time_off_entry(ids: ["1234567890"]) {
    id
    success
    error {
      code
      message
    }
  }
}

Argumenty

Argument Typ Opis
ids [ID!]! Identyfikatory wpisów do usunięcia. Maksymalnie 100 na jedno wywołanie.

Tworzenie wpisu PTO

Tworzy jeden lub więcej wpisów prywatnego czasu wolnego. Zwraca [TimeOffEntryResult!].

Uprawnienie na poziomie konta: edit_schedules do tworzenia PTO dla innych użytkowników lub update_own_personal_time_off do tworzenia własnych wpisów.

mutation {
  create_pto_entry(inputs: [
    { user_id: "1234567890", start: "2026-08-01", end: "2026-08-05" }
  ]) {
    time_off_entry {
      id
      start
      end
    }
    success
    error {
      code
      message
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken, apiVersion: "2026-10" });

const query = `mutation ($inputs: [CreatePtoEntryInput!]!) { create_pto_entry(inputs: $inputs) { time_off_entry { id start end } success error { code message } } }`;
const variables = {
  inputs: [{ user_id: "1234567890", start: "2026-08-01", end: "2026-08-05" }]
};

const response = await mondayApiClient.request(query, variables);

Utworzenie wpisu dla użytkownika, który nie ma zbioru PTO, inicjuje taki zbiór. Mutacja zwraca TimeOffEntry: wartość name to "PTO", a wartość type to null.

Argumenty

Argument Typ Opis
inputs [CreatePtoEntryInput!]! Wpisy PTO do utworzenia. Maksymalnie 100 na jedno wywołanie.

Aktualizowanie wpisu PTO

Aktualizuje zakres dat jednego lub kilku wpisów PTO. Zwraca [TimeOffEntryResult!].

Uprawnienie na poziomie konta: edit_schedules do aktualizowania PTO innych użytkowników lub update_own_personal_time_off do aktualizowania własnych wpisów.

mutation {
  update_pto_entry(inputs: [{
    id: "1234567890",
    start: "2026-08-02",
    end: "2026-08-06"
  }]) {
    time_off_entry {
      id
      start
      end
    }
    success
    error {
      code
      message
    }
  }
}

Argumenty

Argument Typ Opis
inputs [UpdatePtoEntryInput!]! Wpisy PTO do zaktualizowania. Maksymalnie 100 na jedno wywołanie.

Usuwanie wpisu PTO

Usuwa jeden lub więcej wpisów PTO. Zwraca [TimeOffEntryDeleteResult!].

Uprawnienie na poziomie konta: edit_schedules do usuwania PTO innych użytkowników lub update_own_personal_time_off do usuwania własnych wpisów.

mutation {
  delete_pto_entry(ids: ["1234567890"]) {
    id
    success
    error {
      code
      message
    }
  }
}

Argumenty

Argument Typ Opis
ids [ID!]! Identyfikatory wpisów PTO do usunięcia. Maksymalnie 100 na jedno wywołanie.

Błędy

Wyniki mutacji zawierają success: Boolean! oraz opcjonalny obiekt error typu Error. Gdy success ma wartość false, pole error wyjaśnia przyczynę niepowodzenia.

Zapytania, które nie są włączone na koncie, zwracają błąd GraphQL z kodem FEATURE_NOT_ENABLED, zamiast błędów dla poszczególnych elementów.

Kod Znaczenie
FEATURE_NOT_ENABLED Funkcja Availability 2.0 nie jest włączona na tym koncie.
NOT_FOUND Identyfikator nie istnieje lub należy do innego konta.
HAS_ASSIGNED_USERS Nie można usunąć harmonogramu, ponieważ nadal są do niego przypisani użytkownicy lub zespoły.
CANNOT_DELETE_DEFAULT Nie można usunąć domyślnego harmonogramu konta.
NOT_AUTHORIZED Wywołujący nie ma wymaganego uprawnienia.
LIMIT_EXCEEDED Konto osiągnęło maksymalną liczbę aktywnych harmonogramów pracy.
INVALID_INPUT Weryfikacja danych wejściowych nie powiodła się, na przykład data end poprzedza datę start.
USER_NOT_FOUND Wskazany użytkownik nie istnieje.
INTERNAL_ERROR Wystąpił nieoczekiwany błąd serwera. Ponów próbę, stosując wykładnicze opóźnienie.

Błędy autoryzacji w mutacjach korzystających ze sprawdzenia GraphQL authorize (harmonogramach pracy, firmowych dniach wolnych i przypisaniach) mogą również pojawić się jako nadrzędny błąd GraphQL USER_UNAUTHORIZED zamiast wyniku NOT_AUTHORIZED dla pojedynczego elementu.