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

# Changelog

> What's new and improved in PlayaOS.

<Update label="April 25, 2026">
  ## New features

  **Camp calendar and admin Calendar page**
  Connect Google Calendar in **Admin → Settings → Integrations** and either select an existing calendar or create a new one as your camp's source of truth. The new **Admin → Calendar** page shows 30-day stats, lets you create events, and syncs member birthdays and travel dates into the shared calendar. See [Configure and manage your camp calendar](/admins/calendar).

  **Bulk import members from a CSV**
  The Members page now has an **Import Members** action with a downloadable template, row-by-row validation, and partial-failure handling — valid rows are imported even when some rows fail, and orphaned sign-in accounts are cleaned up automatically. See [Bulk importing members from a CSV](/admins/managing-members#bulk-importing-members-from-a-csv).

  **Important Dates page for members**
  Members have a new **Important Dates** page that lists every visible camp date grouped into *Happening Now*, *Upcoming*, and *Past*, with category badges and date ranges. The dashboard **Next Up** card now links straight to it. See [Important Dates](/members/important-dates).

  **Accounts page for cleanup workflows**
  A new **Admin → Accounts** page surfaces duplicates, profiles needing attention, and orphaned imports. Merge duplicate profiles through a guided wizard with a recommended primary, promote stuck profiles to active in bulk, and invite or delete unclaimed placeholders. See [Clean up duplicate, stuck, and orphaned accounts](/admins/managing-accounts).

  ## Improvements

  **Date ranges and member-visibility toggle**
  Important dates now support an optional end date, so a single entry can describe a multi-day event window. Each date also has a **Visible to members** toggle, letting you stage dates privately and publish them when ready. See [Important dates](/setup/branding-and-config#important-dates).

  **Refund flow with optional status revert**
  The Record Refund dialog now includes a **Revert member status to approved** option (checked by default). Uncheck it when issuing partial refunds, goodwill credits, or any refund where you want the member to keep active status. See [Recording a refund](/admins/payments-and-dues#recording-a-refund).

  **Clearer refund recording experience**
  Refunds are now tied to a specific original payment, with the dropdown surfacing the remaining refundable balance per payment. Reasons are required, partial refunds are supported, and concurrent actions can no longer create double refunds. Recording refunds requires the **Finance** role. See [Recording a refund](/admins/payments-and-dues#recording-a-refund).

  **Logistics view for unsure travel dates**
  Admins can now go to **Admin → Logistics → Unsure Travel Dates** to see every active member missing arrival or departure dates — useful for chasing down information before shifts and headcounts are finalized. See [Finding members with unsure travel dates](/admins/managing-members#finding-members-with-unsure-travel-dates).

  **Members page refocused on confirmed members**
  The Members page now lists people with a role (`member`, `admin`, `super_admin`) and supports the `active`, `inactive`, and `rejected` statuses. Applicants and newly registered profiles are handled from the new Accounts page. See [Search, edit, and manage your camp members](/admins/managing-members).
</Update>
