---
title: Calendar
description: "The owner's Google Calendar, read live, and time held on it. 2 tools."
group: calendar
tools: [calendar.list, calendar.hold]
source: [packages/agents/src/tools/writes.ts, packages/integrations/src/catalog.ts]
generated: true
---

> Roadstar docs for agents. Every page, as markdown: https://docs.roadstar.app/llms.txt

The owner's own Google Calendar. `list` reads meetings with their guests; `hold` blocks time on the owner's calendar and invites nobody. To meet someone, hold the time and ask them by email.

Holding time needs the owner's connection to allow it. Until it does, `hold` returns error `reauth`, and a card asks the owner to connect again.

## How to use it

What `find_tools` sends with these tools, word for word:

> The owner's own Google Calendar, read and written as them.

## Tools

| Tool | What it does | Owner's yes |
| --- | --- | --- |
| [calendar.list](#list) | Meetings between two times, soonest first, with guests | No |
| [calendar.hold](#hold) | Hold time on the owner's own calendar; invites nobody | No |

## list

`calendar.list` · Meetings between two times, soonest first, with guests.

**Owner's yes:** No. Nothing of the owner's changes.

| Input | Type | Required | Limits |
| --- | --- | --- | --- |
| `after` | text | yes | up to 40 characters |
| `before` | text | yes | up to 40 characters |
| `query` | text | no | up to 200 characters |
| `limit` | whole number | no | 1–50, default 20 |

Returns:

```ts
{
  id: string;
  title: string;
  start: string;
  end: string;
  guests: string[];
  url: string;
}[]
```

## hold

`calendar.hold` · Hold time on the owner's own calendar; invites nobody.

**Owner's yes:** No. It makes something new.\
**Your work:** listed on Home, with Undo.

| Input | Type | Required | Limits |
| --- | --- | --- | --- |
| `title` | text | yes | 1–200 characters |
| `start` | text | yes | up to 40 characters |
| `end` | text | yes | up to 40 characters |
| `note` | text | no | up to 2,000 characters |

Returns:

```ts
{
  id: string;
  url: string;
}
```
