---
title: Events (Gancio)
description: Self-hosted event management with automatic shift-to-event sync powered by Gancio.
icon: material/calendar-star
tags:
  - guide
  - user
  - events
---

# Events (Gancio)

Integrated with [Gancio](https://gancio.org/) for self-hosted event management. When enabled, volunteer shifts are automatically published as public events. See [Integrations](../admin/services/integrations.md) for admin setup.

!!! tip "Looking for ticketed events?"
    If you're running events with paid, free, or donation-based tickets and need QR check-in, see [Ticketed Events](../admin/events/ticketed-events.md) — that's a separate module from the Gancio calendar.

---

## Shift-to-Event Sync

When `GANCIO_SYNC_ENABLED=true`, the platform:

1. **Creates** a Gancio event whenever a new shift is published
2. **Updates** the event if the shift time, location, or details change
3. **Deletes** the event if the shift is cancelled

Sync uses OAuth authentication with the Gancio admin account.

---

## Key Features

- **Automatic sync** — shifts appear as public events without manual entry
- **Embeddable calendar** — GrapesJS block and MkDocs widget for embedding the event calendar on pages
- **Public events page** — linked from the public navigation when `enableEvents` is enabled in settings

---

## Admin Routes

- `/app/gancio` — Gancio service status and iframe embed

## Public Routes

- `/events` — public events navigation link (when enabled)
- `events.DOMAIN` — Gancio web interface for browsing and RSVPs
