Skip to content

Public Calendar View

The Public Calendar is the read-only window into the system's schedule. It is designed for maximum accessibility and multi-view flexibility.

Calendar SharingIntegration and sharing options for the public booking calendar.

Public CalendarThe clean, read-only interface used for guest-facing availability overview.

Viewing Experience

The calendar utilizes react-big-calendar with customized styling to match the application's premium aesthetic.

Available Views

  • Month: Traditional grid for long-term planning.
  • Week: Best for seeing daily density and available slots.
  • Day: Focused view for the current or selected date.
  • Agenda: A list-based chronologically sorted view of all upcoming events.

Interaction & Navigation

Time Travel

  • Navigation Controls: Quick buttons for "Today", "Previous", and "Next".
  • Date Picking: Automatically updates the view when navigating through the interactive header.

Event Inspection

Clicking on any event (Slot, Appointment, or Community Event) opens the EventDetailsModal:

  • Deep Dive: Shows titles, times, and descriptions.
  • Contextual Info: Indicates the type of event for better clarity.

Internationalization (i18n)

The calendar labels are fully translated:

  • Labels: "Today", "Month", etc., adapt to the user's language.
  • Date Formats: Automatically adjusts based on the culture setting (e.g., tr-TR or en-US).
  • Show More: Handles overlapping events with a localized "+N more" label.

Technical Architecture

usePublicCalendarPage Hook

  • State Coordination: Syncs the current date, selected view, and highlighted event.
  • Event Fetching: Aggregates all public-ready items (Approved Community Events, Public Slots) into a single array for display.
  • Style Getters: Dynamically assigns background colors and borders to events based on their type and status.

Display Constraints

To ensure performance, the calendar typically limits its search range to the current view's window, fetching only what is necessary for the user's current context.

Released under the GPL 3.0 License.