Update the event

Embed
Preview of the card
<a href="https://forumulate.com/reference/forumulate-api-events-update"><img src="https://forumulate.com/reference/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/8042f004-e3d9-445f-b7a4-b6c1f86836e6/pages/310f235a-bc6a-4984-a444-4706d5389d34/social-card.svg?v=3e7ae33eec8b" alt="Update the event" width="600" height="315"></a>
PATCHhttps://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}

Requires token scope: write (the coarse method gate) for Atlas key (ak_), Personal Access Token (cft_) or OAuth (cfo_) auth — in addition to any catalog scope (GET /pats/scopes) the route’s capability needs. Session/cookie auth is governed by RBAC capabilities instead.

Parameters
orgIdstringpathrequired
spaceIdstringpathrequired
handlestringpathrequired
forumulate-versionstringheader
API version negotiation. Send forumulate-version: 2026-12-01 on every request from a new integration; it is optional only so that integrations written before versioning keep working. Each version includes everything before it:
Idempotency-Keystringheader
Makes this write safe to retry. Optional — send any unique string (a UUID is ideal) and the first request runs while its response is remembered under that key for 24 hours; an identical retry replays that same status and body instead of acting twice, so a timeout or a 5xx from the edge can be retried without creating a second row. A retry sent while the first request is still in flight is refused with 409. The key is scoped to the method and path, so the same key on a different endpoint is a different request. Error responses of 5xx are never cached — those retries re-run. A key is bound to the BODY it was first used with: reusing it with a different body is a 409 idempotency.key_reused, not a replay, because replaying would tell you a write landed that never ran. Generate one key per request, never per process or per session.
Request body application/json
titlestring
descriptionstring
locationstring
urlstring
startsAtstring
endsAtstring
timezonestring
IANA time-zone name the event is published in, e.g. Europe/Berlin.
capacityinteger
coverUrlstring
coverAltstring
What the cover shows, for screen readers and link previews.
statestring
DRAFT | PUBLISHED | POSTPONED | CANCELLED
stateReasonstring
Why it was cancelled or postponed — shown in the banner on the event page.
topicIdstring
attendanceModestring
venueobject
Show child parameters
namestring
streetstring
citystring
regionstring
postalCodestring
countrystring
latnumber
lngnumber
joinLinkVisibilitystring
public (default) or attendees: only readers who RSVP going get the join link.
public | attendees
tagsstring[]
Tag slugs. Labels and colours come from the space’s tag registry, like a blog’s.
hostsobject[]
Who hosts it, in order: {name, role?, url?, avatarUrl?} or {author: <key>} from the space’s author registry (…/spaces/{spaceId}/authors).
Show child parameters
namestring
rolestring
urlstring
avatarUrlstring
biostring
authorstring
recordingUrlstring
slidesUrlstring
customizationobject
Show child parameters
customCssstring
CSS for THIS piece only, after the space theme so it wins. Sanitised and scoped to the reader exactly like the space customCss (@import dropped, no way out of the <style>).
themeobject
A partial theme for this piece — colours, palettes, fonts, typography, colorScheme, components, contentWidth, layout, motion, and (on a blog post) post — layered over the space’s (which is over the site’s). On a post, release, event or legal document PATCH it MERGES key by key like the space theme’s PATCH, and null clears at any depth ({"paletteDark": null}); a page’s metadata replaces it whole. Unknown keys are refused by name. null clears all of it.
Show child parameters
primaryColorstring
accentColorstring
paletteobject
paletteDarkobject
fontstring
customFontFamilystring
headingFontFamilystring
bodyFontFamilystring
monoFontFamilystring
colorSchemestring
contentWidthstring
layoutobject
componentsobject
motionobject
changelogobject
typographyobject
postobject
shareImageUrlstring
The og:image / twitter:image for this piece, separate from its cover. Wins over the cover and over the generated social card.
ogTitlestring
og:title / twitter:title.
ogDescriptionstring
og:description / twitter:description.
twitterCardstring
summary (thumbnail) or summary_large_image (the default).
jsonLdstring
Structured data for this piece, as JSON (object or array of objects). Replaces the automatic markup on this piece (Article/BlogPosting, Event, DiscussionForumPosting/QAPage, the roadmap item’s Article). null restores the automatic one.
rsvpApprovalboolean
A going waits as pending until staff approve it. Default false.
guestsMaxinteger
How many guests (+1s) one RSVP may bring. Default 0.
questionsobject[]
Registration questions (the Forms field model), answered when RSVPing going.
Show child parameters
namestringrequired
typestringrequired
text | email | textarea | select | checkbox | radio | number | url | phone | date | hidden | multiselect | consent | file
labelstring
placeholderstring
requiredboolean
optionsstring[]
helpstring
patternstring
minnumber
maxnumber
valuestring
recurrenceobject
Repeat this event: {freq: daily|weekly|monthly, interval?, byWeekday?, count?, until?}. Each later date becomes its own event (own RSVPs) in the series; null stops the series. Only on an event that is not itself a generated date.
Show child parameters
freqstringrequired
daily | weekly | monthly
intervalinteger
byWeekdaystring[]
countinteger
untilstring
seriesScopestring
On a series’ first event: following also applies this change to every date still to come. Default this.
this | following
galleryobject[]
Photos from the event, shown on its page once it is over.
Show child parameters
urlstringrequired
altstring
captionstring
recapUrlstring
The write-up: a blog post (a path on this site or a URL), linked once it is over.
feedbackFormIdstring
A form of this organization (Forms) asked of readers once the event is over.
{
  "title": "string",
  "description": "string",
  "location": "string",
  "url": "string",
  "startsAt": "string",
  "endsAt": "string",
  "timezone": "string",
  "capacity": 0,
  "coverUrl": "string",
  "coverAlt": "string",
  "state": "DRAFT",
  "stateReason": "string",
  "topicId": "string",
  "attendanceMode": "in_person",
  "venue": {
    "name": "string",
    "street": "string",
    "city": "string",
    "region": "string",
    "postalCode": "string",
    "country": "string",
    "lat": 0,
    "lng": 0
  },
  "joinLinkVisibility": "public",
  "tags": [
    "string"
  ],
  "hosts": [
    {
      "name": "string",
      "role": "string",
      "url": null,
      "avatarUrl": null,
      "bio": "string",
      "author": "string"
    }
  ],
  "recordingUrl": "string",
  "slidesUrl": "string",
  "customization": {
    "customCss": "string",
    "theme": {
      "primaryColor": null,
      "accentColor": null,
      "palette": null,
      "paletteDark": null,
      "font": null,
      "customFontFamily": null,
      "headingFontFamily": null,
      "bodyFontFamily": null,
      "monoFontFamily": null,
      "colorScheme": null,
      "contentWidth": null,
      "layout": null,
      "components": null,
      "motion": null,
      "changelog": null,
      "typography": null,
      "post": null
    },
    "shareImageUrl": null,
    "ogTitle": "string",
    "ogDescription": "string",
    "twitterCard": "summary",
    "jsonLd": "string"
  },
  "rsvpApproval": true,
  "guestsMax": 0,
  "questions": [
    {
      "name": "string",
      "type": "text",
      "label": "",
      "placeholder": "string",
      "required": true,
      "options": [
        null
      ],
      "help": "string",
      "pattern": "string",
      "min": 0,
      "max": 0,
      "value": "string"
    }
  ],
  "recurrence": {
    "freq": "daily",
    "interval": 0,
    "byWeekday": [
      "MO"
    ],
    "count": 0,
    "until": "string"
  },
  "seriesScope": "this",
  "gallery": [
    {
      "url": "string",
      "alt": "string",
      "caption": "string"
    }
  ],
  "recapUrl": "string",
  "feedbackFormId": "string"
}
Code samples
cURL
curl -X PATCH "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}" \
  -H "forumulate-version: <value>" \
  -H "Idempotency-Key: <value>" \
  -H "Content-Type: application/json" \
  -d '{"title":"string","description":"string","location":"string","url":"string","startsAt":"string","endsAt":"string","timezone":"string","capacity":0,"coverUrl":"string","coverAlt":"string","state":"DRAFT","stateReason":"string","topicId":"string","attendanceMode":"in_person","venue":{"name":"string","street":"string","city":"string","region":"string","postalCode":"string","country":"string","lat":0,"lng":0},"joinLinkVisibility":"public","tags":["string"],"hosts":[{"name":"string","role":"string","url":null,"avatarUrl":null,"bio":"string","author":"string"}],"recordingUrl":"string","slidesUrl":"string","customization":{"customCss":"string","theme":{"primaryColor":null,"accentColor":null,"palette":null,"paletteDark":null,"font":null,"customFontFamily":null,"headingFontFamily":null,"bodyFontFamily":null,"monoFontFamily":null,"colorScheme":null,"contentWidth":null,"layout":null,"components":null,"motion":null,"changelog":null,"typography":null,"post":null},"shareImageUrl":null,"ogTitle":"string","ogDescription":"string","twitterCard":"summary","jsonLd":"string"},"rsvpApproval":true,"guestsMax":0,"questions":[{"name":"string","type":"text","label":"","placeholder":"string","required":true,"options":[null],"help":"string","pattern":"string","min":0,"max":0,"value":"string"}],"recurrence":{"freq":"daily","interval":0,"byWeekday":["MO"],"count":0,"until":"string"},"seriesScope":"this","gallery":[{"url":"string","alt":"string","caption":"string"}],"recapUrl":"string","feedbackFormId":"string"}'
TypeScript
const res = await fetch('https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}', {
  method: 'PATCH',
  headers: {
    'forumulate-version': '<value>',
    'Idempotency-Key': '<value>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"title":"string","description":"string","location":"string","url":"string","startsAt":"string","endsAt":"string","timezone":"string","capacity":0,"coverUrl":"string","coverAlt":"string","state":"DRAFT","stateReason":"string","topicId":"string","attendanceMode":"in_person","venue":{"name":"string","street":"string","city":"string","region":"string","postalCode":"string","country":"string","lat":0,"lng":0},"joinLinkVisibility":"public","tags":["string"],"hosts":[{"name":"string","role":"string","url":null,"avatarUrl":null,"bio":"string","author":"string"}],"recordingUrl":"string","slidesUrl":"string","customization":{"customCss":"string","theme":{"primaryColor":null,"accentColor":null,"palette":null,"paletteDark":null,"font":null,"customFontFamily":null,"headingFontFamily":null,"bodyFontFamily":null,"monoFontFamily":null,"colorScheme":null,"contentWidth":null,"layout":null,"components":null,"motion":null,"changelog":null,"typography":null,"post":null},"shareImageUrl":null,"ogTitle":"string","ogDescription":"string","twitterCard":"summary","jsonLd":"string"},"rsvpApproval":true,"guestsMax":0,"questions":[{"name":"string","type":"text","label":"","placeholder":"string","required":true,"options":[null],"help":"string","pattern":"string","min":0,"max":0,"value":"string"}],"recurrence":{"freq":"daily","interval":0,"byWeekday":["MO"],"count":0,"until":"string"},"seriesScope":"this","gallery":[{"url":"string","alt":"string","caption":"string"}],"recapUrl":"string","feedbackFormId":"string"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "PATCH",
    "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}",
    headers={
    "forumulate-version": "<value>",
    "Idempotency-Key": "<value>",
    "Content-Type": "application/json",
    },
    json={"title": "string", "description": "string", "location": "string", "url": "string", "startsAt": "string", "endsAt": "string", "timezone": "string", "capacity": 0, "coverUrl": "string", "coverAlt": "string", "state": "DRAFT", "stateReason": "string", "topicId": "string", "attendanceMode": "in_person", "venue": {"name": "string", "street": "string", "city": "string", "region": "string", "postalCode": "string", "country": "string", "lat": 0, "lng": 0}, "joinLinkVisibility": "public", "tags": ["string"], "hosts": [{"name": "string", "role": "string", "url": None, "avatarUrl": None, "bio": "string", "author": "string"}], "recordingUrl": "string", "slidesUrl": "string", "customization": {"customCss": "string", "theme": {"primaryColor": None, "accentColor": None, "palette": None, "paletteDark": None, "font": None, "customFontFamily": None, "headingFontFamily": None, "bodyFontFamily": None, "monoFontFamily": None, "colorScheme": None, "contentWidth": None, "layout": None, "components": None, "motion": None, "changelog": None, "typography": None, "post": None}, "shareImageUrl": None, "ogTitle": "string", "ogDescription": "string", "twitterCard": "summary", "jsonLd": "string"}, "rsvpApproval": True, "guestsMax": 0, "questions": [{"name": "string", "type": "text", "label": "", "placeholder": "string", "required": True, "options": [None], "help": "string", "pattern": "string", "min": 0, "max": 0, "value": "string"}], "recurrence": {"freq": "daily", "interval": 0, "byWeekday": ["MO"], "count": 0, "until": "string"}, "seriesScope": "this", "gallery": [{"url": "string", "alt": "string", "caption": "string"}], "recapUrl": "string", "feedbackFormId": "string"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("PATCH", "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}", strings.NewReader(`{"title":"string","description":"string","location":"string","url":"string","startsAt":"string","endsAt":"string","timezone":"string","capacity":0,"coverUrl":"string","coverAlt":"string","state":"DRAFT","stateReason":"string","topicId":"string","attendanceMode":"in_person","venue":{"name":"string","street":"string","city":"string","region":"string","postalCode":"string","country":"string","lat":0,"lng":0},"joinLinkVisibility":"public","tags":["string"],"hosts":[{"name":"string","role":"string","url":null,"avatarUrl":null,"bio":"string","author":"string"}],"recordingUrl":"string","slidesUrl":"string","customization":{"customCss":"string","theme":{"primaryColor":null,"accentColor":null,"palette":null,"paletteDark":null,"font":null,"customFontFamily":null,"headingFontFamily":null,"bodyFontFamily":null,"monoFontFamily":null,"colorScheme":null,"contentWidth":null,"layout":null,"components":null,"motion":null,"changelog":null,"typography":null,"post":null},"shareImageUrl":null,"ogTitle":"string","ogDescription":"string","twitterCard":"summary","jsonLd":"string"},"rsvpApproval":true,"guestsMax":0,"questions":[{"name":"string","type":"text","label":"","placeholder":"string","required":true,"options":[null],"help":"string","pattern":"string","min":0,"max":0,"value":"string"}],"recurrence":{"freq":"daily","interval":0,"byWeekday":["MO"],"count":0,"until":"string"},"seriesScope":"this","gallery":[{"url":"string","alt":"string","caption":"string"}],"recapUrl":"string","feedbackFormId":"string"}`))
	req.Header.Set("forumulate-version", "<value>")
	req.Header.Set("Idempotency-Key", "<value>")
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['forumulate-version: <value>', 'Idempotency-Key: <value>', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"title":"string","description":"string","location":"string","url":"string","startsAt":"string","endsAt":"string","timezone":"string","capacity":0,"coverUrl":"string","coverAlt":"string","state":"DRAFT","stateReason":"string","topicId":"string","attendanceMode":"in_person","venue":{"name":"string","street":"string","city":"string","region":"string","postalCode":"string","country":"string","lat":0,"lng":0},"joinLinkVisibility":"public","tags":["string"],"hosts":[{"name":"string","role":"string","url":null,"avatarUrl":null,"bio":"string","author":"string"}],"recordingUrl":"string","slidesUrl":"string","customization":{"customCss":"string","theme":{"primaryColor":null,"accentColor":null,"palette":null,"paletteDark":null,"font":null,"customFontFamily":null,"headingFontFamily":null,"bodyFontFamily":null,"monoFontFamily":null,"colorScheme":null,"contentWidth":null,"layout":null,"components":null,"motion":null,"changelog":null,"typography":null,"post":null},"shareImageUrl":null,"ogTitle":"string","ogDescription":"string","twitterCard":"summary","jsonLd":"string"},"rsvpApproval":true,"guestsMax":0,"questions":[{"name":"string","type":"text","label":"","placeholder":"string","required":true,"options":[null],"help":"string","pattern":"string","min":0,"max":0,"value":"string"}],"recurrence":{"freq":"daily","interval":0,"byWeekday":["MO"],"count":0,"until":"string"},"seriesScope":"this","gallery":[{"url":"string","alt":"string","caption":"string"}],"recapUrl":"string","feedbackFormId":"string"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}')
req = Net::HTTP::Patch.new(uri)
req['forumulate-version'] = '<value>'
req['Idempotency-Key'] = '<value>'
req['Content-Type'] = 'application/json'
req.body = '{"title":"string","description":"string","location":"string","url":"string","startsAt":"string","endsAt":"string","timezone":"string","capacity":0,"coverUrl":"string","coverAlt":"string","state":"DRAFT","stateReason":"string","topicId":"string","attendanceMode":"in_person","venue":{"name":"string","street":"string","city":"string","region":"string","postalCode":"string","country":"string","lat":0,"lng":0},"joinLinkVisibility":"public","tags":["string"],"hosts":[{"name":"string","role":"string","url":null,"avatarUrl":null,"bio":"string","author":"string"}],"recordingUrl":"string","slidesUrl":"string","customization":{"customCss":"string","theme":{"primaryColor":null,"accentColor":null,"palette":null,"paletteDark":null,"font":null,"customFontFamily":null,"headingFontFamily":null,"bodyFontFamily":null,"monoFontFamily":null,"colorScheme":null,"contentWidth":null,"layout":null,"components":null,"motion":null,"changelog":null,"typography":null,"post":null},"shareImageUrl":null,"ogTitle":"string","ogDescription":"string","twitterCard":"summary","jsonLd":"string"},"rsvpApproval":true,"guestsMax":0,"questions":[{"name":"string","type":"text","label":"","placeholder":"string","required":true,"options":[null],"help":"string","pattern":"string","min":0,"max":0,"value":"string"}],"recurrence":{"freq":"daily","interval":0,"byWeekday":["MO"],"count":0,"until":"string"},"seriesScope":"this","gallery":[{"url":"string","alt":"string","caption":"string"}],"recapUrl":"string","feedbackFormId":"string"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/{handle}"))
    .header("forumulate-version", "<value>")
    .header("Idempotency-Key", "<value>")
    .header("Content-Type", "application/json")
    .method("PATCH", BodyPublishers.ofString("{\"title\":\"string\",\"description\":\"string\",\"location\":\"string\",\"url\":\"string\",\"startsAt\":\"string\",\"endsAt\":\"string\",\"timezone\":\"string\",\"capacity\":0,\"coverUrl\":\"string\",\"coverAlt\":\"string\",\"state\":\"DRAFT\",\"stateReason\":\"string\",\"topicId\":\"string\",\"attendanceMode\":\"in_person\",\"venue\":{\"name\":\"string\",\"street\":\"string\",\"city\":\"string\",\"region\":\"string\",\"postalCode\":\"string\",\"country\":\"string\",\"lat\":0,\"lng\":0},\"joinLinkVisibility\":\"public\",\"tags\":[\"string\"],\"hosts\":[{\"name\":\"string\",\"role\":\"string\",\"url\":null,\"avatarUrl\":null,\"bio\":\"string\",\"author\":\"string\"}],\"recordingUrl\":\"string\",\"slidesUrl\":\"string\",\"customization\":{\"customCss\":\"string\",\"theme\":{\"primaryColor\":null,\"accentColor\":null,\"palette\":null,\"paletteDark\":null,\"font\":null,\"customFontFamily\":null,\"headingFontFamily\":null,\"bodyFontFamily\":null,\"monoFontFamily\":null,\"colorScheme\":null,\"contentWidth\":null,\"layout\":null,\"components\":null,\"motion\":null,\"changelog\":null,\"typography\":null,\"post\":null},\"shareImageUrl\":null,\"ogTitle\":\"string\",\"ogDescription\":\"string\",\"twitterCard\":\"summary\",\"jsonLd\":\"string\"},\"rsvpApproval\":true,\"guestsMax\":0,\"questions\":[{\"name\":\"string\",\"type\":\"text\",\"label\":\"\",\"placeholder\":\"string\",\"required\":true,\"options\":[null],\"help\":\"string\",\"pattern\":\"string\",\"min\":0,\"max\":0,\"value\":\"string\"}],\"recurrence\":{\"freq\":\"daily\",\"interval\":0,\"byWeekday\":[\"MO\"],\"count\":0,\"until\":\"string\"},\"seriesScope\":\"this\",\"gallery\":[{\"url\":\"string\",\"alt\":\"string\",\"caption\":\"string\"}],\"recapUrl\":\"string\",\"feedbackFormId\":\"string\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 Success.
Example
{
  "attendanceMode": "hybrid",
  "capacity": 0,
  "capacityState": {
    "capacity": 0,
    "full": true,
    "going": 0,
    "spotsLeft": 0,
    "waitlisted": 0,
    "waitlistOpen": true
  },
  "counts": {
    "declined": 0,
    "going": 0,
    "interested": 0,
    "waitlist": 0
  },
  "coverAlt": "string",
  "coverUrl": "string",
  "customization": {
    "customCss": "string",
    "jsonLd": "string",
    "ogDescription": "string",
    "ogTitle": "string",
    "shareImageUrl": "string",
    "theme": {
      "accentColor": null,
      "bodyFontFamily": null,
      "changelog": null,
      "colorScheme": null,
      "components": null,
      "contentWidth": null,
      "customFontFamily": null,
      "font": null,
      "headingFontFamily": null,
      "layout": null,
      "monoFontFamily": null,
      "motion": null,
      "palette": null,
      "paletteDark": null,
      "post": null,
      "primaryColor": null,
      "typography": null
    },
    "twitterCard": "summary"
  },
  "description": "string",
  "endsAt": "string",
  "feedbackFormId": "string",
  "gallery": [
    {
      "alt": "string",
      "caption": "string",
      "url": "string"
    }
  ],
  "guestsMax": 0,
  "hostInfo": [
    {
      "author": null,
      "avatarUrl": null,
      "bio": null,
      "handle": "string",
      "name": "string",
      "role": null,
      "url": null,
      "userId": null
    }
  ],
  "hosts": [
    {}
  ],
  "id": "string",
  "joinLinkHidden": true,
  "joinLinkVisibility": "attendees",
  "location": "string",
  "phase": "live",
  "previousStartsAt": "string",
  "questions": [
    {
      "help": "string",
      "label": "string",
      "max": 0,
      "min": 0,
      "name": "string",
      "options": [
        null
      ],
      "pattern": "string",
      "placeholder": "string",
      "required": true,
      "type": "checkbox",
      "value": "string"
    }
  ],
  "recapUrl": "string",
  "recordingUrl": "string",
  "recurrence": {
    "byWeekday": [
      null
    ],
    "count": 0,
    "freq": "daily",
    "interval": 0,
    "until": "string"
  },
  "rrule": "string",
  "rsvpApproval": true,
  "sequence": 0,
  "seriesId": "string",
  "slidesUrl": "string",
  "slug": "string",
  "startsAt": "string",
  "state": "CANCELLED",
  "stateReason": "string",
  "tagInfo": [
    {
      "color": null,
      "colorDark": null,
      "coverUrl": null,
      "description": null,
      "gradient": null,
      "icon": "string",
      "label": "string",
      "pagePalette": null,
      "pageScheme": "dark",
      "slug": "string",
      "textColor": null,
      "textColorDark": null
    }
  ],
  "tags": [
    "string"
  ],
  "timezone": "string",
  "title": "string",
  "topicId": "string",
  "updatedAt": "string",
  "url": "string",
  "venue": {
    "city": "string",
    "country": "string",
    "lat": 0,
    "lng": 0,
    "name": "string",
    "postalCode": "string",
    "region": "string",
    "street": "string"
  },
  "warnings": [
    "tags: \"Launch Day\" is stored as \"launch-day\""
  ]
}
Schema
attendanceModestringrequired
hybrid | in_person | online
capacitynumberrequired
capacityStateobjectrequired
Show child parameters
capacitynumberrequired
fullbooleanrequired
goingnumberrequired
spotsLeftnumberrequired
waitlistednumberrequired
waitlistOpenbooleanrequired
countsobjectrequired
Show child parameters
declinednumberrequired
goingnumberrequired
interestednumberrequired
waitlistnumberrequired
coverAltstringrequired
coverUrlstringrequired
customizationPieceCustomizationrequired
Show child parameters
customCssstring
jsonLdstring
ogDescriptionstring
ogTitlestring
shareImageUrlstring
themeobject
Show child parameters
accentColorstring
bodyFontFamilystring
changelogobject
colorSchemestring
dark | light | system
componentsobject
contentWidthstring
full | standard | wide
customFontFamilystring
fontstring
mono | sans | serif
headingFontFamilystring
layoutobject
monoFontFamilystring
motionobject
paletteobject
paletteDarkobject
postobject
A structurally large type (a deeply nested or recursive union). Its full shape is served by the endpoint that produces it; GET /docs/block-schema covers the document block model.
primaryColorstring
typographyobject
twitterCardstring
summary | summary_large_image
descriptionstringrequired
endsAtstringrequired
feedbackFormIdstringrequired
galleryobject[]required
Show child parameters
altstring
captionstring
urlstringrequired
guestsMaxnumberrequired
hostInfoBylineView[]required
Show child parameters
authorstringrequired
avatarUrlstringrequired
biostringrequired
handlestring
namestringrequired
rolestringrequired
urlstringrequired
userIdstringrequired
hostsobject[]required
idstringrequired
joinLinkHiddenbooleanrequired
joinLinkVisibilitystringrequired
attendees | public
locationstringrequired
phasestringrequired
live | past | upcoming
previousStartsAtstringrequired
questionsFormField[]required
Show child parameters
helpstring
labelstringrequired
maxnumber
minnumber
namestringrequired
optionsstring[]
patternstring
placeholderstring
requiredboolean
typestringrequired
checkbox | consent | date | email | file | hidden | multiselect | number | phone | radio | select | text | textarea | url
valuestring
recapUrlstringrequired
recordingUrlstringrequired
recurrenceobjectrequired
Show child parameters
byWeekdaystring[]
countnumber
freqstringrequired
daily | monthly | weekly
intervalnumber
untilstring
rrulestringrequired
rsvpApprovalbooleanrequired
sequencenumberrequired
seriesIdstringrequired
slidesUrlstringrequired
slugstringrequired
startsAtstringrequired
statestringrequired
CANCELLED | DRAFT | POSTPONED | PUBLISHED
stateReasonstringrequired
tagInfoTagDisplay[]required
Show child parameters
colorstringrequired
colorDarkstringrequired
coverUrlstringrequired
descriptionstringrequired
gradientarrayrequired
iconstring
labelstringrequired
pagePaletteobjectrequired
pageSchemestringrequired
dark | light
slugstringrequired
textColorstringrequired
textColorDarkstringrequired
tagsstring[]required
timezonestringrequired
titlestringrequired
topicIdstringrequired
updatedAtstringrequired
urlstringrequired
venueobjectrequired
400 The request could not be understood — a malformed header, path or query value (request.malformed). A value that was understood but is not acceptable is a 422 validation.failed.
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
401 No credential, or one that is expired or revoked (auth.required). Send a Bearer token or the session cookie.
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
403 Authenticated, and not allowed — always rbac.forbidden, whether what is missing is the capability, the token scope, or a resource the token is pinned away from. The message names the capability and, for a scope refusal, the scopes that would grant it. A refusal because of the PLAN is a 402 with quota.exceeded, not this.
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
404 No such thing — one of the ids in the path does not resolve, or resolves to something this caller may not see (*.not_found).
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
422 The body was understood and a value is unacceptable (validation.failed). error.details names the field paths.
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
429 Rate limited — see the RateLimit-* headers.
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
default Error — the stable { error: { code, message } } envelope.
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {},
    "docs": "string",
    "reason": "string",
    "slugs": [
      "string"
    ],
    "conflict": {
      "etag": "string",
      "ops": [
        null
      ]
    }
  },
  "requestId": "string"
}
The Forumulate teamUpdated