Learn how to filter, read, update, and clear the date column on monday boards using the platform API
The date column represents a specific date (and potentially time). The API allows you to read, filter, update, and clear the date column.
Read a date column
You can query the date column using the column_values object that enables you to return column-specific subfields by sending a fragment in your query. Values for the date column are of the DateValue type.
query {
items(ids: [1234567890, 9876543210]) {
column_values {
... on DateValue {
date
time
}
}
}
}import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = `query($itemIds: [ID!]) { items (ids:$itemIds) { column_values { value ... on DateValue { date time } } } }`;
const variables = {
itemIds: [9571351485, 9572374902],
};
const response = await mondayApiClient.request(query, variables);Fields
| Field | Description |
|---|---|
column Column! | The column the value belongs to. |
date String | The column's date value. |
icon String | The selected icon as a string. |
id ID! | The column's unique identifier. |
text String | The column's value as text. This field will return "" if the column has an empty value. |
time String | The column's time value. Results are based on the timezone settings configured in the monday.com profile of the user who made the call. |
type ColumnType! | The column's type. |
updated_at Date | The column's last updated date. |
value JSON | The column's JSON-formatted raw value. Results are in UTC. |
Filter a date column
Using the items_page object, you can easily filter a board's items by specific columns or column values.
This section explains how to use the API to filter by dates. To query items with a specific date column value, you must add an operator with one or more predefined or custom compare values. Some compare values are static (e.g., specific dates), while others are dynamic and will change according to the date and time during which you make the API call (e.g., "TOMORROW").
The table below outlines the supported operators, compare values, and compare attributes for the date column.
Compare value | Description | Operators |
|---|---|---|
| Items with today's date. |
|
| Items with tomorrow's date. |
|
| Items with yesterday's date. |
|
| Items with a date during the current week. The first day of the week (either Sunday or Monday) is defined based on the settings configured in the monday.com account of the person making the API call. |
|
| Items with a date during the previous week. The first day of the week (either Sunday or Monday) is defined based on the settings configured in the monday.com account of the person making the API call. |
|
| Items with a date during the upcoming week. The first day of the week (either Sunday or Monday) is defined based on the settings configured in the monday.com account of the person making the API call. |
|
| Items with a date during the current month. |
|
| Items with a date during the previous month. |
|
| Items with a date during the upcoming month. |
|
| Items with a date and time in the past. |
|
| Items with a date and time in the future. |
|
| Used in conjunction with a status column, this compare value returns items that are not marked as "Done" and the date in the date column has not passed. Please note that the item will not show as upcoming if today's date is in the date column. |
|
| Used in conjunction with a status column, this compare value returns items that are not marked as "Done" and the date in the date column has passed. Please note that the item will not show as overdue until the following day if the date column contains today's date. |
|
| Used in conjunction with a status column, this compare value returns items that were marked as "Done" before the date in the date column. |
|
| Used in conjunction with a status column, this compare value returns items that were marked as "Done" after the date in the date column. |
|
Exact dates (e.g., | You can return items with an exact/static date by sending the date as a string with the
|
|
| Used with select operators to return items with a specific date. | |
| Items with a blank value. |
|
Examples
This example returns all items on board 1234567890 with a date column value of July 1st, 2023 (based on the user making the API call). To return items with a specific date, just replace the"2023-07-01" with the date you'd like to filter by!
query {
boards(ids: [1234567890]) {
items_page(
query_params: {
rules: [
{
column_id: "date"
compare_value: ["EXACT", "2023-07-01"]
operator: any_of
}
]
}
) {
items {
id
name
}
}
}
}const mondayApiClient = new ApiClient({ token: myToken });
const query = `query ($board_id: [ID!], $column_id: ID!, $operator: ItemsQueryRuleOperator!, $compare_value:CompareValue!) { boards (ids: $board_id) { items_page (query_params: {rules: [{column_id: $column_id, compare_value: $compare_value, operator:$operator}]}) { items { id name } } } }`;
const variables = {
board_id: 9571351437,
column_id: "date_mksr13fh",
compare_value: ["EXACT", "2025-07-16"],
operator: "any_of",
};
const response = await mondayApiClient.request(query, variables);This example shows how to filter a date column with multiple compare values.
query {
boards(ids: [1234567890]) {
items_page(
query_params: {
rules: [
{
column_id: "date4"
compare_value: [
"EXACT"
"2024-09-10"
"TODAY"
"EXACT"
"2024-09-11"
"TOMORROW"
]
operator: any_of
}
]
}
) {
items {
id
name
}
}
}
}const mondayApiClient = new ApiClient({ token: myToken });
const query = `query ($board_id: [ID!], $column_id: ID!, $operator: ItemsQueryRuleOperator!, $compare_value:CompareValue!) { boards (ids: $board_id) { items_page (query_params: {rules: [{column_id: $column_id, compare_value: $compare_value, operator:$operator}]}) { items { id name } } } }`;
const variables = {
board_id: 9571351437,
column_id: "date_mksr13fh",
compare_value: ["EXACT", "2025-07-16", "TODAY", "TOMORROW"],
operator: "any_of",
};
const response = await mondayApiClient.request(query, variables);This example returns all items on board 1234567890 with a date column value that is in the current week or after (based on the user making the API call).
query {
boards(ids: [1234567890]) {
items_page(
query_params: {
rules: [
{
column_id: "date"
compare_value: ["THIS_WEEK"]
operator: greater_than_or_equals
}
]
}
) {
items {
id
name
}
}
}
}const mondayApiClient = new ApiClient({ token: myToken });
const query = `query ($board_id: [ID!], $column_id: ID!, $operator: ItemsQueryRuleOperator!, $compare_value:CompareValue!) { boards (ids: $board_id) { items_page (query_params: {rules: [{column_id: $column_id, compare_value: $compare_value, operator:$operator}]}) { items { id name } } } }`;
const variables = {
board_id: 9571351437,
column_id: "date_mksr13fh",
compare_value: ["THIS_WEEK"],
operator: "greater_than_or_equals",
};
const response = await mondayApiClient.request(query, variables);This example returns all items on board 1234567890 that are not marked as "Done" in the status column and have a date column value that has not yet passed.
query {
boards(ids: [1234567890]) {
items_page(
query_params: {
rules: [
{
column_id: "date"
compare_value: ["UPCOMING"]
operator: any_of
}
]
}
) {
items {
id
name
}
}
}
}const mondayApiClient = new ApiClient({ token: myToken });
const query = `query ($board_id: [ID!], $column_id: ID!, $operator: ItemsQueryRuleOperator!, $compare_value:CompareValue!) { boards (ids: $board_id) { items_page (query_params: {rules: [{column_id: $column_id, compare_value: $compare_value, operator:$operator}]}) { items { id name } } } }`;
const variables = {
board_id: 9571351437,
column_id: "date_mksr13fh",
compare_value: ["UPCOMING"],
operator: "any_of",
};
const response = await mondayApiClient.request(query, variables);Update a date column
You can update a date column using the change_simple_column_value mutation and sending a simple string in the value argument. You can also use the change_multiple_column_values mutation and pass a JSON string in the column_values argument.
Simple strings
To update a date column, send the date as a string in a YYYY-MM-DD format. You can also add a time by passing it in HH:MM:SS format with a space between the date and time. (Make sure to enter the date and time in UTC, so it will be converted to the user's timezone when they look at the board!)
mutation {
change_simple_column_value(
item_id: 9876543210
board_id: 1234567890
column_id: "date"
value: "2019-06-03 13:25:00"
) {
id
}
}import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = `mutation ($myBoardId:ID!, $myItemId:ID!, $myColumnValue: String!, $myColumnId: String!) { change_simple_column_value (item_id:$myItemId, board_id:$myBoardId, column_id: $myColumnId, value: $myColumnValue) { id } }`;
const variables = {
myBoardId: 9571351437,
myItemId: 9571351485,
myColumnId: "date_mksr13fh",
myColumnValue: "2025-08-27 13:00:00",
};
const response = await mondayApiClient.request(query, variables); JSON
To update a date column with JSON, send a JSON string with a date and time key (optional). The date should also be in YYYY-MM-DD format, and the time in HH:MM:SS format. (Make sure to enter the date and time in UTC, so it will be converted to the user's timezone when they look at the board!)
mutation {
change_multiple_column_values(
item_id: 9876543210
board_id: 1234567890
column_values: "{\"date\":{\"date\":\"1993-08-27\",\"time\":\"18:00:00\"}}"
) {
id
}
}const mondayApiClient = new ApiClient({ token: myToken });
const query = `mutation ($myBoardId:ID!, $myItemId:ID!, $myColumnValues:JSON!) { change_multiple_column_values(item_id:$myItemId, board_id:$myBoardId, column_values: $myColumnValues) { id } }`;
const variables = {
myBoardId: 9571351437,
myItemId: 9571351485,
myColumnValues: JSON.stringify({ // date_mksr13fh is the column ID
date_mksr13fh: {
date: "1993-08-27",
time: "05:20:00"
}
}),
};
const response = await mondayApiClient.request(query, variables); Clear a date column
You have two options to clear a date column. First, you can use the change_multiple_column_values mutation and pass null, an empty string, or an empty object in the column_values argument.
mutation {
change_multiple_column_values(
item_id: 9876543210
board_id: 1234567890
column_values: "{\"date\": null}"
) {
id
}
}import { ApiClient } from "@mondaydotcomorg/api";
const query = `mutation ($myBoardId:ID!, $myItemId:ID!, $myColumnValues:JSON!) { change_multiple_column_values(item_id:$myItemId, board_id:$myBoardId, column_values: $myColumnValues) { id } }`;
const variables = {
myBoardId: 9571351437,
myItemId: 9571351485,
myColumnValues: JSON.stringify({
date_mksr13fh: null // date_mksr13fh is the column ID
}),
};
const response = await mondayApiClient.request(query, variables); You can also use the change_simple_column_value mutation and pass an empty string in the value argument.
mutation {
change_simple_column_value(
item_id: 9876543210
board_id: 1234567890
column_id: "date"
value: ""
) {
id
}
}import { ApiClient } from "@mondaydotcomorg/api";
const query = `mutation ($myBoardId:ID!, $myItemId:ID!, $myColumnValue: String!, $myColumnId: String!) { change_simple_column_value (item_id:$myItemId, board_id:$myBoardId, column_id: $myColumnId, value: $myColumnValue) { id } }`;
const variables = {
myBoardId: 9571351437,
myItemId: 9571351485,
myColumnId: "date_mksr13fh",
myColumnValue: "",
};
const response = await mondayApiClient.request(query, variables); 