# Events

Event management endpoints for creating, updating, and querying events. Events can be one-time or recurring, and can take place in Genesis City or Worlds.

## List events

> Retrieves a list of events based on various filters. By default returns active events\
> (current and future) sorted by start date ascending. Supports filtering by location,\
> creator, categories, schedules, and more.\
> \
> When called with the service bearer token (\`Authorization: Bearer ...\`), the response\
> includes pending and rejected rows and the \`approved\` / \`rejected\` query parameters are\
> honored as explicit state filters.<br>

```json
{"openapi":"3.0.3","info":{"title":"Decentraland Events API","version":"1.0.0"},"tags":[{"name":"Events","description":"Event management endpoints for creating, updating, and querying events.\nEvents can be one-time or recurring, and can take place in Genesis City or Worlds.\n"}],"servers":[{"url":"https://events.decentraland.org/api","description":"Production server"},{"url":"https://events.decentraland.zone/api","description":"Development server"},{"url":"http://localhost:4000/api","description":"Local development server"}],"security":[{},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"service-token"}}},"paths":{"/events":{"get":{"tags":["Events"],"summary":"List events","description":"Retrieves a list of events based on various filters. By default returns active events\n(current and future) sorted by start date ascending. Supports filtering by location,\ncreator, categories, schedules, and more.\n\nWhen called with the service bearer token (`Authorization: Bearer ...`), the response\nincludes pending and rejected rows and the `approved` / `rejected` query parameters are\nhonored as explicit state filters.\n","operationId":"getEvents","parameters":[{"name":"approved","in":"query","required":false,"description":"Admin-only. Filter by approval state (only applied with bearer auth).","schema":{"type":"boolean"}},{"name":"rejected","in":"query","required":false,"description":"Admin-only. Filter by rejection state (only applied with bearer auth).","schema":{"type":"boolean"}},{"name":"limit","in":"query","description":"Maximum number of events to return","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"offset","in":"query","description":"Number of events to skip (for pagination)","schema":{"type":"integer","minimum":0,"default":0}},{"name":"list","in":"query","description":"Filter events by time range.\n- `active` (default): current and future events\n- `all`: every event without time restriction\n- `live`: events currently running\n- `upcoming`: future events only\n- `highlight`: deprecated alias for `list=active&highlighted=true`\n","schema":{"type":"string","enum":["all","active","live","upcoming","highlight"],"default":"active"}},{"name":"highlighted","in":"query","description":"When true, return only events flagged as highlighted. Combine with `list` to scope by time range.","schema":{"type":"boolean"}},{"name":"owner","in":"query","description":"Return events authored by the authenticated user across all statuses (approved, pending, and rejected). Requires signed-fetch authentication; unauthenticated callers receive 401. Overrides the `creator` filter when set.\n","schema":{"type":"boolean"}},{"name":"position","in":"query","description":"Filter events at a specific Genesis City position (format \"x,y\")","schema":{"type":"string","pattern":"^-?\\d{1,3},-?\\d{1,3}$"}},{"name":"positions","in":"query","description":"Filter events at multiple positions","schema":{"type":"array","items":{"type":"string","pattern":"^-?\\d{1,3},-?\\d{1,3}$"},"maxItems":1000},"style":"form","explode":true},{"name":"estate_id","in":"query","description":"Filter events by Genesis City estate ID","schema":{"type":"string"}},{"name":"creator","in":"query","description":"Filter events by creator's Ethereum address","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"only_attendee","in":"query","description":"Show only events the authenticated user is attending (requires authentication)","schema":{"type":"boolean"}},{"name":"search","in":"query","description":"Full-text search in event name and description (minimum 3 characters)","schema":{"type":"string","minLength":3}},{"name":"schedule","in":"query","description":"Filter events by schedule ID","schema":{"type":"string","format":"uuid"}},{"name":"world","in":"query","description":"Filter events by location type (true=Worlds, false=Genesis City, null=all)","schema":{"type":"boolean"}},{"name":"world_names","in":"query","description":"Filter events by World names (format \"name.dcl.eth\")","schema":{"type":"array","items":{"type":"string","pattern":"^.*\\.dcl\\.eth$"},"minItems":1},"style":"form","explode":true},{"name":"places_ids","in":"query","description":"Filter events by place IDs","schema":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100},"style":"form","explode":true},{"name":"community_id","in":"query","description":"Filter events by community ID","schema":{"type":"string","format":"uuid"}},{"name":"order","in":"query","description":"Sort order by start date","schema":{"type":"string","enum":["asc","desc"],"default":"asc"}},{"name":"from","in":"query","description":"Start of date range filter (ISO 8601 format).\nReturns events with next_start_at >= from.\nUse with 'to' to filter events within a specific date range.\n","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"End of date range filter (ISO 8601 format).\nReturns events with next_start_at < to.\nUse with 'from' to filter events within a specific date range.\n","schema":{"type":"string","format":"date-time"}},{"name":"with_connected_users","in":"query","description":"Include the list of connected user wallet addresses for each event location.\nWhen enabled, each event in the response will include a `connected_addresses` array\ncontaining wallet addresses of users currently at the event's location.\nData is cached for 5 minutes.\n","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"List of events","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","description":"An event in Decentraland. Events can be one-time or recurring, and can take place\nin Genesis City (at specific coordinates) or in Worlds (custom deployments).\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique event identifier"},"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","maxLength":5000,"description":"Event description in Markdown format"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"finish_at":{"type":"string","format":"date-time","description":"Event end date and time"},"next_start_at":{"type":"string","format":"date-time","description":"Next occurrence start time (for recurring events)"},"next_finish_at":{"type":"string","format":"date-time","description":"Next occurrence end time (for recurring events)"},"duration":{"type":"integer","description":"Event duration in milliseconds"},"all_day":{"type":"boolean","description":"Whether this is an all-day event","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City (not used for World events)"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City (not used for World events)"},"coordinates":{"type":"array","description":"Deprecated - use x and y instead","items":{"type":"integer"},"minItems":2,"maxItems":2},"position":{"type":"array","description":"Alias for coordinates","items":{"type":"integer"},"minItems":2,"maxItems":2},"server":{"type":"string","nullable":true,"description":"Realm/server name"},"url":{"type":"string","format":"uri","description":"Jump-in URL to the event location"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Ethereum address of event creator"},"user_name":{"type":"string","nullable":true,"description":"Display name of event creator"},"estate_id":{"type":"string","nullable":true,"description":"Genesis City estate ID (if applicable)"},"estate_name":{"type":"string","nullable":true,"description":"Genesis City estate name (if applicable)"},"scene_name":{"type":"string","nullable":true,"description":"Deprecated - scene name"},"approved":{"type":"boolean","description":"Whether the event has been approved by a moderator","default":false},"rejected":{"type":"boolean","description":"Whether the event has been rejected by a moderator","default":false},"rejection_reason":{"type":"string","nullable":true,"maxLength":500,"description":"Reason provided by a moderator or service when rejecting the event"},"approved_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that approved the event"},"rejected_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that rejected the event"},"highlighted":{"type":"boolean","description":"Whether the event is highlighted in the UI","default":false},"trending":{"type":"boolean","description":"Whether the event is marked as trending","default":false},"recurrent":{"type":"boolean","description":"Whether this is a recurring event","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],"description":"Recurrence frequency (RRule FREQ)"},"recurrent_interval":{"type":"integer","minimum":0,"description":"Recurrence interval (RRule INTERVAL)"},"recurrent_count":{"type":"integer","nullable":true,"minimum":1,"description":"Number of recurrences (RRule COUNT)"},"recurrent_until":{"type":"string","format":"date-time","nullable":true,"description":"Recurrence end date (RRule UNTIL)"},"recurrent_weekday_mask":{"type":"integer","minimum":0,"maximum":127,"description":"Weekday mask for recurrence (bit flags for days of week)"},"recurrent_month_mask":{"type":"integer","minimum":0,"maximum":4095,"description":"Month mask for recurrence (bit flags for months)"},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1,"maximum":5,"description":"Position in recurrence set (RRule BYSETPOS)"},"recurrent_monthday":{"type":"integer","nullable":true,"minimum":1,"maximum":31,"description":"Day of month for recurrence (RRule BYMONTHDAY)"},"recurrent_dates":{"type":"array","description":"Calculated recurrence dates","items":{"type":"string","format":"date-time"}},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information for event organizer"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional event details"},"categories":{"type":"array","description":"Event category names","items":{"type":"string"}},"schedules":{"type":"array","description":"Schedule IDs this event belongs to","items":{"type":"string","format":"uuid"}},"world":{"type":"boolean","description":"Whether this event is in a World (true) or Genesis City (false)","default":false},"place_id":{"type":"string","format":"uuid","nullable":true,"description":"Place ID (from Places API)"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Community ID this event is associated with"},"total_attendees":{"type":"integer","minimum":0,"description":"Total number of users attending"},"latest_attendees":{"type":"array","description":"Ethereum addresses of latest attendees","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxItems":10},"attending":{"type":"boolean","description":"Whether the authenticated user is attending (only when authenticated)"},"live":{"type":"boolean","description":"Whether the event is currently happening"},"created_at":{"type":"string","format":"date-time","description":"Event creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Event last update timestamp"},"connected_addresses":{"type":"array","description":"List of wallet addresses currently connected to the event location.\nOnly included when with_connected_users=true. Data is cached for 5 minutes.\n","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"required":["id","name","start_at","duration","x","y","user"]}}}}}}},"400":{"description":"Bad request - invalid parameters or body","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"401":{"description":"Unauthorized - authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}}}}}}}
```

## Create a new event

> Creates a new event. Requires authentication. Events are created in pending status\
> and require approval unless the user has special permissions.<br>

```json
{"openapi":"3.0.3","info":{"title":"Decentraland Events API","version":"1.0.0"},"tags":[{"name":"Events","description":"Event management endpoints for creating, updating, and querying events.\nEvents can be one-time or recurring, and can take place in Genesis City or Worlds.\n"}],"servers":[{"url":"https://events.decentraland.org/api","description":"Production server"},{"url":"https://events.decentraland.zone/api","description":"Development server"},{"url":"http://localhost:4000/api","description":"Local development server"}],"security":[],"paths":{"/events":{"post":{"tags":["Events"],"summary":"Create a new event","description":"Creates a new event. Requires authentication. Events are created in pending status\nand require approval unless the user has special permissions.\n","operationId":"createEvent","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Schema for creating a new event","required":["name","start_at","duration","x","y"],"properties":{"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","nullable":true,"maxLength":5000,"description":"Event description in Markdown"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"duration":{"type":"integer","minimum":0,"maximum":86400000,"description":"Event duration in milliseconds (max 24 hours)"},"all_day":{"type":"boolean","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City"},"server":{"type":"string","nullable":true,"description":"Preferred realm/server"},"url":{"type":"string","format":"uri","description":"Custom jump-in URL"},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional details"},"categories":{"type":"array","nullable":true,"items":{"type":"string"},"maxItems":1,"description":"Event categories (max 1)"},"schedules":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"},"description":"Schedule IDs (admin only)"},"world":{"type":"boolean","default":false,"description":"Whether event is in a World"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Associated community ID"},"recurrent":{"type":"boolean","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"]},"recurrent_interval":{"type":"integer","minimum":0},"recurrent_count":{"type":"integer","nullable":true},"recurrent_until":{"type":"string","format":"date-time","nullable":true},"recurrent_weekday_mask":{"type":"integer","minimum":0},"recurrent_month_mask":{"type":"integer","minimum":0},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1},"recurrent_monthday":{"type":"integer","nullable":true},"approved":{"type":"boolean","description":"Self-approve (requires permission)"},"rejected":{"type":"boolean"},"highlighted":{"type":"boolean","description":"Highlight event (admin only)"},"trending":{"type":"boolean","description":"Mark as trending (admin only)"}}}}}},"responses":{"200":{"description":"Event created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"object","description":"An event in Decentraland. Events can be one-time or recurring, and can take place\nin Genesis City (at specific coordinates) or in Worlds (custom deployments).\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique event identifier"},"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","maxLength":5000,"description":"Event description in Markdown format"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"finish_at":{"type":"string","format":"date-time","description":"Event end date and time"},"next_start_at":{"type":"string","format":"date-time","description":"Next occurrence start time (for recurring events)"},"next_finish_at":{"type":"string","format":"date-time","description":"Next occurrence end time (for recurring events)"},"duration":{"type":"integer","description":"Event duration in milliseconds"},"all_day":{"type":"boolean","description":"Whether this is an all-day event","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City (not used for World events)"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City (not used for World events)"},"coordinates":{"type":"array","description":"Deprecated - use x and y instead","items":{"type":"integer"},"minItems":2,"maxItems":2},"position":{"type":"array","description":"Alias for coordinates","items":{"type":"integer"},"minItems":2,"maxItems":2},"server":{"type":"string","nullable":true,"description":"Realm/server name"},"url":{"type":"string","format":"uri","description":"Jump-in URL to the event location"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Ethereum address of event creator"},"user_name":{"type":"string","nullable":true,"description":"Display name of event creator"},"estate_id":{"type":"string","nullable":true,"description":"Genesis City estate ID (if applicable)"},"estate_name":{"type":"string","nullable":true,"description":"Genesis City estate name (if applicable)"},"scene_name":{"type":"string","nullable":true,"description":"Deprecated - scene name"},"approved":{"type":"boolean","description":"Whether the event has been approved by a moderator","default":false},"rejected":{"type":"boolean","description":"Whether the event has been rejected by a moderator","default":false},"rejection_reason":{"type":"string","nullable":true,"maxLength":500,"description":"Reason provided by a moderator or service when rejecting the event"},"approved_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that approved the event"},"rejected_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that rejected the event"},"highlighted":{"type":"boolean","description":"Whether the event is highlighted in the UI","default":false},"trending":{"type":"boolean","description":"Whether the event is marked as trending","default":false},"recurrent":{"type":"boolean","description":"Whether this is a recurring event","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],"description":"Recurrence frequency (RRule FREQ)"},"recurrent_interval":{"type":"integer","minimum":0,"description":"Recurrence interval (RRule INTERVAL)"},"recurrent_count":{"type":"integer","nullable":true,"minimum":1,"description":"Number of recurrences (RRule COUNT)"},"recurrent_until":{"type":"string","format":"date-time","nullable":true,"description":"Recurrence end date (RRule UNTIL)"},"recurrent_weekday_mask":{"type":"integer","minimum":0,"maximum":127,"description":"Weekday mask for recurrence (bit flags for days of week)"},"recurrent_month_mask":{"type":"integer","minimum":0,"maximum":4095,"description":"Month mask for recurrence (bit flags for months)"},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1,"maximum":5,"description":"Position in recurrence set (RRule BYSETPOS)"},"recurrent_monthday":{"type":"integer","nullable":true,"minimum":1,"maximum":31,"description":"Day of month for recurrence (RRule BYMONTHDAY)"},"recurrent_dates":{"type":"array","description":"Calculated recurrence dates","items":{"type":"string","format":"date-time"}},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information for event organizer"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional event details"},"categories":{"type":"array","description":"Event category names","items":{"type":"string"}},"schedules":{"type":"array","description":"Schedule IDs this event belongs to","items":{"type":"string","format":"uuid"}},"world":{"type":"boolean","description":"Whether this event is in a World (true) or Genesis City (false)","default":false},"place_id":{"type":"string","format":"uuid","nullable":true,"description":"Place ID (from Places API)"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Community ID this event is associated with"},"total_attendees":{"type":"integer","minimum":0,"description":"Total number of users attending"},"latest_attendees":{"type":"array","description":"Ethereum addresses of latest attendees","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxItems":10},"attending":{"type":"boolean","description":"Whether the authenticated user is attending (only when authenticated)"},"live":{"type":"boolean","description":"Whether the event is currently happening"},"created_at":{"type":"string","format":"date-time","description":"Event creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Event last update timestamp"},"connected_addresses":{"type":"array","description":"List of wallet addresses currently connected to the event location.\nOnly included when with_connected_users=true. Data is cached for 5 minutes.\n","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"required":["id","name","start_at","duration","x","y","user"]}}}}}},"400":{"description":"Bad request - invalid parameters or body","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"401":{"description":"Unauthorized - authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"403":{"description":"Forbidden - insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}}}}}}}
```

## Search events

> Alternative endpoint for searching events using POST method.\
> Accepts the same parameters as GET /events but via request body.<br>

```json
{"openapi":"3.0.3","info":{"title":"Decentraland Events API","version":"1.0.0"},"tags":[{"name":"Events","description":"Event management endpoints for creating, updating, and querying events.\nEvents can be one-time or recurring, and can take place in Genesis City or Worlds.\n"}],"servers":[{"url":"https://events.decentraland.org/api","description":"Production server"},{"url":"https://events.decentraland.zone/api","description":"Development server"},{"url":"http://localhost:4000/api","description":"Local development server"}],"security":[],"paths":{"/events/search":{"post":{"tags":["Events"],"summary":"Search events","description":"Alternative endpoint for searching events using POST method.\nAccepts the same parameters as GET /events but via request body.\n","operationId":"searchEvents","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1},"offset":{"type":"integer","minimum":0},"list":{"type":"string","enum":["all","active","live","upcoming","highlight"]},"highlighted":{"type":"boolean"},"position":{"type":"string"},"positions":{"type":"array","items":{"type":"string"}},"creator":{"type":"string"},"only_attendee":{"type":"boolean"},"search":{"type":"string"},"schedule":{"type":"string"},"world":{"type":"boolean"},"world_names":{"type":"array","items":{"type":"string"}},"places_ids":{"type":"array","items":{"type":"string"}},"community_id":{"type":"string"},"order":{"type":"string","enum":["asc","desc"]}}}}}},"responses":{"200":{"description":"List of events","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","description":"An event in Decentraland. Events can be one-time or recurring, and can take place\nin Genesis City (at specific coordinates) or in Worlds (custom deployments).\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique event identifier"},"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","maxLength":5000,"description":"Event description in Markdown format"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"finish_at":{"type":"string","format":"date-time","description":"Event end date and time"},"next_start_at":{"type":"string","format":"date-time","description":"Next occurrence start time (for recurring events)"},"next_finish_at":{"type":"string","format":"date-time","description":"Next occurrence end time (for recurring events)"},"duration":{"type":"integer","description":"Event duration in milliseconds"},"all_day":{"type":"boolean","description":"Whether this is an all-day event","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City (not used for World events)"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City (not used for World events)"},"coordinates":{"type":"array","description":"Deprecated - use x and y instead","items":{"type":"integer"},"minItems":2,"maxItems":2},"position":{"type":"array","description":"Alias for coordinates","items":{"type":"integer"},"minItems":2,"maxItems":2},"server":{"type":"string","nullable":true,"description":"Realm/server name"},"url":{"type":"string","format":"uri","description":"Jump-in URL to the event location"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Ethereum address of event creator"},"user_name":{"type":"string","nullable":true,"description":"Display name of event creator"},"estate_id":{"type":"string","nullable":true,"description":"Genesis City estate ID (if applicable)"},"estate_name":{"type":"string","nullable":true,"description":"Genesis City estate name (if applicable)"},"scene_name":{"type":"string","nullable":true,"description":"Deprecated - scene name"},"approved":{"type":"boolean","description":"Whether the event has been approved by a moderator","default":false},"rejected":{"type":"boolean","description":"Whether the event has been rejected by a moderator","default":false},"rejection_reason":{"type":"string","nullable":true,"maxLength":500,"description":"Reason provided by a moderator or service when rejecting the event"},"approved_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that approved the event"},"rejected_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that rejected the event"},"highlighted":{"type":"boolean","description":"Whether the event is highlighted in the UI","default":false},"trending":{"type":"boolean","description":"Whether the event is marked as trending","default":false},"recurrent":{"type":"boolean","description":"Whether this is a recurring event","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],"description":"Recurrence frequency (RRule FREQ)"},"recurrent_interval":{"type":"integer","minimum":0,"description":"Recurrence interval (RRule INTERVAL)"},"recurrent_count":{"type":"integer","nullable":true,"minimum":1,"description":"Number of recurrences (RRule COUNT)"},"recurrent_until":{"type":"string","format":"date-time","nullable":true,"description":"Recurrence end date (RRule UNTIL)"},"recurrent_weekday_mask":{"type":"integer","minimum":0,"maximum":127,"description":"Weekday mask for recurrence (bit flags for days of week)"},"recurrent_month_mask":{"type":"integer","minimum":0,"maximum":4095,"description":"Month mask for recurrence (bit flags for months)"},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1,"maximum":5,"description":"Position in recurrence set (RRule BYSETPOS)"},"recurrent_monthday":{"type":"integer","nullable":true,"minimum":1,"maximum":31,"description":"Day of month for recurrence (RRule BYMONTHDAY)"},"recurrent_dates":{"type":"array","description":"Calculated recurrence dates","items":{"type":"string","format":"date-time"}},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information for event organizer"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional event details"},"categories":{"type":"array","description":"Event category names","items":{"type":"string"}},"schedules":{"type":"array","description":"Schedule IDs this event belongs to","items":{"type":"string","format":"uuid"}},"world":{"type":"boolean","description":"Whether this event is in a World (true) or Genesis City (false)","default":false},"place_id":{"type":"string","format":"uuid","nullable":true,"description":"Place ID (from Places API)"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Community ID this event is associated with"},"total_attendees":{"type":"integer","minimum":0,"description":"Total number of users attending"},"latest_attendees":{"type":"array","description":"Ethereum addresses of latest attendees","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxItems":10},"attending":{"type":"boolean","description":"Whether the authenticated user is attending (only when authenticated)"},"live":{"type":"boolean","description":"Whether the event is currently happening"},"created_at":{"type":"string","format":"date-time","description":"Event creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Event last update timestamp"},"connected_addresses":{"type":"array","description":"List of wallet addresses currently connected to the event location.\nOnly included when with_connected_users=true. Data is cached for 5 minutes.\n","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"required":["id","name","start_at","duration","x","y","user"]}}}}}}},"400":{"description":"Bad request - invalid parameters or body","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}}}}}}}
```

## Get events the user is attending

> Returns all events that the authenticated user has marked as attending.<br>

```json
{"openapi":"3.0.3","info":{"title":"Decentraland Events API","version":"1.0.0"},"tags":[{"name":"Events","description":"Event management endpoints for creating, updating, and querying events.\nEvents can be one-time or recurring, and can take place in Genesis City or Worlds.\n"}],"servers":[{"url":"https://events.decentraland.org/api","description":"Production server"},{"url":"https://events.decentraland.zone/api","description":"Development server"},{"url":"http://localhost:4000/api","description":"Local development server"}],"security":[],"paths":{"/events/attending":{"get":{"tags":["Events"],"summary":"Get events the user is attending","description":"Returns all events that the authenticated user has marked as attending.\n","operationId":"getAttendingEvents","responses":{"200":{"description":"List of events user is attending","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","description":"An event in Decentraland. Events can be one-time or recurring, and can take place\nin Genesis City (at specific coordinates) or in Worlds (custom deployments).\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique event identifier"},"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","maxLength":5000,"description":"Event description in Markdown format"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"finish_at":{"type":"string","format":"date-time","description":"Event end date and time"},"next_start_at":{"type":"string","format":"date-time","description":"Next occurrence start time (for recurring events)"},"next_finish_at":{"type":"string","format":"date-time","description":"Next occurrence end time (for recurring events)"},"duration":{"type":"integer","description":"Event duration in milliseconds"},"all_day":{"type":"boolean","description":"Whether this is an all-day event","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City (not used for World events)"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City (not used for World events)"},"coordinates":{"type":"array","description":"Deprecated - use x and y instead","items":{"type":"integer"},"minItems":2,"maxItems":2},"position":{"type":"array","description":"Alias for coordinates","items":{"type":"integer"},"minItems":2,"maxItems":2},"server":{"type":"string","nullable":true,"description":"Realm/server name"},"url":{"type":"string","format":"uri","description":"Jump-in URL to the event location"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Ethereum address of event creator"},"user_name":{"type":"string","nullable":true,"description":"Display name of event creator"},"estate_id":{"type":"string","nullable":true,"description":"Genesis City estate ID (if applicable)"},"estate_name":{"type":"string","nullable":true,"description":"Genesis City estate name (if applicable)"},"scene_name":{"type":"string","nullable":true,"description":"Deprecated - scene name"},"approved":{"type":"boolean","description":"Whether the event has been approved by a moderator","default":false},"rejected":{"type":"boolean","description":"Whether the event has been rejected by a moderator","default":false},"rejection_reason":{"type":"string","nullable":true,"maxLength":500,"description":"Reason provided by a moderator or service when rejecting the event"},"approved_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that approved the event"},"rejected_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that rejected the event"},"highlighted":{"type":"boolean","description":"Whether the event is highlighted in the UI","default":false},"trending":{"type":"boolean","description":"Whether the event is marked as trending","default":false},"recurrent":{"type":"boolean","description":"Whether this is a recurring event","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],"description":"Recurrence frequency (RRule FREQ)"},"recurrent_interval":{"type":"integer","minimum":0,"description":"Recurrence interval (RRule INTERVAL)"},"recurrent_count":{"type":"integer","nullable":true,"minimum":1,"description":"Number of recurrences (RRule COUNT)"},"recurrent_until":{"type":"string","format":"date-time","nullable":true,"description":"Recurrence end date (RRule UNTIL)"},"recurrent_weekday_mask":{"type":"integer","minimum":0,"maximum":127,"description":"Weekday mask for recurrence (bit flags for days of week)"},"recurrent_month_mask":{"type":"integer","minimum":0,"maximum":4095,"description":"Month mask for recurrence (bit flags for months)"},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1,"maximum":5,"description":"Position in recurrence set (RRule BYSETPOS)"},"recurrent_monthday":{"type":"integer","nullable":true,"minimum":1,"maximum":31,"description":"Day of month for recurrence (RRule BYMONTHDAY)"},"recurrent_dates":{"type":"array","description":"Calculated recurrence dates","items":{"type":"string","format":"date-time"}},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information for event organizer"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional event details"},"categories":{"type":"array","description":"Event category names","items":{"type":"string"}},"schedules":{"type":"array","description":"Schedule IDs this event belongs to","items":{"type":"string","format":"uuid"}},"world":{"type":"boolean","description":"Whether this event is in a World (true) or Genesis City (false)","default":false},"place_id":{"type":"string","format":"uuid","nullable":true,"description":"Place ID (from Places API)"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Community ID this event is associated with"},"total_attendees":{"type":"integer","minimum":0,"description":"Total number of users attending"},"latest_attendees":{"type":"array","description":"Ethereum addresses of latest attendees","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxItems":10},"attending":{"type":"boolean","description":"Whether the authenticated user is attending (only when authenticated)"},"live":{"type":"boolean","description":"Whether the event is currently happening"},"created_at":{"type":"string","format":"date-time","description":"Event creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Event last update timestamp"},"connected_addresses":{"type":"array","description":"List of wallet addresses currently connected to the event location.\nOnly included when with_connected_users=true. Data is cached for 5 minutes.\n","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"required":["id","name","start_at","duration","x","y","user"]}}}}}}},"401":{"description":"Unauthorized - authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}}}}}}}
```

## Get event by ID

> Retrieves detailed information about a specific event.\
> If authenticated, includes whether the user is attending.\
> \
> When called with the service bearer token (\`Authorization: Bearer ...\`), pending and\
> rejected events are returned regardless of approval state.<br>

```json
{"openapi":"3.0.3","info":{"title":"Decentraland Events API","version":"1.0.0"},"tags":[{"name":"Events","description":"Event management endpoints for creating, updating, and querying events.\nEvents can be one-time or recurring, and can take place in Genesis City or Worlds.\n"}],"servers":[{"url":"https://events.decentraland.org/api","description":"Production server"},{"url":"https://events.decentraland.zone/api","description":"Development server"},{"url":"http://localhost:4000/api","description":"Local development server"}],"security":[{},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"service-token"}}},"paths":{"/events/{event_id}":{"get":{"tags":["Events"],"summary":"Get event by ID","description":"Retrieves detailed information about a specific event.\nIf authenticated, includes whether the user is attending.\n\nWhen called with the service bearer token (`Authorization: Bearer ...`), pending and\nrejected events are returned regardless of approval state.\n","operationId":"getEventById","parameters":[{"name":"event_id","in":"path","required":true,"description":"Event UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Event details","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"object","description":"An event in Decentraland. Events can be one-time or recurring, and can take place\nin Genesis City (at specific coordinates) or in Worlds (custom deployments).\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique event identifier"},"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","maxLength":5000,"description":"Event description in Markdown format"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"finish_at":{"type":"string","format":"date-time","description":"Event end date and time"},"next_start_at":{"type":"string","format":"date-time","description":"Next occurrence start time (for recurring events)"},"next_finish_at":{"type":"string","format":"date-time","description":"Next occurrence end time (for recurring events)"},"duration":{"type":"integer","description":"Event duration in milliseconds"},"all_day":{"type":"boolean","description":"Whether this is an all-day event","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City (not used for World events)"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City (not used for World events)"},"coordinates":{"type":"array","description":"Deprecated - use x and y instead","items":{"type":"integer"},"minItems":2,"maxItems":2},"position":{"type":"array","description":"Alias for coordinates","items":{"type":"integer"},"minItems":2,"maxItems":2},"server":{"type":"string","nullable":true,"description":"Realm/server name"},"url":{"type":"string","format":"uri","description":"Jump-in URL to the event location"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Ethereum address of event creator"},"user_name":{"type":"string","nullable":true,"description":"Display name of event creator"},"estate_id":{"type":"string","nullable":true,"description":"Genesis City estate ID (if applicable)"},"estate_name":{"type":"string","nullable":true,"description":"Genesis City estate name (if applicable)"},"scene_name":{"type":"string","nullable":true,"description":"Deprecated - scene name"},"approved":{"type":"boolean","description":"Whether the event has been approved by a moderator","default":false},"rejected":{"type":"boolean","description":"Whether the event has been rejected by a moderator","default":false},"rejection_reason":{"type":"string","nullable":true,"maxLength":500,"description":"Reason provided by a moderator or service when rejecting the event"},"approved_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that approved the event"},"rejected_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that rejected the event"},"highlighted":{"type":"boolean","description":"Whether the event is highlighted in the UI","default":false},"trending":{"type":"boolean","description":"Whether the event is marked as trending","default":false},"recurrent":{"type":"boolean","description":"Whether this is a recurring event","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],"description":"Recurrence frequency (RRule FREQ)"},"recurrent_interval":{"type":"integer","minimum":0,"description":"Recurrence interval (RRule INTERVAL)"},"recurrent_count":{"type":"integer","nullable":true,"minimum":1,"description":"Number of recurrences (RRule COUNT)"},"recurrent_until":{"type":"string","format":"date-time","nullable":true,"description":"Recurrence end date (RRule UNTIL)"},"recurrent_weekday_mask":{"type":"integer","minimum":0,"maximum":127,"description":"Weekday mask for recurrence (bit flags for days of week)"},"recurrent_month_mask":{"type":"integer","minimum":0,"maximum":4095,"description":"Month mask for recurrence (bit flags for months)"},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1,"maximum":5,"description":"Position in recurrence set (RRule BYSETPOS)"},"recurrent_monthday":{"type":"integer","nullable":true,"minimum":1,"maximum":31,"description":"Day of month for recurrence (RRule BYMONTHDAY)"},"recurrent_dates":{"type":"array","description":"Calculated recurrence dates","items":{"type":"string","format":"date-time"}},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information for event organizer"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional event details"},"categories":{"type":"array","description":"Event category names","items":{"type":"string"}},"schedules":{"type":"array","description":"Schedule IDs this event belongs to","items":{"type":"string","format":"uuid"}},"world":{"type":"boolean","description":"Whether this event is in a World (true) or Genesis City (false)","default":false},"place_id":{"type":"string","format":"uuid","nullable":true,"description":"Place ID (from Places API)"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Community ID this event is associated with"},"total_attendees":{"type":"integer","minimum":0,"description":"Total number of users attending"},"latest_attendees":{"type":"array","description":"Ethereum addresses of latest attendees","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxItems":10},"attending":{"type":"boolean","description":"Whether the authenticated user is attending (only when authenticated)"},"live":{"type":"boolean","description":"Whether the event is currently happening"},"created_at":{"type":"string","format":"date-time","description":"Event creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Event last update timestamp"},"connected_addresses":{"type":"array","description":"List of wallet addresses currently connected to the event location.\nOnly included when with_connected_users=true. Data is cached for 5 minutes.\n","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"required":["id","name","start_at","duration","x","y","user"]}}}}}},"404":{"description":"Not found - resource doesn't exist","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"503":{"description":"Service unavailable - endpoint disabled or dependency unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}}}}}}}
```

## Update an event

> Updates an existing event. Users can only update their own events unless they\
> have special permissions. Some fields require admin permissions.\
> \
> When called with the service bearer token (\`Authorization: Bearer ...\`), permission\
> checks are bypassed and the request body identifies the actor via the \`actor\` field.\
> The body may alternatively contain only approval/rejection fields\
> (\`approved\`, \`rejected\`, \`reason\`) to transition the event state without\
> re-validating every editable attribute — see \`EventAdminActor\` and \`EventAdminReject\`.<br>

```json
{"openapi":"3.0.3","info":{"title":"Decentraland Events API","version":"1.0.0"},"tags":[{"name":"Events","description":"Event management endpoints for creating, updating, and querying events.\nEvents can be one-time or recurring, and can take place in Genesis City or Worlds.\n"}],"servers":[{"url":"https://events.decentraland.org/api","description":"Production server"},{"url":"https://events.decentraland.zone/api","description":"Development server"},{"url":"http://localhost:4000/api","description":"Local development server"}],"security":[{},{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"service-token"}}},"paths":{"/events/{event_id}":{"patch":{"tags":["Events"],"summary":"Update an event","description":"Updates an existing event. Users can only update their own events unless they\nhave special permissions. Some fields require admin permissions.\n\nWhen called with the service bearer token (`Authorization: Bearer ...`), permission\nchecks are bypassed and the request body identifies the actor via the `actor` field.\nThe body may alternatively contain only approval/rejection fields\n(`approved`, `rejected`, `reason`) to transition the event state without\nre-validating every editable attribute — see `EventAdminActor` and `EventAdminReject`.\n","operationId":"updateEvent","parameters":[{"name":"event_id","in":"path","required":true,"description":"Event UUID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"description":"Schema for updating an event (all fields optional)","properties":{"name":{"type":"string","minLength":1,"maxLength":150},"description":{"type":"string","nullable":true,"maxLength":5000},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time"},"duration":{"type":"integer","minimum":0},"all_day":{"type":"boolean"},"x":{"type":"integer","minimum":-170,"maximum":170},"y":{"type":"integer","minimum":-170,"maximum":170},"server":{"type":"string","nullable":true},"url":{"type":"string","format":"uri"},"contact":{"type":"string","nullable":true,"maxLength":100},"details":{"type":"string","nullable":true,"maxLength":5000},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"schedules":{"type":"array","nullable":true,"items":{"type":"string","format":"uuid"}},"world":{"type":"boolean"},"community_id":{"type":"string","format":"uuid","nullable":true},"recurrent":{"type":"boolean"},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"]},"recurrent_interval":{"type":"integer"},"recurrent_count":{"type":"integer","nullable":true},"recurrent_until":{"type":"string","format":"date-time","nullable":true},"recurrent_weekday_mask":{"type":"integer"},"recurrent_month_mask":{"type":"integer"},"recurrent_setpos":{"type":"integer","nullable":true},"recurrent_monthday":{"type":"integer","nullable":true},"approved":{"type":"boolean"},"rejected":{"type":"boolean"},"rejection_reason":{"type":"string","nullable":true,"maxLength":500},"highlighted":{"type":"boolean"},"trending":{"type":"boolean"}}},{"type":"object","additionalProperties":false,"properties":{"actor":{"type":"string","maxLength":42,"default":"jarvis-agent"},"name":{"type":"string","minLength":1,"maxLength":150},"description":{"type":"string","nullable":true,"maxLength":5000},"image":{"type":"string","format":"uri","nullable":true},"image_vertical":{"type":"string","format":"uri","nullable":true},"start_at":{"type":"string","format":"date-time"},"duration":{"type":"integer","minimum":0},"all_day":{"type":"boolean"},"x":{"type":"integer","minimum":-170,"maximum":170},"y":{"type":"integer","minimum":-170,"maximum":170},"server":{"type":"string","nullable":true},"categories":{"type":"array","nullable":true,"items":{"type":"string"}},"world":{"type":"boolean"},"recurrent":{"type":"boolean"},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY"]},"recurrent_interval":{"type":"integer"},"recurrent_count":{"type":"integer","nullable":true},"recurrent_until":{"type":"string","format":"date-time","nullable":true},"recurrent_weekday_mask":{"type":"integer"},"recurrent_month_mask":{"type":"integer"},"recurrent_setpos":{"type":"integer","nullable":true},"recurrent_monthday":{"type":"integer","nullable":true},"contact":{"type":"object","nullable":true},"details":{"type":"object","nullable":true},"community_id":{"type":"string","format":"uuid","nullable":true},"highlighted":{"type":"boolean"},"trending":{"type":"boolean"},"schedules":{"type":"array","items":{"type":"string","format":"uuid"}},"url":{"type":"string","format":"uri","nullable":true}}},{"type":"object","additionalProperties":false,"description":"Body for admin approval state changes sent to `PATCH /events/{event_id}` with\nbearer auth. Set `approved: true` to approve, `approved: false` to unapprove.\nFor rejection, use `EventAdminReject`.\n","properties":{"actor":{"type":"string","maxLength":42,"default":"jarvis-agent","description":"Service actor recorded in approved_by or rejected_by"},"approved":{"type":"boolean","description":"Set to true to approve, false to clear approval"}}},{"allOf":[{"type":"object","additionalProperties":false,"description":"Body for admin approval state changes sent to `PATCH /events/{event_id}` with\nbearer auth. Set `approved: true` to approve, `approved: false` to unapprove.\nFor rejection, use `EventAdminReject`.\n","properties":{"actor":{"type":"string","maxLength":42,"default":"jarvis-agent","description":"Service actor recorded in approved_by or rejected_by"},"approved":{"type":"boolean","description":"Set to true to approve, false to clear approval"}}},{"type":"object","description":"Body for admin rejection state changes sent to `PATCH /events/{event_id}` with\nbearer auth. Set `rejected: true` with a `reason` to reject, or `rejected: false`\n(no reason required) to clear a prior rejection.\n","required":["rejected"],"properties":{"rejected":{"type":"boolean","description":"Set to true to reject, false to clear rejection"},"reason":{"type":"string","minLength":1,"maxLength":500,"description":"Human-readable reason stored as rejection_reason. Required when\nrejected=true.\n"}}}]}]}}}},"responses":{"200":{"description":"Event updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"object","description":"An event in Decentraland. Events can be one-time or recurring, and can take place\nin Genesis City (at specific coordinates) or in Worlds (custom deployments).\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique event identifier"},"name":{"type":"string","minLength":1,"maxLength":150,"description":"Event name"},"description":{"type":"string","maxLength":5000,"description":"Event description in Markdown format"},"image":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image (horizontal format)"},"image_vertical":{"type":"string","format":"uri","nullable":true,"description":"URL to event poster image in vertical/portrait format"},"start_at":{"type":"string","format":"date-time","description":"Event start date and time"},"finish_at":{"type":"string","format":"date-time","description":"Event end date and time"},"next_start_at":{"type":"string","format":"date-time","description":"Next occurrence start time (for recurring events)"},"next_finish_at":{"type":"string","format":"date-time","description":"Next occurrence end time (for recurring events)"},"duration":{"type":"integer","description":"Event duration in milliseconds"},"all_day":{"type":"boolean","description":"Whether this is an all-day event","default":false},"x":{"type":"integer","minimum":-170,"maximum":170,"description":"X coordinate in Genesis City (not used for World events)"},"y":{"type":"integer","minimum":-170,"maximum":170,"description":"Y coordinate in Genesis City (not used for World events)"},"coordinates":{"type":"array","description":"Deprecated - use x and y instead","items":{"type":"integer"},"minItems":2,"maxItems":2},"position":{"type":"array","description":"Alias for coordinates","items":{"type":"integer"},"minItems":2,"maxItems":2},"server":{"type":"string","nullable":true,"description":"Realm/server name"},"url":{"type":"string","format":"uri","description":"Jump-in URL to the event location"},"user":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Ethereum address of event creator"},"user_name":{"type":"string","nullable":true,"description":"Display name of event creator"},"estate_id":{"type":"string","nullable":true,"description":"Genesis City estate ID (if applicable)"},"estate_name":{"type":"string","nullable":true,"description":"Genesis City estate name (if applicable)"},"scene_name":{"type":"string","nullable":true,"description":"Deprecated - scene name"},"approved":{"type":"boolean","description":"Whether the event has been approved by a moderator","default":false},"rejected":{"type":"boolean","description":"Whether the event has been rejected by a moderator","default":false},"rejection_reason":{"type":"string","nullable":true,"maxLength":500,"description":"Reason provided by a moderator or service when rejecting the event"},"approved_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that approved the event"},"rejected_by":{"type":"string","nullable":true,"description":"Wallet address or service actor that rejected the event"},"highlighted":{"type":"boolean","description":"Whether the event is highlighted in the UI","default":false},"trending":{"type":"boolean","description":"Whether the event is marked as trending","default":false},"recurrent":{"type":"boolean","description":"Whether this is a recurring event","default":false},"recurrent_frequency":{"type":"string","nullable":true,"enum":["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],"description":"Recurrence frequency (RRule FREQ)"},"recurrent_interval":{"type":"integer","minimum":0,"description":"Recurrence interval (RRule INTERVAL)"},"recurrent_count":{"type":"integer","nullable":true,"minimum":1,"description":"Number of recurrences (RRule COUNT)"},"recurrent_until":{"type":"string","format":"date-time","nullable":true,"description":"Recurrence end date (RRule UNTIL)"},"recurrent_weekday_mask":{"type":"integer","minimum":0,"maximum":127,"description":"Weekday mask for recurrence (bit flags for days of week)"},"recurrent_month_mask":{"type":"integer","minimum":0,"maximum":4095,"description":"Month mask for recurrence (bit flags for months)"},"recurrent_setpos":{"type":"integer","nullable":true,"minimum":-1,"maximum":5,"description":"Position in recurrence set (RRule BYSETPOS)"},"recurrent_monthday":{"type":"integer","nullable":true,"minimum":1,"maximum":31,"description":"Day of month for recurrence (RRule BYMONTHDAY)"},"recurrent_dates":{"type":"array","description":"Calculated recurrence dates","items":{"type":"string","format":"date-time"}},"contact":{"type":"string","nullable":true,"maxLength":100,"description":"Contact information for event organizer"},"details":{"type":"string","nullable":true,"maxLength":5000,"description":"Additional event details"},"categories":{"type":"array","description":"Event category names","items":{"type":"string"}},"schedules":{"type":"array","description":"Schedule IDs this event belongs to","items":{"type":"string","format":"uuid"}},"world":{"type":"boolean","description":"Whether this event is in a World (true) or Genesis City (false)","default":false},"place_id":{"type":"string","format":"uuid","nullable":true,"description":"Place ID (from Places API)"},"community_id":{"type":"string","format":"uuid","nullable":true,"description":"Community ID this event is associated with"},"total_attendees":{"type":"integer","minimum":0,"description":"Total number of users attending"},"latest_attendees":{"type":"array","description":"Ethereum addresses of latest attendees","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxItems":10},"attending":{"type":"boolean","description":"Whether the authenticated user is attending (only when authenticated)"},"live":{"type":"boolean","description":"Whether the event is currently happening"},"created_at":{"type":"string","format":"date-time","description":"Event creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"Event last update timestamp"},"connected_addresses":{"type":"array","description":"List of wallet addresses currently connected to the event location.\nOnly included when with_connected_users=true. Data is cached for 5 minutes.\n","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}},"required":["id","name","start_at","duration","x","y","user"]}}}}}},"400":{"description":"Bad request - invalid parameters or body","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"401":{"description":"Unauthorized - authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"403":{"description":"Forbidden - insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"404":{"description":"Not found - resource doesn't exist","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}},"503":{"description":"Service unavailable - endpoint disabled or dependency unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"string","description":"Error message"}},"required":["ok","error"]}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decentraland.org/apis/apis/events/events.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
