EventParticipant
Tracks a person's participation in an event including invitation delivery, RSVP response, and actual attendance. Supports role assignment, check-in/check-out times, and absence tracking.
Properties
| Property | Type | Mode | Description | Required |
|---|---|---|---|---|
| event | Event | stored | Reference to the Event this participation relates to (can reference any entity extending Event) | Required |
| participant | Person | stored | Reference to the Person participating in the event | Required |
| invitationStatus | string | stored | Status of the invitation to this participant Values: Example: | Required |
| responseStatus | string | stored | Participant's response to the invitation (RSVP status) Values: Example: | Required |
| respondedAt | datetime | stored | Date/time when the participant responded to the invitation Example: | Optional |
| attendanceStatus | string | stored | Actual attendance status for the event Values: Example: | Required |
| checkedInAt | datetime | stored | Date/time when participant checked in or arrived Example: | Optional |
| checkedOutAt | datetime | stored | Date/time when participant left the event Example: | Optional |
| role | string | stored | Role or function of this participant in the event Values: Example: | Optional |
| isRequired | boolean | stored | Whether this participant's attendance is required for the event to proceed Example: | Optional |
| declineReason | string | stored | Reason provided by participant for declining the invitation Example: | Optional |
| absenceReason | string | stored | Reason for not attending (for no-shows or excused absences) Example: | Optional |
| notes | string | stored | Additional notes about this participant's involvement Example: | Optional |
| reminderSent | boolean | stored | Whether a reminder was sent to this participant Example: | Optional |
| reminderSentAt | datetime | stored | Date/time when the last reminder was sent Example: | Optional |
| metadata | json | stored | Additional participant-specific metadata (dietary restrictions, accessibility needs, etc.) Example: | Optional |
| hasResponded | boolean | calculated | Whether the participant has responded to the invitation (responseStatus is not pending or no-response) | Optional |
| willAttend | boolean | calculated | Whether the participant confirmed they will attend (responseStatus is accepted) | Optional |
| didAttend | boolean | calculated | Whether the participant actually attended the event (attendanceStatus is attended) | Optional |
Examples
Example 1
{
"@type": "EventParticipant",
"event": {
"@type": "Event",
"title": "Q1 Planning Meeting"
},
"participant": {
"@type": "Person",
"givenName": "Jane",
"familyName": "Smith"
},
"invitationStatus": "delivered",
"responseStatus": "accepted",
"respondedAt": "2024-11-25T10:30:00Z",
"attendanceStatus": "attended",
"checkedInAt": "2024-12-01T13:58:00Z",
"role": "required",
"isRequired": true,
"reminderSent": true,
"reminderSentAt": "2024-11-30T09:00:00Z"
}Example 2
{
"@type": "EventParticipant",
"event": {
"@type": "Event",
"title": "Medical Consultation"
},
"participant": {
"@type": "Person",
"givenName": "John",
"familyName": "Doe"
},
"invitationStatus": "delivered",
"responseStatus": "accepted",
"respondedAt": "2024-11-20T14:00:00Z",
"attendanceStatus": "attended",
"checkedInAt": "2024-12-01T13:55:00Z",
"checkedOutAt": "2024-12-01T14:35:00Z",
"role": "attendee",
"isRequired": true,
"reminderSent": true,
"reminderSentAt": "2024-11-30T18:00:00Z"
}Example 3
{
"@type": "EventParticipant",
"event": {
"@type": "Event",
"title": "Team Standup"
},
"participant": {
"@type": "Person",
"givenName": "Bob",
"familyName": "Wilson"
},
"invitationStatus": "delivered",
"responseStatus": "declined",
"respondedAt": "2024-11-28T11:00:00Z",
"attendanceStatus": "excused",
"role": "optional",
"isRequired": false,
"declineReason": "Conflict with client meeting",
"absenceReason": "Prior commitment with external client"
}Example 4
{
"@type": "EventParticipant",
"event": {
"@type": "Event",
"title": "Board Meeting"
},
"participant": {
"@type": "Person",
"givenName": "Alice",
"familyName": "Brown"
},
"invitationStatus": "delivered",
"responseStatus": "accepted",
"respondedAt": "2024-11-15T09:00:00Z",
"attendanceStatus": "no-show",
"role": "required",
"isRequired": true,
"absenceReason": "Emergency - family situation",
"reminderSent": true,
"reminderSentAt": "2024-11-21T08:00:00Z"
}Example 5
{
"@type": "EventParticipant",
"event": {
"@type": "Event",
"title": "Webinar: Product Launch"
},
"participant": {
"@type": "Person",
"givenName": "Charlie",
"familyName": "Davis"
},
"invitationStatus": "delivered",
"responseStatus": "tentative",
"respondedAt": "2024-11-26T16:00:00Z",
"attendanceStatus": "expected",
"role": "presenter",
"isRequired": true,
"notes": "Preparing presentation slides, will confirm 2 days before",
"metadata": {
"presentationTopic": "New Feature Demo",
"estimatedDuration": "20 minutes"
}
}