Skip to main content
POST
calendar.event.create

Authorizations

Authorization
string
header
required

API key: sk_live_…

Headers

Idempotency-Key
string
required

Required: this capability has an external effect.

Maximum string length: 255
Pramaan-Max-Price-Micro
string

Optional. The most this request may be priced at, in micro-USD (a whole number above 0). It replaces the capability's own price ceiling for this request, lower or higher. Sources that could cost more are left out; when none is left the answer is 400 with the lowest limit that would work.

Pattern: ^[1-9]\d{0,14}$

Body

application/json
inbox
string
required

The inbox whose calendar the event goes on.

Required string length: 1 - 320
title
string
required

The event's title, 1 to 1,000 characters.

Required string length: 1 - 1000
start
string
required

Wall-clock start, e.g. 2026-10-15T14:00:00 (or a date when allDay).

Maximum string length: 32
end
string
required

Wall-clock end, e.g. 2026-10-15T14:30:00 (or the last date when allDay).

Maximum string length: 32
allDay
boolean

Whole-day event: start and end are dates, end is the last day inclusive.

timezone
string

IANA time zone, e.g. America/New_York. Default: the calendar's.

Required string length: 1 - 64
durationMode
enum<string>

exact keeps the elapsed length across a daylight-saving change, nominal the wall-clock end. One-offs default to exact, recurring to nominal.

Available options:
nominal,
exact
description
string

Longer text, at most 65,536 characters.

Required string length: 1 - 65536
location
string

Where it happens, at most 1,024 characters.

Required string length: 1 - 1024
metadata
object

Your own key-value tags, never sent to attendees.

status
enum<string>

Default confirmed.

Available options:
confirmed,
tentative,
cancelled
attendees
object[]

Up to 100 attendees. Nothing is emailed unless sendInvites is true.

Maximum array length: 100
recurrence
object

Makes the event repeat (RFC 5545 rule). The first date is start.

sendInvites
boolean

Email one invitation per attendee. Each counts against the daily send limit and is charged per attendee. Default false.

Response

The result

kind
enum<string>
required

single: a one-off event. series: a recurring event. instance: one date of a series.

Available options:
single,
series,
instance
title
string
required

The event's title.

allDay
boolean
required

Whether the event lasts whole days (start and end are dates).

isException
boolean

true on a date of a series that has been edited on its own.

description
string

Longer text.

location
string

Where it happens, e.g. an address or a meeting link.

metadata
object

Your own key-value tags.

status
enum<string>

confirmed, tentative or cancelled.

Available options:
confirmed,
tentative,
cancelled
start
string

Wall-clock start in the event's time zone, or a date when allDay.

end
string

Wall-clock end in the event's time zone, or the last date when allDay.

timezone
string

IANA time zone, e.g. America/New_York.

durationMode
enum<string>

How a date keeps its length across a daylight-saving change: exact keeps the elapsed time, nominal keeps the wall-clock end.

Available options:
nominal,
exact
startAt
string

Start as a UTC instant, ISO 8601.

endAt
string

End as a UTC instant, ISO 8601.

recurrence
object

For a recurring event: the rule that generates its dates.

attendees
object[]

Who is invited, with their answers.

attendeeCount
number

How many attendees.

responseStatus
enum<string>

For an invitation your inbox received: how your inbox itself has answered. needs_action means still waiting for you.

Available options:
needs_action,
accepted,
declined,
tentative
source
enum<string>

api: your inbox organizes. email: created from an invitation your inbox received.

Available options:
api,
email
organizer
string

The organizer's email address.

invitationMessageId
string

RFC Message-ID of the invitation email this event came from, when it did.

sequence
number

Increases whenever a change affects what attendees see.

version
string

Opaque change marker; pass it as version on a write to fail instead of overwrite.

createdAt
string

When the event was created, ISO 8601.

updatedAt
string

When the event last changed, ISO 8601.

ref
string

Reference to what this call created. Pass it as ref to calendar.event.get.