MEG CalendarShared event source

Settings

10 events in the database, 10 from an import · 2 connected websites

Connected websites

Each website gets its own sync token. Published events are served to every enabled website; drafts are never sent.

  • Garden TerraceSyncing

    https://garden.example.com · never pulled yet

  • MirageSyncing

    https://mirage.example.com · last pulled 26/08/2026, 07:54:27 · 9 pulls

Connect another website

How a website reads the calendar

Two endpoints, both authenticated with that website's token — as a Bearer header or a token query parameter.

GET https://kalender.cloud.brutal.ai/api/calendar?from=2026-09-01&to=2026-09-30
  Authorization: Bearer <token>
  → { occurrences: [{ date, title, startTime, venue, … }] }

GET https://kalender.cloud.brutal.ai/api/feed.ics?token=<token>
  → a subscribable .ics feed

Recurring events are expanded server-side, so a website receives one entry per real date and never has to understand repeat rules.

Import an existing calendar

Paste .ics text, upload a file, or pull a feed URL. Weekly repeat rules are kept as weekly schedules; other repeat rules become one-off dates. Re-importing the same feed updates the events it created rather than duplicating them.