> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Get event

> Retrieve one Google Calendar event by ID or event URL.

`getEvent` loads the current normalized representation of one event. Use it
when you already have an event ID or Calendar URL and need its schedule,
attendees, conferencing, recurrence, or metadata.

## Example

```ts theme={null}
import { automation, onHttpRequest } from "automate.ax"
import { getEvent } from "automate.ax/google-calendar"

export default automation("Load a planning event", () => {
  onHttpRequest({ scope: "automation" })

  getEvent({
    calendar: "Team Calendar",
    event: "https://calendar.google.com/calendar/event?eid=...",
    timeZone: "America/Los_Angeles",
  })
})
```

## Inputs

| Property       | Type                                              | Required | Default          | Description                                               |
| -------------- | ------------------------------------------------- | -------- | ---------------- | --------------------------------------------------------- |
| `event`        | `string`                                          | Yes      | —                | Immutable event ID or standard Google Calendar event URL. |
| `calendar`     | `string`                                          | No       | `"primary"`      | Exact visible calendar title or ID containing the event.  |
| `maxAttendees` | `number`                                          | No       | Provider default | Maximum attendees returned.                               |
| `timeZone`     | `string`                                          | No       | Calendar default | IANA timezone used in the response.                       |
| `account`      | `string \| IntegrationAccountReference<"google">` | No       | Project default  | Google account binding to use.                            |

Every action input accepts a compatible `Signal`.

## Output

Returns a `Signal<CalendarEvent>`:

```ts theme={null}
interface CalendarEvent {
  id: string
  calendarId: string
  summary: string
  description?: string
  location?: string
  status: "confirmed" | "tentative" | "cancelled"
  start?: { date?: string; dateTime?: string; timeZone?: string }
  end?: { date?: string; dateTime?: string; timeZone?: string }
  attendees: Array<{
    email: string
    displayName?: string
    responseStatus?: "needsAction" | "declined" | "tentative" | "accepted"
    optional?: boolean
    resource?: boolean
    organizer: boolean
    self: boolean
  }>
  attachments: Array<{
    fileUrl: string
    fileId?: string
    title?: string
    mimeType?: string
    iconLink?: string
  }>
  conference?: {
    conferenceId?: string
    creationStatus?: "pending" | "success" | "failure"
    name?: string
    entryPoints: Array<{
      type: string
      uri: string
      label?: string
      passcode?: string
    }>
  }
  hangoutLink?: string
  htmlLink?: string
  creator?: { email?: string; displayName?: string; self: boolean }
  organizer?: { email?: string; displayName?: string; self: boolean }
  recurrence: string[]
  recurringEventId?: string
  originalStart?: { date?: string; dateTime?: string; timeZone?: string }
  reminders: {
    useDefault: boolean
    overrides: Array<{ method: "email" | "popup"; minutes: number }>
  }
  extendedProperties: {
    private: Record<string, string>
    shared: Record<string, string>
  }
  colorId?: string
  createdAt?: string
  updatedAt?: string
  iCalUID?: string
  sequence: number
  transparency: "opaque" | "transparent"
  visibility: "default" | "public" | "private" | "confidential"
  type: string
  guestsCanInviteOthers: boolean
  guestsCanModify: boolean
  guestsCanSeeOtherGuests: boolean
}
```

For all-day events, `start.date` and `end.date` are set and the end date is
exclusive. A URL is decoded to its provider event ID; unrelated URLs fail.
