Oś czasu
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 |
|
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.