Update event
/manage/events/:eventIdUpdate an event. Requires the eventWrite permission (meeting-only updates also accept eventMeetingWrite). Organizers (EventOrganizer) are reconciled from the `organizers` array: organizers not present in the array are removed.
| Auth | Login required |
|---|
Path parameters
eventIdstringrequiredEvent ID or slug.
Request body
titlestringEvent title (required); no length limit.
descriptionstringDescription in Markdown; no length limit.
languagesobjectLocalized title / description.
eventTypestringOne of ONSITE / ONLINE / HYBRID (required on create).
timezonestringIANA timezone (e.g. Asia/Tokyo).
schedulesobject[]Array of per-day schedules; each has date (YYYY-MM-DD) plus startTime / endTime (HH:mm), with an optional doorTime. Times are interpreted in the event's timezone.
locationobjectVenue location.
onlineUrl / onlineDescriptionstringOnline URL (must be a valid URL) and description (up to 200 characters).
enabledTickets / enabledSideEventsbooleanFeature toggles for ticket sales and side events. These are the only feature toggles an event manager can change.
slugstring3–200 characters; lowercase alphanumerics, hyphens and underscores only (^[a-z0-9-_]+$). Must be unique.
thumbnailUrl / mainImageUrlstringImage URLs; must be valid URLs. Use a URL returned by the upload endpoints.
customStyle / customNavigationobjectCustom style / navigation.
organizerContactobjectOrganizer contact.
tagsstring[]Array of tag names.
statestringOne of DRAFT / PUBLISHED / PRIVATE / CANCELED. Changing the state to CANCELED requires a platform administrator.
organizersobject[]Full list of organizers (EventOrganizer); omitted organizers are removed.
requiresApproval / registrationPaused / requiresFacePhotobooleanRegistration behavior.
maxParticipantsnumberMaximum number of participants; an integer of 1 or more.
participantListVisibilitystringOne of PUBLIC / PARTICIPANTS_ONLY / PRIVATE.
participantCancellationPolicyobjectOne of DISABLED / FREE_ONLY / NON_PREPAID.
entryProfileFieldsobjectProfile fields collected at registration.
ga4MeasurementId / metaPixelIdstringAnalytics tag IDs; up to 20 characters each.
Object structures
schedules
One entry per event day. Date and time are specified separately, and times are interpreted in the event's timezone.
datestringrequiredEvent date in YYYY-MM-DD format.
doorTimestringDoors-open time in HH:mm format.
startTimestringrequiredStart time in HH:mm format.
endTimestringrequiredEnd time in HH:mm format.
[
{ "date": "2026-09-01", "doorTime": "09:30", "startTime": "10:00", "endTime": "18:00" }
]location
Venue information. Pass a single object, or an array of objects for multiple venues.
name / titlestringVenue name / display label.
displayTextstringDisplay text.
placeIdstringGoogle Places place ID.
zipCode / country / countryCode / state / city / address / buildingstringAddress components.
geoobjectCoordinates (lat / lng)
websiteUrl / telstringVenue website and phone number.
descriptionstringAdditional notes about the venue.
primarybooleanWhether this is the primary venue when several are listed.
{
"name": "4S Hall",
"displayText": "東京都渋谷区...",
"countryCode": "JP",
"geo": { "lat": 35.6595, "lng": 139.7005 },
"primary": true
}languages
Keyed by language code; each entry overrides the title / description shown for that language. Languages you omit fall back to the default fields.
<lang>objectLanguage code (ja, en, …)
<lang>.titlestringTitle shown in that language.
<lang>.descriptionstringDescription shown in that language.
{
"ja": { "title": "オープニング基調講演", "description": "..." },
"en": { "title": "Opening Keynote", "description": "..." }
}contact / organizerContact
Contact details. Pass an array of objects (up to 10). A single object is also accepted for backwards compatibility.
labelstringDisplay label (e.g. "Support")
emailstringEmail address.
urlstringURL, e.g. a contact form.
x / instagram / facebook / youtubestringOfficial social accounts.
languagesobjectLocalized labels ({ [lang]: { label } })
[
{
"label": "お問い合わせ",
"email": "contact@example.com",
"languages": { "en": { "label": "Contact" } }
}
]Notes
When accessed with an OAuth access token, `email` fields are recursively removed from the response JSON (they are retained for session-authenticated dashboard access).
enabledMeetings, enabledChat, enabledReferralTree (invitations) and enabledConferenceMode can only be turned on through the platform administration (admin) API. Values for them sent to this endpoint are ignored, and they are always false on create. The only feature toggles an event manager can change are enabledTickets and enabledSideEvents. Read the current values from GET /manage/events/:eventId.
curl https://api.4s.link/manage/events/EVENT_ID \-X PUT \-H "Authorization: Bearer 4s_at_..." \-H "Content-Type: application/json" \-d '{"title": "4S Tech Conference 2026","state": "PUBLISHED","organizers": [{ "communityId": "c1a2b3c4-..." }]}'
{"id": "e1f2a3b4-...","slug": "tech-conf-2026","title": "4S Tech Conference 2026","description": "...","state": "DRAFT","eventType": "HYBRID","timezone": "Asia/Tokyo","schedules": [{ "date": "2026-09-01", "doorTime": "09:30", "startTime": "10:00", "endTime": "18:00" }],"location": { "displayText": "Tokyo, Japan" },"thumbnailUrl": "https://.../thumb.png","organizers": [{ "id": "eo1a2b3-...", "communityId": "c1a2b3c4-...", "userId": null }],"tags": []}