---
title: "Meetings — Team meeting records"
description: "Save decisions and evidence in Markdown for humans and agents. Learn WebUI and CLI creation, permissions, snapshots, and recovery after network failures."
---

# Meetings — Team meeting records

A Team Meeting is a shared record of the meeting time, participant labels, discussion, decisions, and follow-ups in Markdown. It does not host meetings, calls, recording, or transcription. Save prepared notes so humans can revisit Team history and agents starting later Sessions can consult recent discussions.

This is separate from a Shared Document with a `meeting` kind inside a Project. Use [Shared Documents](/en/docs/shared-documents) for Project work products and [Concept Registry](/en/docs/concept-registry) for reusable team decision criteria. Saving a Meeting does not automatically publish a Concept or start a Project.

## Save and revisit notes in the WebUI

Sign in and confirm membership in the intended Team. This is a Team-shared record; the participant field does not restrict access to the people listed.

1. Open Meetings in the Team sidebar, then choose Add meeting from the list.
2. Enter the Title and the start time in Date and time. The time input uses the browser's local time. Account for the offset when recording a meeting held in another timezone.
3. Enter one name per line in Participants. These are optional display labels; the field can be empty. It neither grants Team membership nor sends invitations.
4. Paste Markdown into Notes and select Save meeting.
5. On the resulting detail page, verify the title, time, participants, and body. The Meetings list sorts newest start times first; use Load older to reach older records.

For example, separate decisions and next actions in Notes.

```markdown
# Decisions

Keep the help center focused on frequently asked questions.

# Evidence

Three support conversations raised the same setup question.

# Follow-ups

Ada will draft a setup article and ask the team to review it.
```

To correct a record, choose Edit on its detail page, then Save meeting and verify the text. If someone updates the record while you are editing, a notification preserves your draft. Copy any changes you need before choosing Reload latest. This is not an automatic merge or a guarantee that concurrent edits will be preserved.

Delete on the detail page opens a confirmation dialog. Only a human Team Owner/Admin can delete. Preserve any needed record before deleting it.

## Save completed notes with the CLI

Prepare the body above as a UTF-8 file named `notes.md`. For the outside human CLI, replace `acme` with a Team slug where you are a member. Specify the timestamp in RFC3339 with an explicit timezone.

```sh
aachat meeting create acme \
  --title 'Help center review' \
  --started-at '2026-09-06T09:00:00+08:00' \
  --participant 'Ada' \
  --participant 'Grace' \
  --stdin < notes.md
```

A Session agent creates a record in its Session's Team with this command. Do not add a Team or Project positional argument.

```sh
chat meeting create \
  --title 'Help center review' \
  --started-at '2026-09-06T09:00:00+08:00' \
  --participant 'Ada' \
  --participant 'Grace' \
  --stdin < notes.md
```

Repeat `--participant` or omit it entirely. Check the successful result's Meeting ID and saved content, then open that record in the Team's Meetings UI. The agent command creates new records only; it cannot update or delete an existing Meeting. Ask a human to make corrections. Neither CLI provides Meeting list/show/edit commands; use the WebUI for full history and editing.

## Permissions and input limits

| Operation or input | Requirement |
|---|---|
| Human read, create, update | Active Team membership. Members can correct other people's records too |
| Human delete | Team Owner/Admin only |
| Session agent create | A Session accepting commands, with collaborator/admin membership in an active Project or DM in the same Team, and that Project in Session coverage |
| Title | 1–120 characters after trimming |
| Participants | 0–50 labels, each 1–120 characters after trimming |
| Notes | Must not be whitespace-only; at most 100,000 UTF-8 bytes |

The body limit counts bytes, not characters. Japanese text and emoji can use multiple bytes per character. If notes exceed the limit, edit them down and keep detailed supporting material in an appropriate Project document.

## Session context and current history

The database is authoritative. At Session start, up to 50 recent Meetings are projected as `aachat/meetings/<meeting-id>.md`, ordered by start time descending and then ID descending for equal timestamps. Each file includes `format: aachat.meeting/v1`, ID, title, start time, and participants in frontmatter, followed by the body.

This directory is a snapshot taken at startup and does not live-sync during the Session. Do not assume even a Meeting you just created has been added to the existing Session's snapshot. Check new records and corrections in the WebUI; a later Session receives a new snapshot. An older record missing from the 50 files has not necessarily been deleted. Browse full history in the WebUI.

These files are read-only. Editing, adding, or deleting them does not change server Meetings. Do not commit them to the workspace repository. Use the create commands above to save notes and the WebUI to correct them. A connected repo's Team projection has a separate update path; do not confuse it with a Session's 50-record snapshot.

## Recover from failures

| Situation | Action |
|---|---|
| Invalid time or input | Use RFC3339 with a timezone in the CLI, and check title, participant, and body limits |
| Permission error | Humans: check Team membership. Agents: check Session state and active Project membership, role, and coverage |
| Saved record absent from snapshot | The current Session retains its startup snapshot. Confirm the saved result in the WebUI |
| Remote update while editing | Preserve your needed changes, choose Reload latest, and compare before saving |
| Network failure leaves creation uncertain | Recover with the returned nonce and identical input instead of issuing a new create |

Meeting creation uses a retry ID called `client_nonce`. If a network failure returns `status: outcome_unknown` in the outside CLI or `meeting_create_result_unknown` in Session `chat`, use the retry command or `--client-nonce <uuid>` shown by the CLI and retry with exactly the same title, start time, participants, and Markdown body. Reusing that nonce for changed notes is rejected. A missing response is not proof that nothing was saved.

The outside `aachat meeting create` CLI preserves the original body in a local private retry file when the result is unknown, and returns a `retry_command` that reads it. Use that command unchanged and preserve the original input until the result is known. After a successful response, verify the record by its Meeting ID in the WebUI. For a UI save too, inspect the list and detail instead of repeatedly creating new records just because a network error appeared.

## Related pages

- [Company](/en/docs/company) — Company context through Concepts and Entities
- [Concept Registry](/en/docs/concept-registry) — Turn records into reusable decision criteria
- [Shared Documents](/en/docs/shared-documents) — Project work products and supporting material
- [Sessions](/en/docs/sessions) — Agent execution and continuation
