Attio.Meetings (Attio v0.2.0)

Copy Markdown View Source

Functions for managing meetings linked to records.

Meetings represent calendar events — either synced from connected calendars or created manually. Requires the meeting:read scope for read operations and meeting:read-write for mutations.

Pagination

list/2 returns a single page. stream/2 lazily pages through all meetings; stream_all/2 collects them into {:ok, list}. See Attio for an overview.

client
|> Attio.Meetings.stream()
|> Stream.filter(fn m -> m["title"] =~ "intro" end)
|> Enum.to_list()

Summary

Functions

Creates a meeting.

Deletes a meeting.

Gets a single meeting by its ID.

Lists meetings. Returns one page.

Returns a lazy stream of all meetings across all pages.

Fetches all meetings across all pages and returns them as a list.

Functions

create(client, attrs)

@spec create(Attio.Client.t(), map()) :: {:ok, map()} | {:error, term()}

Creates a meeting.

Required attributes

  • "title" - Meeting title.
  • "start_time" - ISO 8601 start timestamp.
  • "end_time" - ISO 8601 end timestamp.

delete(client, meeting_id)

@spec delete(Attio.Client.t(), String.t()) :: {:ok, map()} | {:error, term()}

Deletes a meeting.

get(client, meeting_id)

@spec get(Attio.Client.t(), String.t()) :: {:ok, map()} | {:error, term()}

Gets a single meeting by its ID.

list(client, params \\ [])

@spec list(
  Attio.Client.t(),
  keyword()
) :: {:ok, map()} | {:error, term()}

Lists meetings. Returns one page.

Options

  • :limit - Number of meetings per page.
  • :cursor - Pagination cursor from a previous response.

stream(client, params \\ [])

@spec stream(
  Attio.Client.t(),
  keyword()
) :: Enumerable.t()

Returns a lazy stream of all meetings across all pages.

Accepts the same options as list/2. Raises {:attio_stream_error, error} on API failure mid-stream. Use stream_all/2 if you prefer a standard {:ok, list} | {:error, term()} return value.

stream_all(client, params \\ [])

@spec stream_all(
  Attio.Client.t(),
  keyword()
) :: {:ok, [map()]} | {:error, Attio.Error.t() | Exception.t()}

Fetches all meetings across all pages and returns them as a list.

Accepts the same options as list/2. Returns {:ok, [map()]} on success or {:error, term()} if any page request fails. Unlike stream/2, the entire result set is loaded into memory.

Example

{:ok, meetings} = Attio.Meetings.stream_all(client)

update(client, meeting_id, attrs)

@spec update(Attio.Client.t(), String.t(), map()) :: {:ok, map()} | {:error, term()}

Updates a meeting.