Search Syntax Cheat Sheet

Search in Agenda is simple and fast, you just type a few search terms and you’ll search instantly across all your notes. The hits present in the currently selected overview or project are shown at the top of the result list, the ones in archived projects or the trash are shown at the end.

However, you can create also much more complex queries, both by clicking/tapping the search tokens in the search field that are created when hitting the space bar or return key, but also through a very similar system as the text actions, in combination with powerful autocompletion.

Search properties are prefixed by a backslash character (\) that invokes an autocompletion menu that shows the available properties to search on and that can be further filtered by typing the first few characters of the action you’d want to use.

Tip: On iPhone and iPad without a hardware keyboard, typing the backslash character can be a bit cumbersome. Instead you can simply tap the loupe icon in the search field. Handy!

Similarly, on some keyboards, like the Chinese or Japanese ones, it’s hard to type a backslash character, therefore wherever a backslash character is shown, you can also use two backticks (``) or two middle-dot characters (··).

Many of these properties can take so called parameters inside parentheses (similar to how you can add value parameters to tags), to further refine the behaviour of these actions. For example, \title(starts-with: yak) searches for the word yak at the start of the title of the note.

Parameters labeled as Default are considered the default parameter if none is provided. For example, \tag(important) is considered the same as \tag(name: important).

To see search actions “in action” have a look at the Agenda 19 update video:

Below you’ll find a complete overview of the Search properties that Agenda currently supports.

Note Properties

\all

  • searches across all fields of a note (Default)
  • synonyms: everything

\on-the-agenda

  • searches on the On the Agenda status of a note
  • synonyms: ontheagenda, ota, agenda

\title

  • searches on the Title of a note
  • synonyms: ti

\assigned-date

  • searches on the Assigned Date of a note
  • synonyms:
  • shorthands: \today, \tomorrow, \yesterday, \monday, \tuesday, \wednesday, \thursday, \friday, \saturday, \sunday

\start-date

  • searches on the Start Date of a note
  • synonyms:

\end-date

  • searches on the End Date of a note
  • synonyms:

\linked-event

  • searches on the event linked to a note
  • synonyms:

\calendar

  • searches on the calendar of the event linked to a note
  • synonyms:

\due-date

  • searches on the due date of reminders present in a note
  • synonyms:

\color

  • searches on the background color of a note
  • synonyms:

\pinned

  • searches on the pinned status of a note
  • synonyms:

\footnote

  • searches on the footnote status of a note
  • synonyms:

\done

  • searches on the completion status of a note
  • synonyms:

\locked

  • searches on the locked status of a note
  • synonyms:

\shared

  • searches on the shared status of a note
  • synonyms:

\edited-date

  • searches on the edited date of a note
  • synonyms:

\creation-date

  • searches on the creation date of a note
  • synonyms:

\template

  • searches on the template used to create a note
  • synonyms:

Note Content

\tag

  • searches on the tag in the content of a note
  • synonyms: #

Parameters

  • name - the name of the tag - Default, Required
  • color - the name or hex-value of the color of the tag - Premium
  • value, text, string - an optional text value - Second Default
  • day, on, after, before, until, from, in - an optional day value
  • date, at - an optional date value
  • int, integer, number, level - an optional int value
  • float, double - an optional float value

Examples

  • \tag(name: important) - creates the tag #important, equal to \tag(important)
  • \tag(important, color: blue) - creates the tag #important with a blue color
  • \tag(important, color: #333) - creates the tag #important with the hex color #333
  • \tag(priority, value: high) - creates the tag #priority(high), equal to \tag(priority, high)
  • \tag(due, day: tomorrow) - creates the tag #due(6 April 2022)
  • \tag(due, in: 3 weeks) - creates the tag #due(26 April 2022)
  • \tag(deadline, at: 17 oct 2022 13pm) - creates the tag #deadline(17 Oct 2022 at 13.00)
  • \tag(priority, int: 1, color: red) - creates the tag #priority(1) in red
  • \tag(version, float: 2.1) - creates the tag #version(2.1)

\person

  • searches on the person in the content of a note
  • synonyms: @, contact

Parameters

  • name, alias, nickname - the name of the person - Default, Required

Examples

  • \person(name: Tom G) - creates the person @(Tom G), equal to \person(Tom G)

\reminder

  • searches on the reminder in the content of a note
  • synonyms: \remind,

Parameters

  • none - inserts a placeholder reminder that is not scheduled
  • due-date - a natural language string representing a date in the future - Default
  • title - the title of the reminder to schedule
  • list - the list in the reminders app on to which to schedule the reminder
  • all-day - schedules the reminder as an all-day reminder

Examples

  • \reminder - creates an unscheduled reminder and open the edit popover
  • \reminder(today) - schedules a reminder for today in 30 minutes
  • \reminder(today at 6pm) - schedules a reminder for today at 6 o’clock
  • \reminder(tomorrow evening) - schedules a reminder for tomorrow at 6 o’clock
  • \reminder(in 3 weeks) - schedules a reminder 21 days from now
  • \reminder(25 dec 2020, at 8pm)` - schedules a reminder on the 25 dec 2020 at 8 o’clock
  • \reminder(today at 6pm, list: important) - schedules a reminder for today at 6 o’clock on the reminder list “important”
  • \reminder(all-day: tomorrow) - schedules an all-day reminder for tomorrow

\table

  • searches on the table in the content of a note
  • synonyms:

\link

  • searches on the link in the content of a note
  • synonyms:

\attachment

  • searches on the attachment in the content of a note
  • synonyms:

\drawing

  • searches on the drawing in the content of a note
  • synonyms:

\starred

  • searches on the star status in the content of a note
  • synonyms:

\has-todo

  • searches on whether todo items are present in the content of a note
  • synonyms:

\has-checklist

  • searches on whether a checklist is present in the content of a note
  • synonyms:

\has-list

  • searches on whether a numbered or ordered list or checklist is present in the content of a note
  • synonyms:

\has-code

  • searches on whether a code snippet is present in the content of a note
  • synonyms:

\has-quote

  • searches on whether a quote is present in the content of a note
  • synonyms:

Projects and Categories

\category

  • searches on the category that contains a note
  • synonyms:

\project

  • searches on the project that contains a note
  • synonyms:

\archived

  • searches on whether a quote is part of an archived project
  • synonyms:

Presets

\recently-edited

  • searches on recently edited notes
  • synonyms:

\now

  • searches on currently ongoing notes
  • synonyms:

\upcoming

  • searches on upcoming notes
  • synonyms:

\earlier

  • searches on notes that have just finished
  • synonyms:

\on-this-day

  • searches on notes from the past that have been assigned to the same day in a previous year.
  • synonyms:

\random

  • returns a given number of randomly selected notes
  • synonyms:

Operators

AND

  • the terms should both be present
  • synonyms: &&

OR

  • one of the terms should be present
  • synonyms: ||

NOT

  • the term should not be present
  • synonyms: !

Literal Matches

() and “”

Grouping

Localization

Note that all actions and parameters should be properly localized according to the language of the app. You can use in that case either the above English variant or the translated variants. Note that although the actions might contain accents and/or capitals, it’s not needed to type these, for example in the French version of Agenda, you can get a numbered list by typing any of the following:

  • \numérotée
  • \numerotee
  • \Numérotée
  • \numbered

Speaking of Localization: want to help localize Agenda to your favorite language?, for instance to Korean or Japanese, let us know or leave a message at the page for your language..

2 Likes

Really struggling with the query editor here! I want to create a pinned overview of notes from my “Practice” category that are either not done OR edited today.

So something like: category(Practice) && (edited-date(today) || !done)

But I haven’t been able to figure out how to assemble this in the query editor. Any ideas?

It is not necessarily as applicable as in Boolean equations.

A simple OR between two terms does not lead to the expected results.
I am not sure if it ever worked, as I can no longer verify it.

Here, for example.

There is an AND between the terms.

..and it doesn’t work that way. But it would be very logical.

Back to your search…
In that case, this should work:

So something like…
Edited today and optionally not completed and that in the Practice category.

1 Like

Thank you Roms. I don’t entirely understand the logic, but it appears to work!

1 Like

We decided against requiring people to type AND and OR. Instead, each term can be “required” or “optional”. By default they are required, which amounts to AND for everything. You can set them optional if you like, which has an OR like effect.

Basically you decide if a term MUST be in every note, or is only optional for a given result.

Then this is no longer valid, correct?

Personally I would prefer the normal logical connectives, but the current setup seems to be equivalent in function, although I find it a bit confusing. I also dont understand why the above query works for “A AND (B OR C)”, and more fundamentally I dont understand how it can support hierarchies in logical statements (like the difference between “A AND (B OR C)” and “(A AND B) OR C”).

1 Like

Where is that from? Probably a very old post on the previous iteration of the search. We completely rewrote it a couple of years ago.

We deliberately steered clear of logical operators, mainly because they are quite geeky. If you are technical, it works fine, but it would rule out a lot of people. Now you just click on the term and indicate if it must be in the matches or not.

Scroll up a few pages…

I tried to link to the site here.

The agenda documentation needs more attention.

It would be great if there was a way to edit a saved search / smart overview. If I have renamed something in my Agenda (project, category, colour) then I want to update the search syntax to use the new naming. Currently this requires deleting the current overview and creating a new one (and trying to remember what syntax I originally used!)