engagementEventsFetch 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 }
}
}
}
engagementEventFetch 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 }
}
}
createEngagementEventCreate 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
}
}
updateEngagementEventUpdate 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
}
}
inReviewEngagementEventMove an engagement event from draft to in_review status. Records the current user and timestamp.
mutation {
inReviewEngagementEvent(id: "42") {
id
status
}
}
publishEngagementEventPublish an engagement event. The event must be in in_review status before it can be published.
mutation {
publishEngagementEvent(id: "42") {
id
status
}
}
eventApplicationsFetch 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 }
}
}
}
eventApplicationFetch a single event application by its ID.
{
eventApplication(id: "7") {
id
status
ticketId
additionalDetails
createdAt
updatedAt
engagementEvent { id title }
person { id fullName }
}
}
createEventApplicationApply 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 }
}
}
updateEventApplicationUpdate an existing event application by ID (e.g. change additional details).
mutation {
updateEventApplication(id: "7", eventApplication: {
additionalDetails: "Updated details about my attendance."
}) {
id
additionalDetails
}
}
acceptEventApplicationAccept 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
}
}
rejectEventApplicationReject a submitted event application. The application must be in submitted status.
mutation {
rejectEventApplication(id: "7") {
id
status
}
}