# win.tomo-x.atventar.searchCalendars

> Search calendar titles and descriptions. All supplied filters are combined with AND. Order by relevance descending then URI ascending. Search matching and relevance ranking are implementation details; the cursor is bound to the query and filters.

- Kind: query
- Authority: atventar.tomo-x.win
- Lexicon: 1
- Published by [tomo-x.win](https://lexicon.garden/identity/did:plc:qcwvyds5tixmcwkwrg3hxgxd), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:qcwvyds5tixmcwkwrg3hxgxd/win.tomo-x.atventar.searchCalendars)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:qcwvyds5tixmcwkwrg3hxgxd/win.tomo-x.atventar.searchCalendars/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:qcwvyds5tixmcwkwrg3hxgxd/win.tomo-x.atventar.searchCalendars/analytics)

## Query (`win.tomo-x.atventar.searchCalendars`)

Type: query · GET

### Parameters (query string)

- `author` (string · at-identifier): Organizer DID or handle; resolve handles to DIDs before filtering.
- `cursor` (string): Opaque continuation cursor. Reuse the same filters and limit; omit for the first page.
  - Constraints: maxLength: 4096
- `limit` (integer)
  - Constraints: minimum: 1, maximum: 100, default: 50
- `q` (string, required): Non-blank search text. Trim surrounding whitespace and reject an empty result with InvalidRequest.
  - Constraints: minLength: 1, maxLength: 1000, maxGraphemes: 100
- `year` (integer)
  - Constraints: minimum: 1, maximum: 9999

### Output (application/json)

- `calendars` (array, required)
  - Constraints: maxLength: 100
  - `items` (ref)
    - Reference: `win.tomo-x.atventar.defs#calendarView`
- `cursor` (string): Present only when another page is available.

### Errors

- `InvalidCursor`: The cursor is malformed, expired, or does not match the request filters and limit.

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Search calendar titles and descriptions. All supplied filters are combined with AND. Order by relevance descending then URI ascending. Search matching and relevance ranking are implementation details; the cursor is bound to the query and filters.",
      "errors": [
        {
          "description": "The cursor is malformed, expired, or does not match the request filters and limit.",
          "name": "InvalidCursor"
        }
      ],
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "calendars": {
              "items": {
                "ref": "win.tomo-x.atventar.defs#calendarView",
                "type": "ref"
              },
              "maxLength": 100,
              "type": "array"
            },
            "cursor": {
              "description": "Present only when another page is available.",
              "type": "string"
            }
          },
          "required": [
            "calendars"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "author": {
            "description": "Organizer DID or handle; resolve handles to DIDs before filtering.",
            "format": "at-identifier",
            "type": "string"
          },
          "cursor": {
            "description": "Opaque continuation cursor. Reuse the same filters and limit; omit for the first page.",
            "maxLength": 4096,
            "type": "string"
          },
          "limit": {
            "default": 50,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "Non-blank search text. Trim surrounding whitespace and reject an empty result with InvalidRequest.",
            "maxGraphemes": 100,
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "year": {
            "maximum": 9999,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "q"
        ],
        "type": "params"
      },
      "type": "query"
    }
  },
  "id": "win.tomo-x.atventar.searchCalendars",
  "lexicon": 1
}
```
