Update event

PUT/manage/events/:eventId

Update 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.

AuthLogin required

Path parameters

eventIdstringrequired

Event ID or slug.

Request body

titlestring

Event title (required); no length limit.

descriptionstring

Description in Markdown; no length limit.

languagesobject

Localized title / description.

eventTypestring

One of ONSITE / ONLINE / HYBRID (required on create).

timezonestring

IANA 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.

locationobject

Venue location.

onlineUrl / onlineDescriptionstring

Online URL (must be a valid URL) and description (up to 200 characters).

enabledTickets / enabledSideEventsboolean

Feature toggles for ticket sales and side events. These are the only feature toggles an event manager can change.

slugstring

3–200 characters; lowercase alphanumerics, hyphens and underscores only (^[a-z0-9-_]+$). Must be unique.

thumbnailUrl / mainImageUrlstring

Image URLs; must be valid URLs. Use a URL returned by the upload endpoints.

customStyle / customNavigationobject

Custom style / navigation.

organizerContactobject

Organizer contact.

tagsstring[]

Array of tag names.

statestring

One 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 / requiresFacePhotoboolean

Registration behavior.

maxParticipantsnumber

Maximum number of participants; an integer of 1 or more.

participantListVisibilitystring

One of PUBLIC / PARTICIPANTS_ONLY / PRIVATE.

participantCancellationPolicyobject

One of DISABLED / FREE_ONLY / NON_PREPAID.

entryProfileFieldsobject

Profile fields collected at registration.

ga4MeasurementId / metaPixelIdstring

Analytics 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.

datestringrequired

Event date in YYYY-MM-DD format.

doorTimestring

Doors-open time in HH:mm format.

startTimestringrequired

Start time in HH:mm format.

endTimestringrequired

End 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 / titlestring

Venue name / display label.

displayTextstring

Display text.

placeIdstring

Google Places place ID.

zipCode / country / countryCode / state / city / address / buildingstring

Address components.

geoobject

Coordinates (lat / lng)

websiteUrl / telstring

Venue website and phone number.

descriptionstring

Additional notes about the venue.

primaryboolean

Whether 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>object

Language code (ja, en, …)

<lang>.titlestring

Title shown in that language.

<lang>.descriptionstring

Description 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.

labelstring

Display label (e.g. "Support")

emailstring

Email address.

urlstring

URL, e.g. a contact form.

x / instagram / facebook / youtubestring

Official social accounts.

languagesobject

Localized 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.

Request
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-..." }
]
}'
Example response
{
"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": []
}