Календарь
Каждая операция этой группы: что она принимает, что возвращает и какими ошибками может ответить.
Операции
Events and invitations, as the Calendar page of the app shows them: list a window, read an event or the one a thread carries, put events on the calendar and change them, call off a meeting, and answer an invitation. A change that invites, updates or cancels attendees, and every answer, goes out by email, so it also needs emails:send.
GET/calendar/events
List occurrences in a window
from and to are REQUIRED. Occurrences are expanded from recurrence rules, so a calendar has no meaningful unbounded listing. A default window would turn an infinite series into a question with no answer. At most a year apart.
Requires the calendar:read scope.
Параметры запроса
fromstringОбязательноStart of the window.
Форматdate-timetostringОбязательноEnd of the window, after
fromand at most 366 days later.Форматdate-timetimezonestringОбязательноIANA zone. Decides what an all-day event means.
limitintegerRows per page, 1 to 100.
Не меньше 1Не больше 100По умолчанию25cursorstringThe previous page's
nextCursor, passed back as it came. It is opaque: it holds where the last row sat in this list's order, so a row deleted or edited between pages never breaks the walk, and the next page starts at the first row that sorts after it. A value this list did not hand out is a 400invalid_cursor.
Возвращает
A page of occurrences, sorted by start and then by event id, with hasMore and nextCursor. Send the same from, to and timezone with every cursor. Nothing in the window is dropped: a series repeats at most once a day, so it gives at most one occurrence per day of the window, and every one is reachable through the pages. The cursor holds the start and event id of the last row, so an event deleted or moved between pages never breaks the walk.
Ошибки
Ошибки, которые может вернуть любая операция400401403404422500Каталог ошибок
Также доступно в
POST/calendar/events
Create an event
Puts an event on the calendar, as New event on the Calendar page of the app does. start and end are ISO 8601 with a zone, and timezone is the IANA zone the event belongs to, UTC unless you say. recurrence takes an RRULE such as FREQ=WEEKLY;BYDAY=MO, and reminders the minutes before the start.
With attendees, an invitation goes to each of them from the address in from, which has to be one the key or app may send as, so the call also needs emails:send. sendInvites: false keeps the change to your own calendar.
Requires the calendar:write scope.
Тело запроса
summarystringОбязательноThe title, 1 to 255 characters.
От 1 до 255 символовdescriptionstringNotes about the event, up to 8,000 characters.
До 8000 символовlocationstringWhere it is: a room, an address or a link.
До 255 символовurlstringA link that belongs to the event.
До 2000 символовФорматuristartstringОбязательноWhen it starts, a
Dateor ISO 8601 with a zone.Форматdate-timeendstringОбязательноWhen it ends, after
startand at most two years later.Форматdate-timeallDaybooleanWhether it fills whole days.
startandendthen mark the days.timezonestringThe IANA zone the event belongs to,
UTCunless you say.От 1 до 64 символовrecurrencestringAn RRULE such as
FREQ=WEEKLY;BYDAY=MOwhen it repeats.До 512 символовattendeesobject[]Up to 200 people to invite, each
{ email, name?, optional? }.До 200 элементовemailstringОбязательно- До 320 символовФормат
email namestring- До 128 символов
optionalboolean
remindersobject[]Up to five reminders, each
{ minutesBefore, action? }.До 5 элементовminutesBeforeintegerОбязательно- Не меньше 0Не больше 40320
actionstring- Одно из
"DISPLAY""EMAIL""AUDIO"
transparencystringOPAQUEshows you busy andTRANSPARENTfree.Одно из"OPAQUE""TRANSPARENT"visibilitystringPUBLIC,PRIVATEorCONFIDENTIAL.Одно из"PUBLIC""PRIVATE""CONFIDENTIAL"sendInvitesbooleanFalse keeps the change to your own calendar, and sends nothing.
fromstringThe address the invitations come from. It has to be one the key may send as.
До 320 символов
Возвращает
The event, with its attendees.
Ошибки
- 403
from_address_forbidden: the key or app may not send asfrom.insufficient_scopewhen invitations would go out andemails:sendis missing.
Ошибки, которые может вернуть любая операция400401404422500Каталог ошибок
Также доступно в
GET/calendar/events/{id}
Retrieve an event
The event with its attendees and their responses. rawIcs is omitted. Everything understood in it is already structured here, and /ics serves the document.
Requires the calendar:read scope.
Параметры пути
idstringОбязательноEvent id, the
eventIdof an occurrence, such ascal_followed by 24 hex characters.
Возвращает
The event.
Ошибки
Ошибки, которые может вернуть любая операция400401403404422500Каталог ошибок
Также доступно в
PATCH/calendar/events/{id}
Change an event
Changes an event you organise. A field left out keeps its value, and attendees replaces the whole list. Everyone invited gets the updated invitation.
With attendees, an invitation goes to each of them from the address in from, which has to be one the key or app may send as, so the call also needs emails:send. sendInvites: false keeps the change to your own calendar.
Requires the calendar:write scope.
Параметры пути
idstringОбязательноThe event id from
GET /calendar/events.
Тело запроса
summarystringThe title, 1 to 255 characters.
От 1 до 255 символовdescriptionstringNotes about the event, up to 8,000 characters.
До 8000 символовlocationstringWhere it is: a room, an address or a link.
До 255 символовurlstringA link that belongs to the event.
До 2000 символовФорматuristartstringWhen it starts, a
Dateor ISO 8601 with a zone.Форматdate-timeendstringWhen it ends, after
startand at most two years later.Форматdate-timeallDaybooleanWhether it fills whole days.
startandendthen mark the days.timezonestringThe IANA zone the event belongs to,
UTCunless you say.От 1 до 64 символовrecurrencestringAn RRULE such as
FREQ=WEEKLY;BYDAY=MOwhen it repeats.До 512 символовattendeesobject[]Up to 200 people to invite, each
{ email, name?, optional? }. It replaces the whole list.До 200 элементовemailstringОбязательно- До 320 символовФормат
email namestring- До 128 символов
optionalboolean
remindersobject[]Up to five reminders, each
{ minutesBefore, action? }.До 5 элементовminutesBeforeintegerОбязательно- Не меньше 0Не больше 40320
actionstring- Одно из
"DISPLAY""EMAIL""AUDIO"
transparencystringOPAQUEshows you busy andTRANSPARENTfree.Одно из"OPAQUE""TRANSPARENT"visibilitystringPUBLIC,PRIVATEorCONFIDENTIAL.Одно из"PUBLIC""PRIVATE""CONFIDENTIAL"sendInvitesbooleanFalse keeps the change to your own calendar, and sends nothing.
fromstringThe address the invitations come from. It has to be one the key may send as.
До 320 символов
Возвращает
The event as it stands now.
Ошибки
- 403
not_organizer: the event was organised by somebody else, so you can only answer it.from_address_forbidden: the key or app may not send asfrom.- 409
event_cancelled: the meeting was called off.
Ошибки, которые может вернуть любая операция400401404422500Каталог ошибок
Также доступно в
DELETE/calendar/events/{id}
Remove an event
Removes an event from the calendar for good, as Remove does in the app. Nobody else is told: to call off a meeting with others in it, use POST /calendar/events/{id}/cancel.
Requires the calendar:write scope.
Параметры пути
idstringОбязательноThe event id from
GET /calendar/events.
Возвращает
The event is gone.
Ошибки
- 403
not_organizer: the event was organised by somebody else.
Ошибки, которые может вернуть любая операция400401404422500Каталог ошибок
Также доступно в
GET/calendar/events/{id}/ics
The event as an .ics document
Served as text/calendar with NO METHOD parameter. A METHOD makes a document actionable (a client seeing method=REQUEST draws accept/decline and can reply to the organiser), and this endpoint has no authority to invite anybody on the workspace behalf. It states what the event currently is.
Requires the calendar:read scope.
Параметры пути
idstringОбязательноEvent id, the
eventIdof an occurrence.
Возвращает
text/calendarAn iCalendar document.
Ошибки
Ошибки, которые может вернуть любая операция400401403404422500Каталог ошибок
Также доступно в
POST/calendar/events/{id}/cancel
Cancel a meeting
Calls off a meeting you organise, as Cancel meeting does in the app. It stays on the calendar with status CANCELLED, and everyone invited is told it is off, from the address in from, so a meeting with attendees also needs emails:send. The body is optional.
Requires the calendar:write scope.
Параметры пути
idstringОбязательноThe event id from
GET /calendar/events.
Тело запроса
fromstringThe address the cancellation comes from. It has to be one the key may send as.
До 320 символов
Возвращает
The event, cancelled.
Ошибки
- 403
not_organizer: the event was organised by somebody else.from_address_forbidden: the key or app may not send asfrom.
Ошибки, которые может вернуть любая операция400401404422500Каталог ошибок
Также доступно в
POST/calendar/events/{id}/respond
Answer an invitation
Accepts, declines or tentatively accepts an invitation, as the buttons of an invitation in the app do. The answer goes to the organiser by email from the invited address the key or app may send as, or from respondingAs when the invitation went to more than one of yours.
Requires the calendar:write and emails:send scopes.
Параметры пути
idstringОбязательноThe event id from
GET /calendar/events.
Тело запроса
responsestringОбязательноACCEPTED,DECLINEDorTENTATIVE.Одно из"ACCEPTED""DECLINED""TENTATIVE"respondingAsstringWhich of your invited addresses answers, when there is more than one.
До 320 символов
Возвращает
The event, with your answer.
Ошибки
- 403
not_invited: the event did not inviterespondingAs, or any address the key or app may send as.- 409
event_cancelled: the meeting was called off.reply_not_sent: the answer could not be sent to the organiser, so nothing changed.
Ошибки, которые может вернуть любая операция400401404422500Каталог ошибок
Также доступно в
GET/threads/{id}/event
The event a thread carries
The calendar event that came with an invitation in the thread, as the invitation card of the reading pane shows it. A thread with no event, or one the key or app does not reach, is a 404. Answer it with POST /calendar/events/{id}/respond.
Requires the calendar:read scope.
Параметры пути
idstringОбязательноThe thread id.
Возвращает
The event.
Ошибки
Ошибки, которые может вернуть любая операция400401403404422500Каталог ошибок
Также доступно в
Объекты
CalendarEventobject
objectstringОбязательно- Одно из
"calendar_event" idstringОбязательноuidstringОбязательноThe iCalendar UID every copy of the event shares.
sequenceinteger- Не меньше 0
summarystring- Может быть null
descriptionstring- Может быть null
locationstring- Может быть null
urlstring- Может быть null
startstringОбязательно- Формат
date-time endstringОбязательно- Формат
date-time allDaybooleantimezonestring- Может быть null
recurrencestringThe RRULE, when it repeats.
Может быть nullexdatesstring[]statusstringОбязательноCONFIRMED,TENTATIVEorCANCELLED.transparencystringvisibilitystringorganizerobject- Может быть null
emailstringnamestring- Может быть null
isOrganizerbooleanWhether you organise it, and so may change it.
sourcestringmessageIdstring- Может быть null
threadIdstring- Может быть null
alarmsobject[]minutesBeforeintegeractionstring
attendeesobject[]Обязательноobjectstring- Одно из
"calendar_attendee" emailstringnamestring- Может быть null
partstatstringNEEDS-ACTION,ACCEPTED,DECLINEDorTENTATIVE.rolestringrsvpbooleancutypestring- Может быть null
respondedAtstring- Может быть nullФормат
date-time
createdAtstring- Формат
date-time updatedAtstring- Формат
date-time
DeletedCalendarEventobject
objectstringОбязательно- Одно из
"calendar_event" idstringОбязательноdeletedbooleanОбязательно- Одно из
true