Skip to main content
SDK v7.x · Last verified March 2026 · iOS · Android · Web
// 1. Create an event
const { data: event } = await EventRepository.createEvent({
  title: 'Community Meetup', description: 'Monthly gathering',
  startDate: '2026-04-01T18:00:00Z', endDate: '2026-04-01T20:00:00Z',
  targetType: 'community', targetId: 'communityId',
});

// 2. RSVP
await EventRepository.rsvpEvent(event.eventId, 'going');

// 3. Query upcoming events
EventRepository.getEvents({ status: 'upcoming', limit: 10 },
  ({ data }) => { /* render */ }
);
Full walkthrough below ↓
Platform note — code samples below use TypeScript. Every method has an equivalent in the iOS (Swift), Android (Kotlin), and Flutter (Dart) SDKs — see the linked SDK reference in each step.
Events give communities and users a way to organize real-world and virtual activities. social.plus supports three event types — livestream, external link (virtual), and in-person — each with RSVP tracking, attendee lists, and push notification reminders.

Livestream

Go live directly within the app — attendees watch and chat in real time.

Virtual (External Link)

Redirect attendees to Zoom, Google Meet, or any external URL.

In-Person

Physical gatherings with an address field and map support.
This guide covers creating events, managing RSVPs, querying attendees, admin console management, and building an event discovery experience.
Prerequisites: SDK installed and authenticated. A communityId is required — events are always attached to a community.Also recommended: Complete Community Platform first — events live inside communities.
After completing this guide you’ll have:
  • Event creation with title, description, date/time, and location
  • RSVP (going / not going) flow with attendee list
  • Events discoverable in community feeds and a dedicated events list

Quick Start: Create an Event

TypeScript
import { EventRepository, AmityEventType, AmityEventOriginType } from '@amityco/ts-sdk';

const { data: event } = await EventRepository.createEvent({
  title: 'Community Workshop 2025',
  description: 'Join us for an interactive workshop',
  type: AmityEventType.Virtual,
  startTime: '2025-03-20T14:00:00Z',
  endTime: '2025-03-20T16:00:00Z',
  originType: AmityEventOriginType.Community,
  originId: 'community-123',
  metadata: { timezone: 'America/Los_Angeles' },
});

console.log('Event created:', event.eventId);

Step-by-Step Implementation

1

Query events in a community

Query events for a specific community, filtered by status and sort order. Results are returned as a live collection.
TypeScript
import { EventRepository, AmityEventOriginType, AmityEventSortOption, AmityEventOrderOption } from '@amityco/ts-sdk';

const unsubscribe = EventRepository.getEvents(
  {
    originType: AmityEventOriginType.Community,
    originId: 'community-123',
    sortBy: AmityEventSortOption.StartTime,
    orderBy: AmityEventOrderOption.Ascending,
  },
  ({ data: events, loading }) => {
    if (events) {
      events.forEach(event => console.log(event.title, event.startTime));
    }
  },
);
Full reference → Manage Events
2

RSVP to an event

Let users respond with going, not_going, or interested. Users can change their RSVP at any time before the event starts.
TypeScript
import { EventRepository, AmityEventResponseStatus } from '@amityco/ts-sdk';

const unsubscribe = EventRepository.getEvent(
  'event-123',
  async ({ data: event }) => {
    if (event) {
      const rsvp = await event.createRSVP(AmityEventResponseStatus.Going);
      console.log('RSVP:', rsvp?.status);
    }
  },
);
Full reference → Event RSVP
3

Query event attendees

Query the list of attendees filtered by RSVP status. Use this to show who’s going, display an attendee count, or build an attendee list screen.
TypeScript
import { EventRepository, AmityEventResponseStatus } from '@amityco/ts-sdk';

const unsubscribe = EventRepository.getEvent('event-123', ({ data: event }) => {
  if (event) {
    event.getRSVPs(
      { status: AmityEventResponseStatus.Going },
      ({ data: responses }) => {
        if (responses) {
          responses.forEach(rsvp => console.log('Attendee:', rsvp.user?.displayName));
        }
      },
    );
  }
});
Full reference → Event RSVP
4

Update and delete events

Event creators and community moderators can update event details (title, description, time, location) or delete events entirely.
TypeScript
import { EventRepository } from '@amityco/ts-sdk';

// Update an event
const { data: updated } = await EventRepository.updateEvent('event-123', {
  title: 'Updated Event Title',
  description: 'New details for the event',
  startTime: '2025-04-20T15:00:00Z',
});

// Delete an event
await EventRepository.deleteEvent('event-123');
Full reference → Manage Events

Admin Console: Manage & Monitor Events

Admins can create, view, and manage all events across communities from Admin Console → Events.

Events Dashboard

Admin Console events management table showing event titles, types, communities, creators, dates, and status
The dashboard shows all events at a glance with filtering by creator and status (Upcoming, Ongoing, Ended). Columns include event title, type, community, creator, start/end dates, status, and attendee count.

Create Events from Console

Click Create event to build events directly from the console — useful for official community events or marketing campaigns.
Admin Console create event form with community selector, event name, thumbnail upload, and scheduling fields
The creation form covers:
  • Feed & account — target community and creator identity
  • Event details — name (60 chars), description (1,000 chars), optional 16:9 thumbnail
  • Schedule — timezone-aware start and end date/time pickers
  • Event type — Livestream, External Link (URL), or In-Person (address)

Event Detail View

Click any event to see its detail page with three tabs:
Admin Console event detail page with Activities tab showing post count and status badges
TabWhat it shows
ActivitiesPosts and engagement tied to the event
AttendeesUsers who RSVP’d — going, interested, not going
DetailsFull event config (community, schedule, type, address/link) — editable
Admin Console event detail Details tab showing community, name, thumbnail, timezone, dates, and event type fields

Push Notification Configuration

Enable event-related push notifications in Admin Console → Settings → Push notifications → Community event.
Admin Console push notification settings for community events showing toggles for post, reaction, approval, and review notifications
Receive event.created, event.updated, event.rsvp.created, and event.rsvp.updated webhook events to sync attendance data with an external calendar system, CRM, or trigger reminder emails.Webhook Events
Use webhooks to send reminder push notifications to RSVP’d attendees before an event starts. Trigger this from your backend when event.startAt - 24h is reached.Notifications guide
Full console documentation for events management including all field descriptions, event types, and status lifecycle.Console: Events Management

Common Mistakes

Creating events without an end date — Events without endDate appear as ongoing indefinitely. Always set both startDate and endDate for a clear timeline.
Displaying event times without timezone conversion — The API stores dates in UTC. Always convert to the user’s local timezone before rendering, or display the timezone label.
// ❌ Bad — raw UTC string
<span>{event.startDate}</span>

// ✅ Good — localized
<span>{new Date(event.startDate).toLocaleString()}</span>
Not refreshing RSVP counts after changes — After a user RSVPs, other attendees’ counts are stale. Use Live Collections or re-query after RSVP actions to keep counts accurate.

Best Practices

  • Show upcoming events prominently in the community feed — pin an event post in the week before it starts
  • Add filtering: “This week”, “This month”, “Past events”
  • Show a map preview for in-person events with a location field
  • Display the RSVP counts prominently (“42 going · 18 interested”) to create social proof
Mobile past events list with thumbnails, virtual and in-person badges, dates, and brand names
  • Send a confirmation in-app notification when a user RSVPs to an event
  • Allow users to change their RSVP up until the event starts
  • Send a reminder push notification 24h and 1h before the event to “going” attendees
  • After the event ends, ask attendees to leave a review or reaction
  • Always store event times in UTC and convert to local time for display
  • Show the timezone explicitly on event details (e.g., “3:00 PM PDT”) to avoid confusion
  • For virtual events, show the time in both the creator’s and viewer’s timezone

Dive deeper: Events API Reference has full parameter tables, method signatures, and platform-specific details for every API used in this guide.

Next Steps

Your next step → Notifications & Engagement

Events are live — now set up notifications so members get alerted about new events and RSVP reminders.
Or explore related guides:

Community Platform

Events are typically hosted within communities

Notifications & Engagement

Send event reminders and RSVP notifications

Build a Social Feed

Surface upcoming events in the community feed