API reference
Calendar
/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ availabilityFree/busy of other mailboxes in the organization (times and busy status only, no titles), for scheduling. Addresses outside the organization come back as unknown.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Query parameters
emailsstringDefault
"". Up to 4,000 characters.self"0" | "1"fromintegerrequiredCoerced from a string.
tointegerrequiredCoerced from a string.
timeZonestringUp to 64 characters.
excludeUidstringUp to 1,000 characters.
Errors
400Ask for at most 20 addresses at a time.400Ask for at least one address.403Mailboxes are only available to members.404Mailbox not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/availability?from=1&to=1' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
people: {
email: string
known: boolean
busy: {
start: number
end: number
status: "busy" | "tentative" | "oof" | "workingElsewhere"
}[]
self?: true
}[]
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ threads/ :threadId/ messages/ :messageId/ invitation/ :actionActs on the event a message carries: add puts a published or forwarded event in a calendar, refresh sends a guest who asked the latest version, counter accepts or declines a guest's proposed new time (the organizer only).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).threadIdConversation id (
thr_…), or in Mirage a thread id (mth_…).messageIdMessage id (
msg_…; Mirage messages aremmg_…).actionadd(put the event in a calendar),refresh(send the guest who asked the latest version) orcounter(answer a proposed new time).
Request body
calendarIdany JSONacceptboolean
Errors
400Say whether to accept the proposal.403Mailboxes are only available to members.404Mailbox not found404Message not found404Not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/threads/{threadId}/messages/{messageId}/invitation/{action}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"calendarId": {},
"accept": true
}'Response 200
{
notified: {
sent: number
error?: string
}
}
| {
notified: {
sent: number
error?: string
}
eventId: string
}Response 201
{
calendarId: string
eventIds: string[]
}/ v1/ orgs/ :orgId/ mail/ calendar/ mineThe caller's own events across the mailboxes they're a member of (at most 62 days), read-only: what other apps show next to their own dates (the Tasks calendar's "My calendar"). Cancelled events and free time are left out.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).
Query parameters
fromintegerrequiredCoerced from a string.
tointegerrequiredCoerced from a string.
Errors
400Choose a window of at most 62 days.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/calendar/mine?from=1&to=1' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
events: {
mailboxId: string
calendarId: string
calendarName: string
eventId: string
summary: string
start: number
end: number
allDay: boolean
startDate?: string
endDate?: string
location: string
}[]
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendarsThe mailbox's calendars, default first. The default calendar is created on first use.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Errors
403Mailboxes are only available to members.404Mailbox not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
calendars: {
calendarId: string
name: string
color: string
description: string
isDefault: boolean
version: number
}[]
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendarsCreates a calendar (at most 50 per mailbox).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Request body
namestringrequired1–100 characters. Trimmed.
color"blue" | "orange" | "teal" | "amber" | "pink" | "green" | "red" | "gray"descriptionstringUp to 1,000 characters.
Errors
403Mailboxes are only available to members.404Mailbox not found
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example"
}'Response 201
{
calendar: {
calendarId: string
name: string
color: string
description: string
isDefault: boolean
version: number
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarIdRenames a calendar or changes its color or description.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).
Request body
namestring1–100 characters. Trimmed.
color"blue" | "orange" | "teal" | "amber" | "pink" | "green" | "red" | "gray"descriptionstringUp to 1,000 characters.
Errors
403Mailboxes are only available to members.404Mailbox not found
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"color": "blue",
"description": "example"
}'Response 200
{
calendar: {
calendarId: string
name: string
color: string
description: string
isDefault: boolean
version: number
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarIdDeletes a calendar and its events. The default calendar can't be deleted.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).
Errors
400The default calendar can't be deleted.403Mailboxes are only available to members.404Mailbox not found
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ eventsOccurrences between from and to (UTC milliseconds, at most 400 days apart) across the mailbox's calendars, or those in calendarId (comma-separated), with recurring events expanded in their own time zone.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Query parameters
fromintegerrequiredCoerced from a string.
tointegerrequiredCoerced from a string.
calendarIdstringUp to 2,000 characters.
Errors
403Mailboxes are only available to members.404Mailbox not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/events?from=1&to=1' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
occurrences: {
eventId: string
calendarId: string
recurrenceId: number
start: number
end: number
allDay: boolean
startDate?: string
endDate?: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
recurring: boolean
isException: boolean
isOrganizer: boolean
attendees: number
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
reminders: number[]
}[]
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ events/ searchOccurrences whose title or location has every word of q (case and accents ignored), from a year back to two years ahead: upcoming first (soonest first), then earlier ones (latest first), one per event series, at most 50.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).
Query parameters
qstringrequired1–200 characters. Trimmed.
Errors
403Mailboxes are only available to members.404Mailbox not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/events/search?q=example' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
results: {
eventId: string
calendarId: string
recurrenceId: number
start: number
end: number
allDay: boolean
startDate?: string
endDate?: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
recurring: boolean
isException: boolean
isOrganizer: boolean
attendees: number
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
reminders: number[]
}[]
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ eventsCreates an event. Times are wall-clock times in timeZone; all-day events take dates with an exclusive end. With attendees, the mailbox is the organizer and, unless notify is false, attendees are emailed an invitation.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).
Request body
summarystringDefault
"". Up to 1,000 characters. Trimmed.descriptionstringUp to 64,000 characters.
locationstringUp to 2,000 characters.
allDaybooleanDefault
false.startstringrequiredMatches
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?$.endstringrequiredMatches
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?$.timeZonestringrequired1–64 characters.
recurrenceobjector nullrecurrence.freq"daily" | "weekly" | "monthly" | "yearly"requiredrecurrence.intervalintegerDefault
1. 1–999.recurrence.countinteger1–5000.
recurrence.untilstringMatches
^\d{4}-\d{2}-\d{2}$.recurrence.byDayobject[]Up to 7 items.
recurrence.byDay[].day"SU" | "MO" | "TU" | "WE" | "TH" | "FR" | "SA"requiredrecurrence.byDay[].nthinteger-53–53.
recurrence.byMonthDayinteger[]Up to 31 items. Each -31–31.
recurrence.byMonthinteger[]Up to 12 items. Each 1–12.
recurrence.bySetPosinteger[]Up to 10 items. Each -366–366.
attendeesobject[]Up to 200 items.
attendees[].emailstringrequiredTrimmed. Lowercased.
attendees[].namestringUp to 200 characters. Trimmed.
attendees[].optionalbooleanbusyStatus"free" | "tentative" | "busy" | "oof" | "workingElsewhere"sensitivity"normal" | "personal" | "private" | "confidential"remindersinteger[]Up to 5 items. Each -10080–40320.
categoriesstring[]Up to 30 items. Each 1–100 characters, trimmed.
urlstringUp to 2,000 characters. URL.
status"confirmed" | "tentative" | "cancelled"notifybooleanDefault
true.
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"start": "example",
"end": "example",
"timeZone": "example"
}'Response 201
{
event: {
eventId: string
calendarId: string
uid: string
version: number
summary: string
description: string
location: string
allDay: boolean
start: number
end: number
startLocal: string
endLocal: string
timeZone: string
organizer: null | {
email: string
name?: string
}
attendees: {
email: string
name?: string
role: "optional" | "required" | "chair" | "non-participant"
status: "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
rsvp: boolean
kind: "unknown" | "resource" | "group" | "individual" | "room"
delegatedTo?: string[]
delegatedFrom?: string[]
}[]
isOrganizer: boolean
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
sensitivity: "private" | "personal" | "normal" | "confidential"
reminders: number[]
categories: string[]
url: null | string
recurrence: null | {
count?: number
byDay?: {
day: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
nth?: number
}[]
interval: number
weekStart?: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
freq: "daily" | "weekly" | "monthly" | "yearly"
byMonthDay?: number[]
byMonth?: number[]
bySetPos?: number[]
until?: string
}
rrule: null | string
exceptions: {
recurrenceId: number
start: number
end: number
startLocal: string
endLocal: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
}[]
sequence: number
}
notified: {
sent: number
error?: string
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ events/ :eventIdAn event with its recurrence, attendees, answers and changed occurrences.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).eventIdEvent id: a calendar event (
evt_…; a recurring event's occurrences share it), or a Mirage server's event (mev_…).
Errors
403Mailboxes are only available to members.404Mailbox not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events/{eventId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
event: {
eventId: string
calendarId: string
uid: string
version: number
summary: string
description: string
location: string
allDay: boolean
start: number
end: number
startLocal: string
endLocal: string
timeZone: string
organizer: null | {
email: string
name?: string
}
attendees: {
email: string
name?: string
role: "optional" | "required" | "chair" | "non-participant"
status: "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
rsvp: boolean
kind: "unknown" | "resource" | "group" | "individual" | "room"
delegatedTo?: string[]
delegatedFrom?: string[]
}[]
isOrganizer: boolean
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
sensitivity: "private" | "personal" | "normal" | "confidential"
reminders: number[]
categories: string[]
url: null | string
recurrence: null | {
count?: number
byDay?: {
day: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
nth?: number
}[]
interval: number
weekStart?: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
freq: "daily" | "weekly" | "monthly" | "yearly"
byMonthDay?: number[]
byMonth?: number[]
bySetPos?: number[]
until?: string
}
rrule: null | string
exceptions: {
recurrenceId: number
start: number
end: number
startLocal: string
endLocal: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
}[]
sequence: number
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ events/ :eventIdUpdates an event, or with recurrenceId one occurrence of it. Changing a series' time or repeat rule drops its changed occurrences and asks attendees again. Attendees get the update; removed attendees get a cancellation. moveTo moves the event to another calendar.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).eventIdEvent id: a calendar event (
evt_…; a recurring event's occurrences share it), or a Mirage server's event (mev_…).
Request body
summarystringDefault
"". Up to 1,000 characters. Trimmed.descriptionstringUp to 64,000 characters.
locationstringUp to 2,000 characters.
allDaybooleanDefault
false.startstringrequiredMatches
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?$.endstringrequiredMatches
^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?$.timeZonestringrequired1–64 characters.
recurrenceobjector nullrecurrence.freq"daily" | "weekly" | "monthly" | "yearly"requiredrecurrence.intervalintegerDefault
1. 1–999.recurrence.countinteger1–5000.
recurrence.untilstringMatches
^\d{4}-\d{2}-\d{2}$.recurrence.byDayobject[]Up to 7 items.
recurrence.byDay[].day"SU" | "MO" | "TU" | "WE" | "TH" | "FR" | "SA"requiredrecurrence.byDay[].nthinteger-53–53.
recurrence.byMonthDayinteger[]Up to 31 items. Each -31–31.
recurrence.byMonthinteger[]Up to 12 items. Each 1–12.
recurrence.bySetPosinteger[]Up to 10 items. Each -366–366.
attendeesobject[]Up to 200 items.
attendees[].emailstringrequiredTrimmed. Lowercased.
attendees[].namestringUp to 200 characters. Trimmed.
attendees[].optionalbooleanbusyStatus"free" | "tentative" | "busy" | "oof" | "workingElsewhere"sensitivity"normal" | "personal" | "private" | "confidential"remindersinteger[]Up to 5 items. Each -10080–40320.
categoriesstring[]Up to 30 items. Each 1–100 characters, trimmed.
urlstringUp to 2,000 characters. URL.
status"confirmed" | "tentative" | "cancelled"notifybooleanDefault
true.recurrenceIdintegerfollowingbooleanifVersioninteger≥ 0.
moveToany JSON
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X PUT 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events/{eventId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"start": "example",
"end": "example",
"timeZone": "example"
}'Response 200
{
event: {
eventId: string
calendarId: string
uid: string
version: number
summary: string
description: string
location: string
allDay: boolean
start: number
end: number
startLocal: string
endLocal: string
timeZone: string
organizer: null | {
email: string
name?: string
}
attendees: {
email: string
name?: string
role: "optional" | "required" | "chair" | "non-participant"
status: "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
rsvp: boolean
kind: "unknown" | "resource" | "group" | "individual" | "room"
delegatedTo?: string[]
delegatedFrom?: string[]
}[]
isOrganizer: boolean
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
sensitivity: "private" | "personal" | "normal" | "confidential"
reminders: number[]
categories: string[]
url: null | string
recurrence: null | {
count?: number
byDay?: {
day: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
nth?: number
}[]
interval: number
weekStart?: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
freq: "daily" | "weekly" | "monthly" | "yearly"
byMonthDay?: number[]
byMonth?: number[]
bySetPos?: number[]
until?: string
}
rrule: null | string
exceptions: {
recurrenceId: number
start: number
end: number
startLocal: string
endLocal: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
}[]
sequence: number
}
version: number
notified: {
sent: number
error?: string
}
eventId?: string
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ events/ :eventIdDeletes an event, or with recurrenceId one occurrence. Attendees of an event the mailbox organizes get a cancellation unless notify=false.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).eventIdEvent id: a calendar event (
evt_…; a recurring event's occurrences share it), or a Mirage server's event (mev_…).
Query parameters
recurrenceIdintegerCoerced from a string.
following"true" | "false"Default
"false".notify"true" | "false"Default
"true".ifVersioninteger≥ 0. Coerced from a string.
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events/{eventId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
notified: {
sent: number
error?: string
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ events/ :eventId/ respondAccepts, tentatively accepts or declines an invitation (or one occurrence) and, unless notify is false, emails the answer to the organizer.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).eventIdEvent id: a calendar event (
evt_…; a recurring event's occurrences share it), or a Mirage server's event (mev_…).
Request body
status"accepted" | "tentative" | "declined"requiredrecurrenceIdintegercommentstringUp to 2,000 characters.
notifybooleanDefault
true.
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events/{eventId}/respond' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"status": "accepted"
}'Response 200
{
event: {
eventId: string
calendarId: string
uid: string
version: number
summary: string
description: string
location: string
allDay: boolean
start: number
end: number
startLocal: string
endLocal: string
timeZone: string
organizer: null | {
email: string
name?: string
}
attendees: {
email: string
name?: string
role: "optional" | "required" | "chair" | "non-participant"
status: "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
rsvp: boolean
kind: "unknown" | "resource" | "group" | "individual" | "room"
delegatedTo?: string[]
delegatedFrom?: string[]
}[]
isOrganizer: boolean
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
sensitivity: "private" | "personal" | "normal" | "confidential"
reminders: number[]
categories: string[]
url: null | string
recurrence: null | {
count?: number
byDay?: {
day: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
nth?: number
}[]
interval: number
weekStart?: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
freq: "daily" | "weekly" | "monthly" | "yearly"
byMonthDay?: number[]
byMonth?: number[]
bySetPos?: number[]
until?: string
}
rrule: null | string
exceptions: {
recurrenceId: number
start: number
end: number
startLocal: string
endLocal: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
}[]
sequence: number
}
notified: {
sent: number
error?: string
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ events/ :eventId/ delegateHands this mailbox's invitation to someone else (they're invited, the organizer is told).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).eventIdEvent id: a calendar event (
evt_…; a recurring event's occurrences share it), or a Mirage server's event (mev_…).
Request body
toobjectrequiredto.emailstringrequiredUp to 254 characters. Trimmed. Lowercased.
to.namestringUp to 200 characters. Trimmed.
recurrenceIdintegercommentstringUp to 2,000 characters.
notifybooleanDefault
true.
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events/{eventId}/delegate' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"to": {
"email": "person@example.com"
}
}'Response 200
{
event: {
eventId: string
calendarId: string
uid: string
version: number
summary: string
description: string
location: string
allDay: boolean
start: number
end: number
startLocal: string
endLocal: string
timeZone: string
organizer: null | {
email: string
name?: string
}
attendees: {
email: string
name?: string
role: "optional" | "required" | "chair" | "non-participant"
status: "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
rsvp: boolean
kind: "unknown" | "resource" | "group" | "individual" | "room"
delegatedTo?: string[]
delegatedFrom?: string[]
}[]
isOrganizer: boolean
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
status: "cancelled" | "confirmed" | "tentative"
busyStatus: "busy" | "free" | "tentative" | "oof" | "workingElsewhere"
sensitivity: "private" | "personal" | "normal" | "confidential"
reminders: number[]
categories: string[]
url: null | string
recurrence: null | {
count?: number
byDay?: {
day: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
nth?: number
}[]
interval: number
weekStart?: "SA" | "SU" | "MO" | "TU" | "WE" | "TH" | "FR"
freq: "daily" | "weekly" | "monthly" | "yearly"
byMonthDay?: number[]
byMonth?: number[]
bySetPos?: number[]
until?: string
}
rrule: null | string
exceptions: {
recurrenceId: number
start: number
end: number
startLocal: string
endLocal: string
summary: string
location: string
status: "cancelled" | "confirmed" | "tentative"
myStatus: null | "accepted" | "delegated" | "tentative" | "needs-action" | "declined"
}[]
sequence: number
}
notified: {
sent: number
error?: string
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ events/ :eventId/ proposeProposes a new time to the organizer (COUNTER); nothing changes until they answer.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).eventIdEvent id: a calendar event (
evt_…; a recurring event's occurrences share it), or a Mirage server's event (mev_…).
Request body
startintegerrequiredendintegerrequiredrecurrenceIdintegercommentstringUp to 2,000 characters.
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/events/{eventId}/propose' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"start": 1,
"end": 1
}'Response 200
{
notified: {
sent: number
error?: string
}
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ importAdds the events in an iCalendar file; events whose UID is already in the calendar are replaced. Floating times are read in timeZone.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:write
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).
Request body (up to 6,144 KB)
icsstringrequired1–5,242,880 characters.
timeZonestringUp to 64 characters.
Errors
403Mailboxes are only available to members.404Mailbox not found409This mailbox's domain was removed.409… isn't verified for sending yet.413The file is too large (at most 5 MB).
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/import' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"ics": "example"
}'Response 200
{
created: number
updated: number
skipped: number
}/ v1/ orgs/ :orgId/ mail/ mailboxes/ :mailboxId/ calendars/ :calendarId/ exportThe calendar as an iCalendar file.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- calendar:read
Path parameters
orgIdOrganization id (
org_…).mailboxIdMailbox id (
mbx_…).calendarIdCalendar id (
cal_…).
Errors
403Mailboxes are only available to members.404Mailbox not found
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/mail/mailboxes/{mailboxId}/calendars/{calendarId}/export' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
filename: string
ics: string
}