Guenov Labs
More free tools

Free tool

JQL query builder and cheat sheet

Pick your filters below and get valid Jira Query Language, ready to paste into Jira’s search bar — plus a cheat sheet of the JQL people actually search for. Everything runs in your browser; nothing you type is sent anywhere.

Project & status
Status
Assignee
Time window
Filter by when the issue was created, updated, or resolved.
Priority, type & labels
Priority
Issue type
Sort
Your JQL
Updates as you fill in the fields on the left.
ORDER BY updated DESC

What this searches for

Issues, newest first.

JQL cheat sheet

The searches people actually run, grouped by what they’re trying to do. Every query below is valid, native Jira Cloud JQL — copy one and adjust the project, values or dates to fit.

My work
assignee = currentUser() AND resolution = Unresolved ORDER BY priority DESC, updated DESC

Everything open and assigned to you, most urgent first.

reporter = currentUser() ORDER BY created DESC

Issues you reported, newest first.

watcher = currentUser() AND resolution = Unresolved ORDER BY updated DESC

Open issues you're watching.

assignee = currentUser() AND duedate <= endOfWeek() AND resolution = Unresolved ORDER BY duedate ASC

Your open issues due by the end of this week.

assignee = currentUser() AND status CHANGED AFTER -7d ORDER BY updated DESC

Your issues that changed status in the last 7 days.

Recent activity
updated >= -1d ORDER BY updated DESC

Everything updated in the last 24 hours.

created >= -7d ORDER BY created DESC

New issues created in the last 7 days.

status CHANGED AFTER -7d ORDER BY updated DESC

Issues whose status changed in the last 7 days, regardless of assignee.

resolution CHANGED AFTER -7d ORDER BY updated DESC

Issues resolved or reopened in the last 7 days.

Sprint & board
sprint IN openSprints() AND assignee = currentUser() ORDER BY status ASC

Your issues in the active sprint.

sprint IN openSprints() AND status = "To Do" ORDER BY priority DESC

Active-sprint issues that haven't been started yet.

sprint IS EMPTY AND resolution = Unresolved AND issuetype != Epic ORDER BY created DESC

Backlog issues not yet assigned to a sprint.

sprint IN closedSprints() AND resolution = Unresolved ORDER BY updated DESC

Issues that missed their sprint — still open after it closed.

sprint IN futureSprints() ORDER BY duedate ASC

Everything already scheduled into an upcoming sprint.

Stale issues
resolution = Unresolved AND updated <= -14d ORDER BY updated ASC

Open issues untouched for 14+ days, oldest first.

status = "In Progress" AND updated <= -7d ORDER BY updated ASC

In-progress issues with no activity in a week — likely stuck.

resolution = Unresolved AND assignee IS EMPTY AND created <= -7d ORDER BY created ASC

Open issues that have sat unassigned for a week or more.

resolution = Unresolved AND duedate <= now() ORDER BY duedate ASC

Overdue issues — due date has passed and they're still open.

Done in a period
status = Done AND resolved >= startOfWeek() ORDER BY resolved DESC

Everything finished so far this week.

status = Done AND resolved >= startOfMonth() ORDER BY resolved DESC

Everything finished so far this month.

status = Done AND resolved >= -30d ORDER BY resolved DESC

Everything finished in the last 30 days.

resolution = Unresolved AND created < startOfMonth() ORDER BY priority DESC

Carryover — opened before this month and still not resolved.

Reporting & triage
resolution = Unresolved AND priority IN (Highest, High) ORDER BY priority DESC, created ASC

Open high-priority issues across the board.

issuetype = Bug AND resolution = Unresolved ORDER BY priority DESC, created ASC

Open bugs, most severe and oldest first.

issuetype = Bug AND priority = Highest AND resolution = Unresolved ORDER BY created ASC

Open critical bugs only.

labels = customer-reported AND resolution = Unresolved ORDER BY created ASC

Open issues tagged as customer-reported (swap the label for your own).

text ~ "checkout error" ORDER BY updated DESC

Free-text search across summary, description and comments.

Operators & keywords

AND
All connected clauses must be true.
OR
At least one connected clause must be true.
NOT
Negates the clause or parenthesised group that follows it.
IN (…)
Field matches any value in the list — shorthand for chained ORs.
NOT IN (…)
Field matches none of the values in the list.
IS EMPTY / IS NOT EMPTY
Tests whether a field has no value, e.g. assignee IS EMPTY.
WAS / WAS IN
Field held a value at some point in its history, e.g. status WAS "In Progress".
CHANGED
Field's value changed, optionally scoped with FROM, TO, BY, AFTER, BEFORE, DURING or ON.
ORDER BY … ASC|DESC
Sorts results; must be the last part of the query.
~ / !~
Text field contains / doesn't contain a term, e.g. summary ~ "timeout".

Relative dates

Date fields accept a fixed date, or shorthand relative to now.

-7d
7 days ago. Units are m (minutes), h (hours), d (days), w (weeks) — one unit per value.
-2w
2 weeks ago.
startOfDay() / endOfDay()
Midnight at the start or end of today. Accepts an offset, e.g. startOfDay("-1d").
startOfWeek() / endOfWeek()
Start or end of the current calendar week.
startOfMonth() / endOfMonth()
Start or end of the current calendar month.
now()
The exact current timestamp.

Questions

What is JQL in Jira?
JQL — Jira Query Language — is the search syntax behind Jira's advanced issue search. A query is a set of field-operator-value clauses joined with AND and OR, optionally followed by an ORDER BY, for example: project = PROJ AND status != Done ORDER BY created DESC. It's what board filters, dashboard gadgets and saved filters are built from, so it's worth being able to read even if you rarely write it from scratch.
Where do I paste a JQL query in Jira?
Open Filters → View all issues (or Search) and switch the search from Basic to JQL. Paste the query in, run it, and save it as a filter if you want to reuse it on a board or dashboard gadget.
How do I write a JQL query for issues updated in the last week?
Use a relative date: updated >= -7d. Jira's relative date shorthand accepts m for minutes, h for hours, d for days and w for weeks, so -1w works too. Combine it with a project clause to scope the result, e.g. project = PROJ AND updated >= -7d ORDER BY updated DESC.
Does this JQL builder connect to my Jira instance?
No. It builds the query text from the options you pick and nothing more — no login, no API call, no access to your projects. That's also its one limitation: it can't autocomplete your real project keys, statuses or custom fields, so those you type in yourself.
Do these queries still work now that Jira calls issues "work items"?
Yes. Atlassian is mid-rollout on renaming "issue" to "work item" and "project" to "space" across its docs and UI, but has confirmed JQL keeps supporting the classic field names. This tool sticks to those (project, issuetype, and so on), which is why the queries it generates work on sites that have already seen the new terminology.

Further reading

JQL does its most useful work inside an automation rule — how to set up a Jira Automation rule to email a weekly summary walks through a rule built on a JQL search, and the smart values reference covers formatting the results.

Field, function and operator syntax verified against Atlassian’s own JQL documentation: JQL fields, JQL functions, JQL operators and JQL keywords.

Last verified: . Atlassian is mid-rollout on renaming “issue” to “work item” and “project” to “space” across its docs and UI; this tool sticks to the classic field names (project, issuetype, etc.), which Atlassian has confirmed JQL keeps supporting.

A free tool by Guenov Labs.