> ## Documentation Index
> Fetch the complete documentation index at: https://learn.social.plus/llms.txt
> Use this file to discover all available pages before exploring further.

# Event

> Comprehensive event management UI components for creating, discovering, and managing scheduled events

<Info>
  **UIKit Component**: Event components are built on top of the social.plus SDK,
  providing ready-to-use event creation and discovery UI with full data
  management handled automatically.
</Info>

<Frame>
  <img src="https://mintcdn.com/social-b97141fb/Whepx2DgDzjvHcd8/images/Explore.png?fit=max&auto=format&n=Whepx2DgDzjvHcd8&q=85&s=dcce7e8f47caccd5e705ecb03c6fea0c" alt="Explore" title="Explore" className="mx-auto" style={{ width: "40%" }} width="750" height="1610" data-path="images/Explore.png" />
</Frame>

## Feature Overview

The **Event** feature in social.plus UIKit v4 enables users to create scheduled events, discover upcoming/past events, manage attendees, and navigate between event-related experiences.

### Key Features

<CardGroup cols={2}>
  <Card title="Event Creation" icon="calendar-plus">
    **Schedule events with rich details**

    * Select where to create the event
    * Configure details (name, description, date & time)
    * In-person or virtual options
  </Card>

  <Card title="Event Discovery" icon="magnifying-glass">
    **Explore and manage your events**

    * Explore events feed
    * Upcoming events page
    * Past events page
    * Community-specific event feed
  </Card>

  <Card title="Attendees & RSVP" icon="hand">
    **Track and manage attendance**

    * RSVP (Going/Not going)
    * Attendees list
    * Reminder Notifications
  </Card>
</CardGroup>

### Platform Support

| Feature                    | iOS | Android | Web | Flutter | React Native |
| -------------------------- | --- | ------- | --- | ------- | ------------ |
| Event Creation             | ✅   | ✅       | ✅   | -       | -            |
| Event Detail & Attendees   | ✅   | ✅       | ✅   | -       | -            |
| Event discovery            | ✅   | ✅       | ✅   | -       | -            |
| Event in community profile | ✅   | ✅       | ✅   | -       | -            |

## Permission Handling

Spec 6 defines the visibility rules for entry points that trigger event creation:

1. **Global feed**: Only users with global permission will see the create event button
   * Check: `client.hasPermission(AmityPermission.createEvent)`
2. **Community feed**: Users with global OR community permission will see the create event button
   * Check: `client.hasPermission(AmityPermission.createEvent, communityId)`

<Note>
  UIKit applies these permission checks automatically. If you implement your own
  custom entry points, keep the same permission logic for consistent UX.
</Note>

## Implementation Guide

<Tabs>
  <Tab title="Event Creation">
    ### Event Target Selection Page

    Use **AmityEventTargetSelectionPage** to choose the destination for the event (Note: community only).

    #### Customization Options

    | Config ID                                 | Type    | Description                  |
    | ----------------------------------------- | ------- | ---------------------------- |
    | `select_event_target_page/*/*`            | Page    | Customize page theme         |
    | `select_event_target_page/*/close_button` | Element | Customize close button image |
    | `select_event_target_page/*/title`        | Element | Customize page title         |

    #### Code Examples

    <CodeGroup>
      ```swift iOS theme={null}
      let page = AmityEventTargetSelectionPage()
      let viewController = AmitySwiftUIHostingController(rootView: page)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeEventTargetSelectionPage() {
          AmityEventTargetSelectionPage()
      }

      // Using Activity
      fun startEventTargetSelectionActivity(context: Context) {
          val intent = AmityEventTargetSelectionPageActivity.newIntent(
              context = context,
          )
          context.startActivity(intent)
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityEventTargetSelectionPage } from '@amityco/ui-kit';

      const SampleEventTargetSelectionPage = () => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventTargetSelectionPage />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    ### Event Setup Page

    Use **AmityEventSetupPage** to create or edit an event.

    <Frame>
      <img src="https://mintcdn.com/social-b97141fb/1NUkPv8NmKhPS-wU/images/create-commupublic(1).png?fit=max&auto=format&n=1NUkPv8NmKhPS-wU&q=85&s=b1ea7db571336128b914173b4e53ae74" alt="Create Commupublic(1)" width="375" height="1069" data-path="images/create-commupublic(1).png" />
    </Frame>

    **Public API:**

    ```swift theme={null}
    enum AmityEventSetupPageMode {
      case create(targetId, targetName)
      case edit(AmityEvent)
    }

    AmityEventSetupPage(mode: AmityEventSetupPageMode)
    ```

    #### Customization Options

    | Config ID                                  | Type    | Description                     |
    | ------------------------------------------ | ------- | ------------------------------- |
    | `event_setup_page/*/*`                     | Page    | Customize page theme            |
    | `event_setup_page/*/title`                 | Element | Customize title                 |
    | `event_setup_page/*/camera_button`         | Element | Customize camera label/icon     |
    | `event_setup_page/*/image_button`          | Element | Customize photo label/icon      |
    | `event_setup_page/*/event_name_title`      | Element | Customize “Event name” label    |
    | `event_setup_page/*/event_details_title`   | Element | Customize “Event details” label |
    | `event_setup_page/*/event_date_time_title` | Element | Customize “Date and time” label |
    | `event_setup_page/*/event_location_title`  | Element | Customize “Location” label      |

    #### Code Examples

    <CodeGroup>
      ```swift iOS theme={null}
      // Create
      let page = AmityEventSetupPage(mode: .create("<targetId>", "<targetName>"))
      let viewController = AmitySwiftUIHostingController(rootView: page)
      navigationController?.pushViewController(viewController, animated: true)

      // Edit
      // When you already have an AmityEvent object
      let editPage = AmityEventSetupPage(mode: .edit(event))
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeCreateEventSetupPage(targetId: String, targetName: String) {
          AmityEventSetupPage(mode = AmityEventSetupPageMode.Create(targetId, targetName))
      }

      @Composable
      fun composeEditEventSetupPage(event: AmityEvent) {
          AmityEventSetupPage(mode = AmityEventSetupPageMode.Edit(event))
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityEventSetupPage } from '@amityco/ui-kit';

      // Create mode
      const SampleCreateEventSetupPage = ({ targetId, targetName }) => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventSetupPage
              mode="create"
              targetId={targetId}
              targetName={targetName}
            />
          </AmityUiKitProvider>
        );
      };

      // Edit mode
      const SampleEditEventSetupPage = ({ event }) => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventSetupPage mode="edit" event={event} />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Event Details">
    ### Event Detail Page

    Use **AmityEventDetailPage** to view event details and access event actions.

    <Frame>
      <img src="https://mintcdn.com/social-b97141fb/1NUkPv8NmKhPS-wU/images/Skeleton(2).png?fit=max&auto=format&n=1NUkPv8NmKhPS-wU&q=85&s=0286d7edba374b4a63585ebe1581c020" alt="Skeleton(2)" width="282" height="819" data-path="images/Skeleton(2).png" />
    </Frame>

    **Public API:**

    ```swift theme={null}
    AmityEventDetailPage(eventId: string)
    ```

    #### Code Examples

    <CodeGroup>
      ```swift iOS theme={null}
      let page = AmityEventDetailPage(eventId: "<eventId>")
      let viewController = AmitySwiftUIHostingController(rootView: page)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeEventDetailPage(eventId: String) {
          AmityEventDetailPage(eventId = eventId)
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityEventDetailPage } from '@amityco/ui-kit';

      const SampleEventDetailPage = ({ eventId }) => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventDetailPage eventId={eventId} />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    ### Event Attendees Page

    Use **AmityEventAttendeesPage** to browse attendees and navigate to a user profile.

    **Public API:**

    ```swift theme={null}
    AmityEventAttendeesPage(eventId: string)
    ```

    #### Code Examples

    <CodeGroup>
      ```swift iOS theme={null}
      let page = AmityEventAttendeesPage(eventId: "<eventId>")
      let viewController = AmitySwiftUIHostingController(rootView: page)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeEventAttendeesPage(eventId: String) {
          AmityEventAttendeesPage(eventId = eventId)
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityEventAttendeesPage } from '@amityco/ui-kit';

      const SampleEventAttendeesPage = ({ eventId }) => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventAttendeesPage eventId={eventId} />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Event Discovery">
    ### Upcoming Events Pages

    Use **AmityUpcomingEventsPage** to browse upcoming events.

    <Frame>
      <img src="https://mintcdn.com/social-b97141fb/1NUkPv8NmKhPS-wU/images/Default(1).png?fit=max&auto=format&n=1NUkPv8NmKhPS-wU&q=85&s=77b84c6dcb6ca55f2eb79016f2cb72d8" alt="Default(1)" width="282" height="609" data-path="images/Default(1).png" />
    </Frame>

    #### Customization Options

    | Config ID                  | Type | Description                    |
    | -------------------------- | ---- | ------------------------------ |
    | `upcoming_events_page/*/*` | Page | Customize upcoming events page |

    #### Code Examples

    <CodeGroup>
      ```swift iOS theme={null}
      // Show all upcoming events (Explore mode)
      let upcomingEventsPage = AmityUpcomingEventsPage(
          context: .init(onlyMyEvents: false)
      )
      let viewController = AmitySwiftUIHostingController(rootView: upcomingEventsPage)
      navigationController?.pushViewController(viewController, animated: true)

      // Show only user's upcoming events (My Events mode)
      let myEventsPage = AmityUpcomingEventsPage(
          context: .init(onlyMyEvents: true)
      )
      let myEventsViewController = AmitySwiftUIHostingController(rootView: myEventsPage)
      navigationController?.pushViewController(myEventsViewController, animated: true)
      ```

      ```kotlin Android theme={null}
      // Using Activity - All events
      fun startUpcomingEventsActivityAllEvents(context: Context) {
          val intent = AmityUpcomingEventsPageActivity.newIntent(
              context = context,
              showAllEvents = true
          )
          context.startActivity(intent)
      }

      // Using Activity - My events only
      fun startUpcomingEventsActivityMyEvents(context: Context) {
          val intent = AmityUpcomingEventsPageActivity.newIntent(
              context = context,
              showAllEvents = false
          )
          context.startActivity(intent)
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityUpcomingEventsPage } from '@amityco/ui-kit';

      const SampleAmityUpcomingEventsPage = () => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityUpcomingEventsPage fromExplore={true} />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    ### Past Events Page

    Use **AmityPastEventsPage** to browse past events.

    <Frame>
      <img src="https://mintcdn.com/social-b97141fb/NE54L1zuRTEoUFcq/images/past-event-page.png?fit=max&auto=format&n=NE54L1zuRTEoUFcq&q=85&s=b86ac9f7ae7806630147cc41c9dc8a62" alt="Default(1)" width="195" height="415" data-path="images/past-event-page.png" />
    </Frame>

    #### Customization Options

    | Config ID              | Type | Description                |
    | ---------------------- | ---- | -------------------------- |
    | `past_events_page/*/*` | Page | Customize past events page |

    #### Code Examples

    <CodeGroup>
      ```swift iOS theme={null}
      // Show past events page
      let pastEventsPage = AmityPastEventsPage()
      let viewController = AmitySwiftUIHostingController(rootView: pastEventsPage)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      // Using Activity - All events
      fun startPastEventsActivityAllEvents(context: Context) {
          val intent = AmityPastEventsPageActivity.newIntent(context)
          context.startActivity(intent)
      }

      // Using Activity - My events only  
      fun startPastEventsActivityMyEvents(context: Context) {
          val intent = AmityPastEventsPageActivity.newIntent(context)
          context.startActivity(intent)
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityPastEventsPage } from '@amityco/ui-kit';

      const SampleAmityPastEventsPageActivityPage = () => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityPastEventsPage />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    ### Feed Components

    **Event discovery surfaces embedded in existing feature pages**

    Spec 6 aligns the Event feature with these components:

    * **AmityExploreEventFeedComponent**
    * **AmityMyEventFeedComponent**
    * **AmityEventInfoComponent**
    * **AmityEventDiscussionFeedComponent**

    These components are typically used inside existing UIKit pages (e.g., Social Home and Community Profile). If you’re using the standard Social Home experience, you get these feeds automatically.

    #### Code Examples

    #### AmityExploreEventFeedComponent

    <CodeGroup>
      ```swift iOS theme={null}
      // Show explore event feed component
      let exploreEventComponent = AmityExploreEventFeedComponent(pageId: .socialHomePage)
      let viewController = AmitySwiftUIHostingController(rootView: exploreEventComponent)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeExploreEventFeed() {
          // Get flows directly from SDK repository
          val liveEvents = remember {
              AmitySocialClient.newEventRepository()
                  .getLiveEvents()
                  .cachedIn(viewModelScope)
          }.collectAsLazyPagingItems()

          val upcomingEvents = remember {
              AmitySocialClient.newEventRepository()
                  .getUpcomingEvents()
                  .cachedIn(viewModelScope)
          }.collectAsLazyPagingItems()

          AmityExploreEventFeedComponent(
              liveEvents = liveEvents,
              upcomingEvents = upcomingEvents
          )
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityExploreEventFeedComponent } from '@amityco/ui-kit';

      const SampleAmityExploreEventFeedComponent = () => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityExploreEventFeedComponent pageId="your_pageId" />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    #### AmityMyEventFeedComponent

    <CodeGroup>
      ```swift iOS theme={null}
      // Show my event feed component
      let myEventComponent = AmityMyEventFeedComponent(pageId: .socialHomePage)
      let viewController = AmitySwiftUIHostingController(rootView: myEventComponent)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeMyEventFeed() {
          // Get flows directly from SDK repository
          val liveEvents = remember {
              AmitySocialClient.newEventRepository()
                  .getLiveEvents()
                  .cachedIn(viewModelScope)
          }.collectAsLazyPagingItems()

          val upcomingEvents = remember {
              AmitySocialClient.newEventRepository()
                  .getMyUpcomingEvents()
                  .cachedIn(viewModelScope)
          }.collectAsLazyPagingItems()

          val pastEvents = remember {
              AmitySocialClient.newEventRepository()
                  .getPastEvents()
                  .cachedIn(viewModelScope)
          }.collectAsLazyPagingItems()

          AmityMyEventFeedComponent(
              liveEvents = liveEvents,
              upcomingEvents = upcomingEvents,
              pastEvents = pastEvents
          )
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityMyEventFeedComponent } from '@amityco/ui-kit';

      const SampleAmityMyEventFeedComponent = () => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityMyEventFeedComponent pageId="your_pageId" />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    #### AmityEventInfoComponent

    <CodeGroup>
      ```swift iOS theme={null}
      let eventDetailViewModel = AmityEventDetailPageViewModel(event: event)
      let eventInfoComponent = AmityEventInfoComponent(viewModel: eventDetailViewModel)
      let viewController = AmitySwiftUIHostingController(rootView: eventInfoComponent)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeEventInfo(
          event: AmityEvent
      ) {
          AmityEventInfoComponent(
              event = event
          )
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityEventInfoComponent } from '@amityco/ui-kit';

      const SampleAmityEventInfoComponent = ({ event }) => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventInfoComponent pageId="your_pageId" event={event} />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    #### AmityEventDiscussionFeedComponent

    <CodeGroup>
      ```swift iOS theme={null}
      // Show event discussion feed component (requires an event and view model)
      let eventDetailViewModel = AmityEventDetailPageViewModel(event: event)
      let discussionFeedComponent = AmityEventDiscussionFeedComponent(viewModel: eventDetailViewModel)
      let viewController = AmitySwiftUIHostingController(rootView: discussionFeedComponent)
      navigationController?.pushViewController(viewController, animated: true)
      ```

      ```kotlin Android theme={null}
      @Composable
      fun composeEventDiscussionFeed(
          eventId: String
      ) {
          val viewModel: AmityEventDetailViewModel = viewModel()
          val lazyListState = rememberLazyListState()

          LaunchedEffect(eventId) {
              viewModel.loadEvent(eventId)
          }

          AmityEventDiscussionFeedComponent(
              viewModel = viewModel,
              lazyListState = lazyListState,
              shouldRefresh = false,
              header = {
                  item {
                      Text("Event Discussion Header")
                  }
              }
          )
      }
      ```

      ```typescript React theme={null}
      import { AmityUiKitProvider, AmityEventDiscussionFeedComponent } from '@amityco/ui-kit';

      const SampleAmityEventDiscussionFeedComponent = ({ event }) => {
        return (
          <AmityUiKitProvider
            apiKey="API_KEY"
            apiRegion="API_REGION"
            userId="userId"
            displayName="displayName"
            configs={{}}
          >
            <AmityEventDiscussionFeedComponent pageId="your_pageId" event={event} />
          </AmityUiKitProvider>
        );
      };
      ```
    </CodeGroup>

    #### Customization Options

    | Config ID                                               | Type      | Description                                      |
    | ------------------------------------------------------- | --------- | ------------------------------------------------ |
    | `social_home_page/my_event_feed_component/*`            | Component | Customize My Event feed section                  |
    | `social_home_page/explore_event_feed_component/*`       | Component | Customize Explore Event feed section             |
    | `community_profile_page/*/create_event_button`          | Element   | Customize create event button label              |
    | `social_home_page/create_post_menu/create_event_button` | Element   | Customize create-event entry in create-post menu |

    <Note>
      If you need to hook navigation (e.g., “View all upcoming”), use the corresponding Behavior class documented in the next tab.
    </Note>
  </Tab>
</Tabs>

## Customization

UIKit provides these customization keys for event entry points and pages.

```json theme={null}
{
  "*/community_sidebar/communities_sidebar_menu_item": {
    "text": "Communities",
    "icon": ""
  },
  "*/community_sidebar/events_sidebar_menu_item": {
    "text": "Events",
    "icon": ""
  },

  "social_home_page/*/communities_button": {
    "text": "Communities"
  },
  "social_home_page/*/events_button": {
    "text": "Events"
  },
  "social_home_page/create_post_menu/create_event_button": {
    "text": "Event",
    "image": ""
  },
  "social_home_page/my_event_feed_component/*": {},
  "social_home_page/explore_event_feed_component/*": {},

  "community_profile_page/*/create_event_button": {
    "text": "Event"
  },

  "select_event_target_page/*/*": {},
  "select_event_target_page/*/close_button": {
    "image": ""
  },
  "select_event_target_page/*/title": {
    "text": "Create event in"
  },

  "event_setup_page/*/*": {},
  "event_setup_page/*/title": {
    "text": "Create event"
  },
  "event_setup_page/*/camera_button": {
    "text": "Camera",
    "image": ""
  },
  "event_setup_page/*/image_button": {
    "text": "Photo",
    "image": ""
  },
  "event_setup_page/*/event_name_title": {
    "text": "Event name"
  },
  "event_setup_page/*/event_details_title": {
    "text": "Event details"
  },
  "event_setup_page/*/event_date_time_title": {
    "text": "Date and time"
  },
  "event_setup_page/*/event_location_title": {
    "text": "Location"
  },

  "upcoming_events_page/*/*": {},

  "past_events_page/*/*": {}
}
```

## Behavior Customization

UIKit provides behavior classes to customize navigation and actions for event-related pages and components.

### Page Behaviors

<Tabs>
  <Tab title="Event Target Selection">
    ```swift theme={null}
    class AmityEventTargetSelectionPageBehavior {

        goToEventSetupPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="Event Setup">
    ```swift theme={null}
    class AmityEventSetupPageBehavior {

        goToEventDetailPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="Event Detail">
    ```swift theme={null}
    class AmityEventDetailPageBehavior {

        goToEventSetupPage(context): void {
          // navigation logic
        }

        goToLivestreamPostComposerPage(context): void {
          // navigation logic
        }

        goToPostDetailPage(context): void {
          // navigation logic
        }

        goToPostComposerPage(context): void {
          // navigation logic
        }

        goToPollPostComposerPage(context): void {
          // navigation logic
        }

        goToCommunityProfilePage(context): void {
          // navigation logic
        }

        goToEventAttendeesPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="Event Attendees">
    ```swift theme={null}
    class AmityEventAttendeesPageBehavior {

        goToUserProfilePage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="Notification Tray">
    ```swift theme={null}
    class AmityNotificationTrayPageBehavior {

        // ... existing behaviors

        goToEventDetailPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="Community Profile">
    ```swift theme={null}
    class AmityCommunityProfilePageBehavior {

        // ... existing behaviors

        goToEventDetailPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>
</Tabs>

### Component Behaviors

<Tabs>
  <Tab title="Explore Event Feed">
    ```swift theme={null}
    class AmityExploreEventFeedComponentBehavior {

        goToUpcomingEventsPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="My Event Feed">
    ```swift theme={null}
    class AmityMyEventFeedComponentBehavior {

        goToUpcomingEventsPage(context): void {
          // navigation logic
        }

        goToPastEventsPage(context): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="Create Post Menu">
    ```swift theme={null}
    class AmityCreatePostMenuComponentBehavior {

        // ... existing behaviors

        goToSelectEventTargetPage(): void {
          // navigation logic
        }

    }
    ```
  </Tab>

  <Tab title="My Communities">
    ```swift theme={null}
    class AmityMyCommunitiesComponentBehavior {

        // ... existing behaviors

        goToCommunitySetupPage(): void {
          // navigation logic
        }

    }
    ```
  </Tab>
</Tabs>

## Related Topics

<CardGroup cols={3}>
  <Card title="Events SDK" icon="code" href="/social-plus-sdk/social/events/overview">
    SDK event APIs and data models
  </Card>

  <Card title="Community" icon="users" href="/uikit/components/social/community">
    Community UI components
  </Card>

  <Card title="Livestream" icon="video" href="/uikit/components/social/livestream">
    Livestream UI components
  </Card>
</CardGroup>
