Skip to the documentation
API

Create an event

Puts an event on the calendar, as New event does in the app, and invites the attendees.

POST/calendar/events

Runs the real call on your workspace.

POST /calendar/events

Puts an event on the calendar, as New event does in the app, and invites the attendees.

Example

Needs calendar:write, and emails:send too when the event has attendees, because each of them gets an invitation by email from from.

curl
curl -X POST "$OE/calendar/events" -H "$AUTH" -H 'content-type: application/json' -d '{  "summary": "Planning",  "start": "2026-10-12T09:00:00Z",  "end": "2026-10-12T09:30:00Z",  "timezone": "Europe/London",  "recurrence": "FREQ=WEEKLY;BYDAY=MO",  "attendees": [{ "email": "[email protected]", "name": "Ada" }],  "reminders": [{ "minutesBefore": 10 }],  "from": "[email protected]"}'
Response
{  "object": "calendar_event",  "id": "cal_3f9a1c7e5b2d48a06c1e9f4b",  "uid": "5d2c8e1a-7b3f-4c9d-a6e2-1f8b0c4d7e93@openemail",  "sequence": 0,  "summary": "Planning",  "description": null,  "location": "Room 2",  "url": null,  "start": "2026-10-12T09:00:00.000Z",  "end": "2026-10-12T09:30:00.000Z",  "allDay": false,  "timezone": "Europe/London",  "recurrence": "FREQ=WEEKLY;BYDAY=MO",  "exdates": [],  "status": "CONFIRMED",  "transparency": "OPAQUE",  "visibility": "PUBLIC",  "organizer": { "email": "[email protected]", "name": null },  "isOrganizer": true,  "source": "local",  "messageId": null,  "threadId": null,  "alarms": [{ "minutesBefore": 10, "action": "DISPLAY" }],  "attendees": [    {      "object": "calendar_attendee",      "email": "[email protected]",      "name": "Ada",      "partstat": "NEEDS-ACTION",      "role": "REQ-PARTICIPANT",      "rsvp": true,      "cutype": null,      "respondedAt": null    }  ],  "createdAt": "2026-10-02T14:03:11.000Z",  "updatedAt": "2026-10-02T14:03:11.000Z"}

from has to be an address the key may send as, or the call is a 403 from_address_forbidden. An event with attendees and no from is a 422 invalid_parameter, unless sendInvites is false.

recurrence takes an RRULE such as FREQ=WEEKLY;BYDAY=MO, and reminders up to five { minutesBefore }.

Reference