What you type here filters the calendar you are looking at: the
same view, with less in it. Plain words are ANDed, and each has to appear somewhere
in the event: its title, where it is, its notes, or the people on it. Wrap a phrase
in "double quotes" to match it exactly.
Press Enter and the same query becomes a search across every calendar, including the ones you have switched off. Hiding a calendar is about the drawing, never about the data.
These narrow without searching text, so they work on their own as well as beside words. Mixing them is an AND.
cal:name |
Only that calendar. Matches part of the name; cal:fam is enough. |
with:who |
Someone on it: an attendee or the organiser, by name or address. |
in:where |
The location field. |
is:span |
The long ones: anything covering more than a day. This is the whole rail. |
is:allday / is:timed |
All-day events, or the ones with a clock on them. |
is:recurring |
Anything that repeats. |
is:free / is:busy |
Whether it claims the time or is only a note in it (iCalendar's TRANSP). |
is:cancelled |
Called off, but still on the calendar. |
Tick Regex and the words become POSIX regular expressions, matched
case-insensitively by Postgres itself against an indexed column, so
standup|jour fixe or ^Q[1-4] costs about what a word
costs. rx: in front of a term turns it on for that query without
reaching for the tickbox.
dentist cal:family is:span with:anna rx:invoice.*2026 is:recurring