Skip to main content

Subscribe to events in your calendar app

Admin Coordinator
Roles

Admin · Coordinator

iCal Feeds let your organization subscribe to external calendars — such as a DanceBug competition schedule or a Google Calendar — and automatically import those events into StandShare. When the external calendar is updated, StandShare syncs the changes at the interval you configure.

This is an inbound import feature. StandShare fetches the feed; it does not publish a calendar for others to subscribe to.


Access iCal Feed Management

  1. Sign in with a Coordinator or Admin account.
  2. Navigate to Admin > iCal Feeds from the sidebar.

Required permission: ical_feeds.manage (included in the Coordinator role).


Add a Feed

  1. Click + Add Feed.
  2. Fill in the feed details:
    • Feed Name — A descriptive label for the feed (e.g., "DanceBug Spring Season", "Away Game Schedule"). Maximum 255 characters.
    • Feed URL — The HTTPS URL to the external .ics calendar file. HTTP URLs are rejected. The URL is validated for SSRF safety when you save.
    • Sync Interval — How often StandShare checks the feed for changes:
      • Every 15 minutes
      • Every hour (default)
      • Every 6 hours
      • Daily
    • Default Venue — Optional. The venue applied to imported events when the external calendar's LOCATION field is blank. Leave empty to import as "TBD".
    • Enable fund distribution for imported events — Check this to enable fund distribution by default on all events imported from this feed.
  3. Click Save.

The feed is created with active status and StandShare schedules the first sync according to the interval you chose.

tip

If the external calendar is a Google Calendar, find the shareable iCal link under Settings > [calendar name] > Integrate calendar > Secret address in iCal format. Copy that HTTPS link and paste it as the Feed URL.


View Feeds

The iCal Feeds list shows all non-deleted feeds for your organization, with each feed's current status, last sync time, and next scheduled sync.

Use the status filter at the top of the list to narrow by: All, Active, Paused, or Error.

Click a feed's name to open its detail view, which shows full configuration, cumulative import counts, and the last 10 sync runs.


Edit a Feed

  1. Find the feed in the list and click Edit, or open the feed's detail view and click Edit.
  2. Update any fields: name, URL, sync interval, default venue, or fund distribution setting.
  3. Click Save Changes.

If you change the Feed URL, StandShare re-validates the new URL before saving. If you change the Sync Interval while the feed is active, the next sync time is recalculated immediately from the moment you save.


Pause a Feed

Pausing stops automatic syncs without deleting the feed or any events it has already imported.

  1. Find the feed in the list (it must be active).
  2. Click Pause.

The feed status changes to paused and the next scheduled sync is cleared. Use Resume to restart syncing.


Resume a Feed

You can resume any feed with a status of paused or error.

  1. Find the feed in the list.
  2. Click Resume.

The feed returns to active status and a new next-sync time is calculated based on the feed's configured interval.


Trigger a Manual Sync

Use "Sync Now" to import the latest events immediately, without waiting for the next scheduled sync. Required permission: ical_feeds.sync (included in Coordinator role).

  1. Find the feed in the list (it must not be deleted).
  2. Click Sync Now.

StandShare fetches the feed immediately and returns a result summary:

FieldDescription
Events foundTotal VEVENT entries parsed from the feed
Events createdNew events added to StandShare
Events updatedExisting events updated because the feed had a newer version
Events skippedEvents with no detectable changes
Events cancelledEvents marked CANCELLED in the feed (set to completed in StandShare)

View Sync History

The detail view for each feed shows the last 10 sync runs, including start time, completion time, result, and per-run event counts. An error or partial result also shows the error message.

  1. Click a feed's name to open the detail view.
  2. Scroll to the Sync History section.
note

Sync history shows runs in reverse chronological order. The full paginated history is available via the API (GET /ical-feeds/:id/history).


Delete a Feed

Deleting a feed is a soft delete — it stops all syncing and removes the feed from the list, but does not delete events that were already imported.

  1. Find the feed in the list.
  2. Click Delete.
  3. Confirm.

The feed is removed from the list and all future syncs are stopped. Previously imported events remain in your StandShare event calendar.

warning

A deleted feed cannot be restored. If you need to stop syncing temporarily, use Pause instead.


How Sync Works

StandShare matches events across syncs using the iCal UID field. On each sync:

  • New UID — a new event is created in StandShare.
  • Existing UID, newer SEQUENCE or LAST-MODIFIED — the existing event is updated.
  • Existing UID, CANCELLED status — the existing event is marked as completed.
  • Existing UID, no changes — the event is skipped.

Event name, date, venue, and notes are updated from the feed. Venue falls back to the feed's Default Venue if the iCal LOCATION field is absent.


Troubleshooting

Status: Error

If a feed shows error status, open the feed's detail view to see the error message from the last sync. Common causes:

ErrorResolution
Feed returned HTTP 4xx/5xxThe external calendar returned an error. Check that the URL is still valid and publicly accessible.
Feed response exceeds 5MB limitThe calendar file is too large. Contact the calendar provider to reduce its size, or consider importing only a subset of the calendar.
SSRF/DNS validation failedThe URL resolved to a private or reserved IP address. Only public HTTPS URLs are supported.
Network timeoutThe external server did not respond within 30 seconds. Click Sync Now to retry; if the problem persists, check the URL.

After resolving the underlying issue, click Resume to return the feed to active status.

Events not appearing after sync

  • Confirm the sync result shows eventsCreated > 0. If events were found but not created, check whether they already exist (they may have been skipped as unchanged).
  • Check whether the Default Venue is set if the external calendar does not include LOCATION on its events.
  • Verify that the iCal feed contains VEVENT entries with valid DTSTART fields.

Permissions Reference

PermissionRequired for
ical_feeds.manageAdd, edit, pause, resume, delete feeds
ical_feeds.syncTrigger a manual sync
ical_feeds.view_historyView sync history

All three permissions are included in the Coordinator role.


Next Steps