# Create Calendar Event

**Create Calendar Event** writes one event to the company Google Calendar. Slot-picking with availability is the agent **Schedule Appointment** tool, not this node.

  <ShotPlaceholder
    src="/assets/workflow-nodes/create-calendar-event.png"
    name="wn-cal"
    alt="Create Calendar Event settings"
    capture="Calendar event node. 1600×900. Title + Starts At. No attendee emails if avoidable."
  />

## Why this node

They already agreed a time (a During Call parameter, an API slot). The graph books it. **Book meetings** must be on at [Google authorizations](https://docs.voicelogica.ai/integrations/google/). The settings panel warns if it is missing; **Save** still works — the runtime does not.

## What you configure

- **Title** (required) — What appears on the calendar.
- **Starts At** (required) — `2026-08-12T15:00:00` or `2026-08-12 15:00`, usually a variable.
- **Duration (minutes)** — Used when **Ends At** is empty. Default 30.
- **Ends At** — Only if you need an explicit end.
- **Description** — Call notes, their number.
- **Location** — Address or place.
- **Attendees** — Comma-separated emails — they get the invite. Not chips.
- **Calendar** — Google calendar id. Empty = company primary.
- **Timezone** — IANA (`Europe/Athens`). Empty = company timezone.
- **Add Google Meet Link** — Attach Meet.

Ports: **Event created**, **Could not create event**, **No wait**.

## First setup — book the slot they just said

1. Calendar scope on. [During Call](https://docs.voicelogica.ai/workflows/during-call/) collects `preferred_datetime` (and an email only if you already have it from a lookup — do not take email by voice).

2. **Create Calendar Event**. Title + **Starts At** `{{preferred_datetime}}`. Duration 30. Meet on if it is a video consult.

     <ShotPlaceholder
       src="/assets/workflow-nodes/create-calendar-event-filled.png"
       name="create-calendar-event-filled"
       alt="Create Calendar Event filled"
       capture="Workflow builder → Create Calendar Event selected. Title, Starts At, Duration 30. 1600×900. Redact numbers/emails/PINs."
     />

3. [AI Response](https://docs.voicelogica.ai/workflow-nodes/ai-response/) on **Event created**.

4. **Save & go live**, attach, prove one slot you can delete.

Campaign **Book appointments** still wants Google Calendar + Schedule Appointment on the *agent*. This node does not replace that campaign goal.

## What “broken” looks like

- Warning on the node, create fails — Calendar scope off.
- Event at the wrong hour — empty Timezone vs the slot string.
- Invite missing — Attendees empty or a spoken address.

## Troubleshooting

**Schedule Appointment vs this node?**

The tool checks availability and offers slots. This node writes the time you already have. Do not run both for the same booking.

## Next Steps

[During Call](https://docs.voicelogica.ai/workflows/during-call/).  
[Send Email](https://docs.voicelogica.ai/workflow-nodes/email/) — confirmation.  
[Google authorizations](https://docs.voicelogica.ai/integrations/google/).
