Dokumentacja dla programistów

Oś czasu

Aktualizacja 2026-09-06

Kolumna oś czasu przechowuje zakres dat, dzięki czemu elementy mogą reprezentować okresy, takie jak czas trwania projektu lub sprinty. Używa typu kolumny timeline i zwraca wartości jako TimelineValue w schemacie GraphQL.

Za pośrednictwem API kolumna osi czasu obsługuje odczyt, filtrowanie, tworzenie, aktualizowanie i czyszczenie wartości. Do aktualizowania i czyszczenia służy wyłącznie change_multiple_column_values.

Typ kolumny Typ implementacji Obsługiwane operacje
timeline TimelineValue
  • Odczyt: Tak
  • Filtrowanie: Tak
  • Tworzenie: Tak
  • Aktualizowanie: Tak (wyłącznie change_multiple_column_values)
  • Czyszczenie: Tak (wyłącznie change_multiple_column_values)

Zapytania

Kolumny osi czasu można odczytywać za pomocą pola column_values w zapytaniach dotyczących items. Użyj do tego wbudowanego fragmentu dotyczącego typu TimelineValue.

Na tablicach wielopoziomowych kolumny osi czasu z funkcją agregowania wymagają ustawienia capabilities: [CALCULATED] w polu column_values, aby zwracać jakiekolwiek wartości. Bez tego API zwraca pustą tablicę - nawet w przypadku elementów najniższego poziomu z wartościami statycznymi.

Kolumny osi czasu z funkcją agregowania zachowują typ TimelineValue. Użyj pola is_leaf, aby odróżnić wartości statyczne (true) od obliczonych wartości agregowanych (false). Funkcja MIN_MAX oblicza najwcześniejszą datę from i najpóźniejszą datę to ze wszystkich elementów podrzędnych.

query {
  items(ids: [1234567890, 9876543210]) {
    name
    column_values {
      ... on TimelineValue {
        id
        from
        to
        text
        visualization_type
        updated_at
        value
      }
    }
  }
}
const query = `
  query ($itemIds: [ID!]) {
    items(ids: $itemIds) {
      name
      column_values {
        ... on TimelineValue {
          id
          from
          to
          text
          visualization_type
          updated_at
          value
        }
      }
    }
  }
`;

const variables = { itemIds: [1234567890, 9876543210] };

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

Pola

Możesz użyć poniższych pól, aby określić, jakie informacje zwróci implementacja TimelineValue.

Pole Opis
column Column! Kolumna, do której należy wartość.
from Date Data początkowa osi czasu w formacie daty i godziny ISO 8601 (np. "2026-03-01T00:00:00+00:00"). Zwraca null, jeśli nie ustawiono osi czasu.
id ID! Unikatowy identyfikator kolumny.
is_leaf Boolean! Informuje, czy element nie ma podelementów. Na tablicach wielopoziomowych z funkcją agregowania wartość false oznacza, że jest to obliczona wartość agregowana z elementów podrzędnych, a nie wartość statyczna.
text String Zakres dat w postaci tekstu w formacie YYYY-MM-DD - YYYY-MM-DD (np. "2026-03-01 - 2026-03-15"). Zwraca "", jeśli pole jest puste.
to Date Końcowa data osi czasu w formacie daty i godziny ISO 8601 (np. "2026-03-15T00:00:00+00:00"). Zwraca null, jeśli nie ustawiono osi czasu.
type ColumnType! Typ kolumny (timeline).
updated_at Date Data ostatniej aktualizacji wartości kolumny. Zwraca null, jeśli wartość ustawiono podczas tworzenia elementu i nie była później aktualizowana.
value JSON Surowa wartość kolumny w postaci ciągu JSON zawierającego daty from i to. Po aktualizacjach za pomocą change_multiple_column_values zawiera znacznik czasu changed_at, ale nie wtedy, gdy wartość ustawiono podczas tworzenia elementu.
visualization_type String Typ wizualizacji kolumny. Domyślnie zwraca null; zwraca "milestone", jeśli element jest ustawiony jako kamień milowy.

Przykładowa odpowiedź

{
  "data": {
    "items": [
      {
        "name": "Sprint 1",
        "column_values": [
          {
            "id": "timeline",
            "from": "2026-03-01T00:00:00+00:00",
            "to": "2026-03-15T00:00:00+00:00",
            "text": "2026-03-01 - 2026-03-15",
            "visualization_type": null,
            "updated_at": "2026-03-01T10:00:00+00:00",
            "value": "{\"to\":\"2026-03-15\",\"from\":\"2026-03-01\",\"changed_at\":\"2026-03-01T10:00:00.000Z\"}"
          }
        ]
      },
      {
        "name": "Sprint 2",
        "column_values": [
          {
            "id": "timeline",
            "from": null,
            "to": null,
            "text": "",
            "visualization_type": null,
            "updated_at": null,
            "value": null
          }
        ]
      }
    ]
  }
}

Filtrowanie

Możesz filtrować elementy według wartości osi czasu za pomocą obiektu items_page. Kolumna osi czasu obsługuje następujące operatory:

Operator Wartość porównania Opis
any_of "CURRENT", "DUE_TODAY", "FUTURE_TIMELINE", "PAST_TIMELINE", "DONE_ON_TIME", "OVERDUE", "DONE_OVERDUE", "MILESTONE", "$$$blank$$$" Zwraca elementy pasujące do dowolnego z określonych stanów osi czasu.
not_any_of Te same wartości co w przypadku any_of Wyklucza elementy pasujące do dowolnego z określonych stanów osi czasu.
is_empty [] Zwraca elementy, dla których nie ustawiono osi czasu.
is_not_empty [] Zwraca elementy, dla których ustawiono oś czasu.
greater_than "TODAY", "TOMORROW", "YESTERDAY", "THIS_WEEK", "ONE_WEEK_AGO", "ONE_WEEK_FROM_NOW", "THIS_MONTH", "ONE_MONTH_AGO", "ONE_MONTH_FROM_NOW" lub ["EXACT", "YYYY-MM-DD"] Zwraca elementy, w których określony atrybut daty przypada po wartości porównania. Wymaga pola compare_attribute.
greater_than_or_equals Te same wartości co w przypadku greater_than Zwraca elementy, w których określony atrybut daty przypada w dniu wartości porównania lub później. Wymaga pola compare_attribute.
lower_than Te same wartości co w przypadku greater_than Zwraca elementy, w których określony atrybut daty przypada przed wartością porównania. Wymaga pola compare_attribute.
lower_than_or_equal Te same wartości co w przypadku greater_than Zwraca elementy, w których określony atrybut daty przypada w dniu wartości porównania lub wcześniej. Wymaga pola compare_attribute.
between Te same wartości co w przypadku greater_than Zwraca elementy, w których określony atrybut daty mieści się w podanym zakresie. Wymaga pola compare_attribute.

Operatory greater_than, greater_than_or_equals, lower_than, lower_than_or_equal i between wymagają ustawienia pola compare_attribute na "START_DATE" lub "END_DATE". Określa ono, którą datę z zakresu należy porównać.

Przykłady

Filtrowanie bieżących osi czasu

query {
  boards(ids: 1234567890) {
    items_page(
      query_params: {
        rules: [
          {
            column_id: "timeline"
            compare_value: ["CURRENT"]
            operator: any_of
          }
        ]
      }
    ) {
      items {
        id
        name
        column_values {
          ... on TimelineValue {
            from
            to
          }
        }
      }
    }
  }
}

Filtrowanie według daty końcowej przypadającej w tym tygodniu lub później

query {
  boards(ids: 1234567890) {
    items_page(
      query_params: {
        rules: [
          {
            column_id: "timeline"
            compare_value: "THIS_WEEK"
            compare_attribute: "END_DATE"
            operator: greater_than_or_equals
          }
        ]
      }
    ) {
      items {
        id
        name
      }
    }
  }
}

Filtrowanie według dokładnej daty początkowej

query {
  boards(ids: 1234567890) {
    items_page(
      query_params: {
        rules: [
          {
            column_id: "timeline"
            compare_value: ["EXACT", "2026-03-01"]
            compare_attribute: "START_DATE"
            operator: lower_than_or_equal
          }
        ]
      }
    ) {
      items {
        id
        name
      }
    }
  }
}

Mutacje

Tworzenie

Kolumnę osi czasu możesz utworzyć za pomocą mutacji create_column, ustawiając column_type na timeline. Opcjonalnie możesz skonfigurować ustawienia wyświetlania za pomocą argumentu defaults.

mutation {
  create_column(
    board_id: 1234567890
    title: "Project Duration"
    column_type: timeline
    defaults: "{\"settings\": {\"show_weekends\": false, \"show_week_number\": true}}"
  ) {
    id
    title
    settings
  }
}

Na tablicach wielopoziomowych kolumny osi czasu są domyślnie tworzone z funkcją agregowania MIN_MAX. Aby wyłączyć agregowanie:

mutation {
  create_column(
    board_id: 1234567890
    column_type: timeline
    title: "Reference Timeline"
    capabilities: { calculated: { function: NONE } }
  ) {
    id
    title
  }
}

Argument defaults przyjmuje ciąg JSON zawierający obiekt settings z następującymi opcjonalnymi polami:

Pole Typ Opis
hide_footer boolean Określa, czy ukryć stopkę kolumny.
show_set_as_milestone boolean Określa, czy wyświetlać opcję „Ustaw jako kamień milowy” (Set as milestone).
show_weekends boolean Określa, czy wyświetlać weekendy na osi czasu.
show_week_number boolean Określa, czy wyświetlać numery tygodni na osi czasu.

Mutacja change_simple_column_value nie jest obsługiwana przez kolumnę osi czasu. Zamiast niej użyj change_multiple_column_values.

Aktualizowanie

Kolumnę osi czasu możesz zaktualizować za pomocą change_multiple_column_values, przekazując obiekt JSON z datami from i to w formacie YYYY-MM-DD.

Na tablicach wielopoziomowych mutacje dotyczące elementów nadrzędnych z obliczonymi wartościami agregowanymi nie zwracają błędu - API zwraca odpowiedź o powodzeniu, ale wartość się nie zmienia. Zamiast tego zaktualizuj elementy podrzędne.

mutation {
  change_multiple_column_values(
    item_id: 9876543210
    board_id: 1234567890
    column_values: "{\"timeline\": {\"from\": \"2026-03-01\", \"to\": \"2026-03-15\"}}"
  ) {
    id
    name
  }
}
const query = `
  mutation ($boardId: ID!, $itemId: ID!, $columnValues: JSON!) {
    change_multiple_column_values(
      board_id: $boardId
      item_id: $itemId
      column_values: $columnValues
    ) {
      id
      name
    }
  }
`;

const variables = {
  boardId: 1234567890,
  itemId: 9876543210,
  columnValues: JSON.stringify({
    timeline: { from: "2026-03-01", to: "2026-03-15" }
  })
};

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

Ustawianie osi czasu podczas tworzenia elementu

Oś czasu możesz ustawić podczas tworzenia elementu, przekazując wartość kolumny osi czasu w argumencie column_values.

mutation {
  create_item(
    board_id: 1234567890
    item_name: "New sprint"
    column_values: "{\"timeline\": {\"from\": \"2026-04-01\", \"to\": \"2026-04-14\"}}"
  ) {
    id
    name
  }
}

Czyszczenie

Wartość kolumny osi czasu możesz wyczyścić za pomocą change_multiple_column_values, przekazując null albo pusty obiekt {}. Obie wartości czyszczą pola from i to, ale przekazanie null ustawia surową wartość value na null, a przekazanie {} zachowuje znacznik czasu changed_at w polu value.

mutation {
  change_multiple_column_values(
    item_id: 9876543210
    board_id: 1234567890
    column_values: "{\"timeline\": null}"
  ) {
    id
    name
  }
}

Odczytywanie konfiguracji kolumny

Konfigurację kolumny osi czasu możesz odczytać, pobierając pole settings obiektu columns.

Pole settings_str jest przestarzałe od wersji API 2025-10. Zamiast niego użyj typowanego obiektu settings, który zwraca uporządkowany JSON, a nie ciąg zakodowany w formacie JSON.

query {
  boards(ids: 1234567890) {
    columns(ids: ["timeline"]) {
      id
      title
      settings
    }
  }
}

Przykładowa odpowiedź settings

Pole settings domyślnie zwraca {}. Jeśli skonfigurowano ustawienia wyświetlania, odpowiedź zawiera:

{
  "hide_footer": false,
  "show_set_as_milestone": true,
  "show_weekends": true,
  "show_week_number": false
}
Pole Typ Opis
hide_footer boolean Określa, czy stopka kolumny jest ukryta.
show_set_as_milestone boolean Określa, czy wyświetlana jest opcja „Ustaw jako kamień milowy” (Set as milestone).
show_weekends boolean Określa, czy wyświetlane są weekendy.
show_week_number boolean Określa, czy wyświetlane są numery tygodni.

Pobieranie schematu typu kolumny

Schemat JSON ustawień kolumny osi czasu możesz pobrać programowo za pomocą zapytania get_column_type_schema.

query {
  get_column_type_schema(
    type: timeline
  )
}
{
  "data": {
    "get_column_type_schema": {
      "schema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "settings": {
            "type": "object",
            "description": "Column specific settings",
            "properties": {
              "hide_footer": {
                "type": "boolean",
                "description": "Whether to hide the footer"
              },
              "show_set_as_milestone": {
                "type": "boolean",
                "description": "Whether to show set as milestone option"
              },
              "show_weekends": {
                "type": "boolean",
                "description": "Whether to show weekends"
              },
              "show_week_number": {
                "type": "boolean",
                "description": "Whether to show week numbers"
              }
            },
            "additionalProperties": false
          }
        }
      }
    }
  }
}

Odpowiedź zawiera nazwy właściwości, typy, ograniczenia (takie jak maksymalna długość i dozwolone wartości) oraz opisy poszczególnych ustawień. Możesz jej użyć do sprawdzania poprawności ustawień kolumn, dynamicznego generowania interfejsów użytkownika lub przekazywania kontekstu agentom AI. Dowiedz się więcej o formacie odpowiedzi schematu.