Opami developersAPI v1.0.0

Endpoints you implement

A custom calendar implements these operations at URLs the member enters. Opami calls them through its locked-down executor; see Rules for your endpoints and Custom calendar.

calendars.list read

List calendars.

Methods
GET
URL placeholders
none

You answer

StatusMeaning and body
200The app's calendars.
FieldTypeRequiredNotes
calendarsCalendar[]yes0–500 items.
idstringyeslength 1–1024.
namestringyeslength 0–256.
primarybooleandefault false.
read_onlybooleandefault false.
time_zonestringlength 1–64, default "UTC".

freebusy.query read

Busy intervals.

Methods
POST
URL placeholders
none

Opami sends

FieldTypeRequiredNotes
calendar_idsstring[]yes
fromstring (date-time)yes
tostring (date-time)yes

You answer

StatusMeaning and body
200Busy intervals only, per calendar asked about.
FieldTypeRequiredNotes
calendarsobjectyes

events.list read

Events in a window.

Methods
GET
URL placeholders
{calendar_id}, {from}, {to}

You answer

StatusMeaning and body
200Events of {calendar_id} between {from} and {to}.
FieldTypeRequiredNotes
eventsEvent[]yes0–2500 items.
idstringyeslength 1–1024.
calendar_idstringyeslength 1–1024.
titlestringlength 0–1024, default "".
startstring (date-time)yes
endstring (date-time)yes
all_daybooleandefault false.
status"confirmed" | "tentative" | "cancelled"yes
attendeesobject[]0–500 items, default [].
emailstringyeslength 0–320.
namestring | nulllength 0–256.
response"needsAction" | "accepted" | "declined" | "tentative"default "needsAction".
selfboolean True on the attendee who is the calendar's owner.
locationstring | nulllength 0–2048.
descriptionstring | nulllength 0–65536.
updated_atstring (date-time)yes

events.get read

One event.

Methods
GET
URL placeholders
{calendar_id}, {event_id}

You answer

StatusMeaning and body
200The event as it now is.
FieldTypeRequiredNotes
idstringyeslength 1–1024.
calendar_idstringyeslength 1–1024.
titlestringlength 0–1024, default "".
startstring (date-time)yes
endstring (date-time)yes
all_daybooleandefault false.
status"confirmed" | "tentative" | "cancelled"yes
attendeesobject[]0–500 items, default [].
emailstringyeslength 0–320.
namestring | nulllength 0–256.
response"needsAction" | "accepted" | "declined" | "tentative"default "needsAction".
selfboolean True on the attendee who is the calendar's owner.
locationstring | nulllength 0–2048.
descriptionstring | nulllength 0–65536.
updated_atstring (date-time)yes
404No such event. Required

events.create write

Create an event.

Methods
POST, PUT
URL placeholders
{calendar_id}

Opami sends

FieldTypeRequiredNotes
titlestring
startstring (date-time)
endstring (date-time)
time_zonestring
locationstring
descriptionstring
attendeesobject[]
emailstringyes
status"confirmed" | "tentative"

You answer

StatusMeaning and body
200The event as it now is.
FieldTypeRequiredNotes
idstringyeslength 1–1024.
calendar_idstringyeslength 1–1024.
titlestringlength 0–1024, default "".
startstring (date-time)yes
endstring (date-time)yes
all_daybooleandefault false.
status"confirmed" | "tentative" | "cancelled"yes
attendeesobject[]0–500 items, default [].
emailstringyeslength 0–320.
namestring | nulllength 0–256.
response"needsAction" | "accepted" | "declined" | "tentative"default "needsAction".
selfboolean True on the attendee who is the calendar's owner.
locationstring | nulllength 0–2048.
descriptionstring | nulllength 0–65536.
updated_atstring (date-time)yes

events.update write

Change an event. Only the fields sent change.

Methods
PATCH, PUT, POST
URL placeholders
{calendar_id}, {event_id}

Opami sends

FieldTypeRequiredNotes
titlestring
startstring (date-time)
endstring (date-time)
time_zonestring
locationstring
descriptionstring
attendeesobject[]
emailstringyes
status"confirmed" | "tentative"

You answer

StatusMeaning and body
200The event as it now is.
FieldTypeRequiredNotes
idstringyeslength 1–1024.
calendar_idstringyeslength 1–1024.
titlestringlength 0–1024, default "".
startstring (date-time)yes
endstring (date-time)yes
all_daybooleandefault false.
status"confirmed" | "tentative" | "cancelled"yes
attendeesobject[]0–500 items, default [].
emailstringyeslength 0–320.
namestring | nulllength 0–256.
response"needsAction" | "accepted" | "declined" | "tentative"default "needsAction".
selfboolean True on the attendee who is the calendar's owner.
locationstring | nulllength 0–2048.
descriptionstring | nulllength 0–65536.
updated_atstring (date-time)yes

events.cancel write

Cancel an event. The body is {}. Afterwards events.get answers the event with status cancelled, or 404/410.

Methods
POST, DELETE, PATCH
URL placeholders
{calendar_id}, {event_id}

You answer

StatusMeaning and body
200The event as it now is.
FieldTypeRequiredNotes
idstringyeslength 1–1024.
calendar_idstringyeslength 1–1024.
titlestringlength 0–1024, default "".
startstring (date-time)yes
endstring (date-time)yes
all_daybooleandefault false.
status"confirmed" | "tentative" | "cancelled"yes
attendeesobject[]0–500 items, default [].
emailstringyeslength 0–320.
namestring | nulllength 0–256.
response"needsAction" | "accepted" | "declined" | "tentative"default "needsAction".
selfboolean True on the attendee who is the calendar's owner.
locationstring | nulllength 0–2048.
descriptionstring | nulllength 0–65536.
updated_atstring (date-time)yes

events.respond optional

Answer an invitation (optional).

Methods
POST, PUT, PATCH
URL placeholders
{calendar_id}, {event_id}

Opami sends

FieldTypeRequiredNotes
response"accepted" | "declined" | "tentative"yes

You answer

StatusMeaning and body
200The event as it now is.
FieldTypeRequiredNotes
idstringyeslength 1–1024.
calendar_idstringyeslength 1–1024.
titlestringlength 0–1024, default "".
startstring (date-time)yes
endstring (date-time)yes
all_daybooleandefault false.
status"confirmed" | "tentative" | "cancelled"yes
attendeesobject[]0–500 items, default [].
emailstringyeslength 0–320.
namestring | nulllength 0–256.
response"needsAction" | "accepted" | "declined" | "tentative"default "needsAction".
selfboolean True on the attendee who is the calendar's owner.
locationstring | nulllength 0–2048.
descriptionstring | nulllength 0–65536.
updated_atstring (date-time)yes