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
| Status | Meaning and body |
|---|
200 | The app's calendars.| Field | Type | Required | Notes |
|---|
calendars | Calendar[] | yes | 0–500 items. | id | string | yes | length 1–1024. | name | string | yes | length 0–256. | primary | boolean | | default false. | read_only | boolean | | default false. | time_zone | string | | length 1–64, default "UTC". |
|
freebusy.query read
Busy intervals.
- Methods
- POST
- URL placeholders
- none
Opami sends
| Field | Type | Required | Notes |
|---|
calendar_ids | string[] | yes | |
from | string (date-time) | yes | |
to | string (date-time) | yes | |
You answer
| Status | Meaning and body |
|---|
200 | Busy intervals only, per calendar asked about.| Field | Type | Required | Notes |
|---|
calendars | object | yes | |
|
events.list read
Events in a window.
- Methods
- GET
- URL placeholders
{calendar_id}, {from}, {to}
You answer
| Status | Meaning and body |
|---|
200 | Events of {calendar_id} between {from} and {to}.| Field | Type | Required | Notes |
|---|
events | Event[] | yes | 0–2500 items. | id | string | yes | length 1–1024. | calendar_id | string | yes | length 1–1024. | title | string | | length 0–1024, default "". | start | string (date-time) | yes | | end | string (date-time) | yes | | all_day | boolean | | default false. | status | "confirmed" | "tentative" | "cancelled" | yes | | attendees | object[] | | 0–500 items, default []. | email | string | yes | length 0–320. | name | string | null | | length 0–256. | response | "needsAction" | "accepted" | "declined" | "tentative" | | default "needsAction". | self | boolean | | True on the attendee who is the calendar's owner. | location | string | null | | length 0–2048. | description | string | null | | length 0–65536. | updated_at | string (date-time) | yes | |
|
events.get read
One event.
- Methods
- GET
- URL placeholders
{calendar_id}, {event_id}
You answer
| Status | Meaning and body |
|---|
200 | The event as it now is.| Field | Type | Required | Notes |
|---|
id | string | yes | length 1–1024. | calendar_id | string | yes | length 1–1024. | title | string | | length 0–1024, default "". | start | string (date-time) | yes | | end | string (date-time) | yes | | all_day | boolean | | default false. | status | "confirmed" | "tentative" | "cancelled" | yes | | attendees | object[] | | 0–500 items, default []. | email | string | yes | length 0–320. | name | string | null | | length 0–256. | response | "needsAction" | "accepted" | "declined" | "tentative" | | default "needsAction". | self | boolean | | True on the attendee who is the calendar's owner. | location | string | null | | length 0–2048. | description | string | null | | length 0–65536. | updated_at | string (date-time) | yes | |
|
404 | No such event. Required |
events.create write
Create an event.
- Methods
- POST, PUT
- URL placeholders
{calendar_id}
Opami sends
| Field | Type | Required | Notes |
|---|
title | string | | |
start | string (date-time) | | |
end | string (date-time) | | |
time_zone | string | | |
location | string | | |
description | string | | |
attendees | object[] | | |
email | string | yes | |
status | "confirmed" | "tentative" | | |
You answer
| Status | Meaning and body |
|---|
200 | The event as it now is.| Field | Type | Required | Notes |
|---|
id | string | yes | length 1–1024. | calendar_id | string | yes | length 1–1024. | title | string | | length 0–1024, default "". | start | string (date-time) | yes | | end | string (date-time) | yes | | all_day | boolean | | default false. | status | "confirmed" | "tentative" | "cancelled" | yes | | attendees | object[] | | 0–500 items, default []. | email | string | yes | length 0–320. | name | string | null | | length 0–256. | response | "needsAction" | "accepted" | "declined" | "tentative" | | default "needsAction". | self | boolean | | True on the attendee who is the calendar's owner. | location | string | null | | length 0–2048. | description | string | null | | length 0–65536. | updated_at | string (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
| Field | Type | Required | Notes |
|---|
title | string | | |
start | string (date-time) | | |
end | string (date-time) | | |
time_zone | string | | |
location | string | | |
description | string | | |
attendees | object[] | | |
email | string | yes | |
status | "confirmed" | "tentative" | | |
You answer
| Status | Meaning and body |
|---|
200 | The event as it now is.| Field | Type | Required | Notes |
|---|
id | string | yes | length 1–1024. | calendar_id | string | yes | length 1–1024. | title | string | | length 0–1024, default "". | start | string (date-time) | yes | | end | string (date-time) | yes | | all_day | boolean | | default false. | status | "confirmed" | "tentative" | "cancelled" | yes | | attendees | object[] | | 0–500 items, default []. | email | string | yes | length 0–320. | name | string | null | | length 0–256. | response | "needsAction" | "accepted" | "declined" | "tentative" | | default "needsAction". | self | boolean | | True on the attendee who is the calendar's owner. | location | string | null | | length 0–2048. | description | string | null | | length 0–65536. | updated_at | string (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
| Status | Meaning and body |
|---|
200 | The event as it now is.| Field | Type | Required | Notes |
|---|
id | string | yes | length 1–1024. | calendar_id | string | yes | length 1–1024. | title | string | | length 0–1024, default "". | start | string (date-time) | yes | | end | string (date-time) | yes | | all_day | boolean | | default false. | status | "confirmed" | "tentative" | "cancelled" | yes | | attendees | object[] | | 0–500 items, default []. | email | string | yes | length 0–320. | name | string | null | | length 0–256. | response | "needsAction" | "accepted" | "declined" | "tentative" | | default "needsAction". | self | boolean | | True on the attendee who is the calendar's owner. | location | string | null | | length 0–2048. | description | string | null | | length 0–65536. | updated_at | string (date-time) | yes | |
|
events.respond optional
Answer an invitation (optional).
- Methods
- POST, PUT, PATCH
- URL placeholders
{calendar_id}, {event_id}
Opami sends
| Field | Type | Required | Notes |
|---|
response | "accepted" | "declined" | "tentative" | yes | |
You answer
| Status | Meaning and body |
|---|
200 | The event as it now is.| Field | Type | Required | Notes |
|---|
id | string | yes | length 1–1024. | calendar_id | string | yes | length 1–1024. | title | string | | length 0–1024, default "". | start | string (date-time) | yes | | end | string (date-time) | yes | | all_day | boolean | | default false. | status | "confirmed" | "tentative" | "cancelled" | yes | | attendees | object[] | | 0–500 items, default []. | email | string | yes | length 0–320. | name | string | null | | length 0–256. | response | "needsAction" | "accepted" | "declined" | "tentative" | | default "needsAction". | self | boolean | | True on the attendee who is the calendar's owner. | location | string | null | | length 0–2048. | description | string | null | | length 0–65536. | updated_at | string (date-time) | yes | |
|