Engagement Events & Event Applications API
February 10th, 2026

Engagement Events & Event Applications API


Engagement Events

Queries

engagementEvents

Fetch a paginated list of engagement events. Supports filtering by status, host office, and text search.

{
engagementEvents(filters: {
q: "leadership",
statuses: [draft, published],
hostOfficeIds: ["1", "2"]
}) {
data {
id
title
description
startTime
endTime
status
applicationDeadline
location
googlePlaceId
contactInformation
refundPolicy
feeCents
createdAt
updatedAt
hostOffice { id name }
managers { id fullName }
coverImage { url }
engagementEventSpeakers { id name description }
engagementEventDayActivities { id title description startTime endTime }
}
}
}

engagementEvent

Fetch a single engagement event by its ID.

{
engagementEvent(id: "42") {
id
title
description
startTime
endTime
status
applicationDeadline
location
googlePlaceId
contactInformation
refundPolicy
feeCents
hostOffice { id name }
managers { id fullName }
coverImage { url }
engagementEventSpeakers { id name description }
engagementEventDayActivities { id title description startTime endTime }
}
}

Mutations

createEngagementEvent

Create a new engagement event. The current user is automatically set as the creator and manager.

mutation {
createEngagementEvent(engagementEvent: {
title: "Global Leadership Summit",
description: "A two-day leadership summit for AIESEC members.",
startTime: "2026-04-01T09:00:00Z",
endTime: "2026-04-02T17:00:00Z",
hostOfficeId: "5",
applicationDeadline: "2026-04-01T12:00:00Z",
location: "Berlin, Germany",
googlePlaceId: "ChIJAVkDPzdOqEcRcDteW0YgIQQ",
contactInformation: "events@aiesec.org",
refundPolicy: "Full refund up to 7 days before the event.",
feeCents: 5000,
managerIds: ["10", "11"],
engagementEventSpeakersAttributes: [
{ name: "Jane Doe", description: "CEO of ExampleCorp" }
],
engagementEventDayActivitiesAttributes: [
{
title: "Opening Keynote",
description: "Welcome and opening remarks.",
startTime: "2026-04-01T09:00:00Z",
endTime: "2026-04-01T10:00:00Z",
engagementEventSpeakerIds: []
}
]
}) {
id
title
status
}
}

updateEngagementEvent

Update an existing engagement event by ID. Pass only the fields you want to change.

mutation {
updateEngagementEvent(id: "42", engagementEvent: {
title: "Updated Summit Title",
description: "Updated description.",
feeCents: 7500,
engagementEventSpeakersAttributes: [
{ id: "1", name: "Jane Doe Updated" },
{ id: "2", _destroy: true }
],
engagementEventDayActivitiesAttributes: [
{ id: "10", title: "Updated Keynote Title" },
{ id: "11", _destroy: true }
]
}) {
id
title
status
}
}

inReviewEngagementEvent

Move an engagement event from draft to in_review status. Records the current user and timestamp.

mutation {
inReviewEngagementEvent(id: "42") {
id
status
}
}

publishEngagementEvent

Publish an engagement event. The event must be in in_review status before it can be published.

mutation {
publishEngagementEvent(id: "42") {
id
status
}
}

Event Applications

Queries

eventApplications

Fetch a paginated list of event applications. Supports filtering by status, engagement event, person, and text search.

{
eventApplications(filters: {
q: "john",
statuses: [submitted, accepted],
engagementEventIds: ["42"],
personIds: ["100"]
}) {
data {
id
status
ticketId
additionalDetails
createdAt
updatedAt
engagementEvent { id title }
person { id fullName }
}
}
}

eventApplication

Fetch a single event application by its ID.

{
eventApplication(id: "7") {
id
status
ticketId
additionalDetails
createdAt
updatedAt
engagementEvent { id title }
person { id fullName }
}
}

Mutations

createEventApplication

Apply to a published engagement event on behalf of the current user. Each user can only apply once per event.

mutation {
createEventApplication(eventApplication: {
engagementEventId: "42",
additionalDetails: "I am excited to attend this event!"
}) {
id
status
engagementEvent { id title }
person { id fullName }
}
}

updateEventApplication

Update an existing event application by ID (e.g. change additional details).

mutation {
updateEventApplication(id: "7", eventApplication: {
additionalDetails: "Updated details about my attendance."
}) {
id
additionalDetails
}
}

acceptEventApplication

Accept a submitted event application. If the event is free, the application automatically moves to attending and a ticket ID is generated.

mutation {
acceptEventApplication(id: "7") {
id
status
ticketId
}
}

rejectEventApplication

Reject a submitted event application. The application must be in submitted status.

mutation {
rejectEventApplication(id: "7") {
id
status
}
}



Crafted by