Logo StartupKit
EN

Calendar Feeds (ICS)

Subscribe to any calendar via ICS link without granting OAuth access. Works with Google Calendar, Outlook, Apple Calendar, and more.

Why It Matters

Not everyone wants to grant OAuth access to their calendar. Calendar feeds let you subscribe to any calendar by pasting a simple URL. No OAuth, no permissions dialog, no third-party app authorization.

This works with:

  • Google Calendar (personal or workspace)
  • Microsoft Outlook / Office 365
  • Apple Calendar (iCloud)
  • Any calendar app that offers an ICS/iCal export URL

Kit polls your calendar feed every 15 minutes and caches the busy windows it finds.

Conflict detection currently uses Google Calendar only. A calendar feed is stored against the whole account rather than against one person, so Kit can’t tell whose availability it should block. Until feeds carry an owner, the busy windows from a feed are cached and shown on the feed’s own page, but they do not remove slots from interview booking pages. To hide your busy times from candidates, connect Google Calendar and switch on Check for scheduling conflicts.

What You Need

  • A Kit account with scheduling enabled
  • A calendar app that offers a secret ICS/iCal URL (most do)

Adding a Calendar Feed

  1. Navigate to Integrations > Calendar Feeds
  2. Click Add Calendar Feed
  3. Paste your calendar’s ICS URL (must start with https://)
  4. Optionally set a display name (Kit auto-detects it from the feed)
  5. Click Add Calendar Feed

Kit validates the URL, fetches the feed, and begins caching its busy windows immediately.

Finding Your ICS URL

Google Calendar

  1. Open Google Calendar and click the gear icon (Settings)
  2. Click on the calendar name in the left sidebar
  3. Scroll to Secret address in iCal format
  4. Copy the URL

Important: Use the secret address, not the public one, unless your calendar is intentionally public. The secret URL includes a token that grants read access.

Microsoft Outlook / Office 365

  1. Open Outlook on the web and go to Settings > Calendar
  2. Click Shared calendars
  3. Under “Publish a calendar”, select the calendar you want
  4. Choose Can view all details and click Publish
  5. Copy the ICS link (not the HTML one)

Apple Calendar (iCloud)

  1. Open the Calendar app on your Mac
  2. Right-click the calendar you want to share
  3. Select Share Calendar…
  4. Check Public Calendar
  5. Copy the URL that appears

How It Works

Aspect Detail
Polling frequency Every 15 minutes
Data accessed Only event start/end times and busy/free status
Data stored Busy time windows only (no event content)
Time range Next 30 days
Recurring events Automatically expanded (daily, weekly, monthly)
All-day events Block the entire day

When a candidate views available interview slots, Kit subtracts your calendar’s busy times from your availability schedule, exactly the same way it works with Google Calendar.

Google Calendar Integration vs Calendar Feeds

Feature Google Calendar (OAuth) Calendar Feeds (ICS)
Conflict detection Yes, queried live when a candidate opens a booking page Not yet — busy windows are cached but don’t affect booking pages
Interview invites Emailed as .ics, plus a direct calendar entry for the lead interviewer if they switched on Allow creating events in this calendar Emailed as .ics only — Kit can never write to an ICS feed
Setup OAuth authorization Paste a URL
Works with Google Calendar only Any calendar provider
Privacy Requires calendar permissions URL-based, no account access
All-day events Supported Supported
Recurring events Handled by Google API Expanded from feed

Use Google Calendar if you want real-time conflict detection, or if you want booked interviews to land on the lead interviewer’s calendar without anyone accepting an attachment (see Calendar Integration). A calendar feed is read-only: Kit reads busy windows from it and can never write to it. Either way, interview invites are always emailed as .ics attachments as well.

Use Calendar Feeds if you prefer not to grant OAuth access, use a non-Google calendar, or want to add a secondary calendar from a different provider.

You can use both at the same time. Kit merges busy times from all connected sources.

Managing Calendar Feeds

Editing a Feed

Navigate to Integrations > Calendar Feeds, find your feed in the Calendar Feeds section, and click the pencil icon. You can change the display name and toggle conflict checking on or off.

Refreshing a Feed

Click the three-dot menu (⋮) next to a feed and select Refresh Now. Kit fetches the latest version immediately instead of waiting for the next 15-minute poll.

Removing a Feed

Click the three-dot menu (⋮) and select Remove Feed. Kit stops polling this calendar and discards the busy windows it cached. Your calendar itself is not affected.

Privacy and Security

Calendar feeds are designed with privacy in mind:

  • No event content stored – Kit reads event start/end times and busy/free status only. Event titles, descriptions, attendees, and locations are discarded immediately after parsing.
  • Encrypted storage – Your calendar URL is encrypted at rest. It’s never logged or exposed in API responses.
  • HTTPS only – Kit only accepts calendar URLs over HTTPS.
  • You control access – To revoke Kit’s access, regenerate your calendar’s secret URL in your calendar app (Google, Outlook, etc.). The old URL stops working immediately.

Revoking Access

Unlike OAuth (where you revoke from Kit or your Google account), calendar feed access is controlled by the URL itself:

  1. Go to your calendar app’s settings
  2. Find the published/shared calendar
  3. Click “Reset” or “Unpublish” to invalidate the old URL
  4. In Kit, remove the old feed and add the new URL if needed

Troubleshooting

Feed Not Updating

Possible causes:

  1. The calendar URL has been revoked or regenerated
  2. Your calendar provider is temporarily unavailable
  3. The feed is paused after repeated failures

Fix:

  • Check the feed status at Integrations > Calendar Feeds
  • Click Refresh Now to force an immediate update
  • If the URL was regenerated, remove the old feed and add the new URL

Events Missing from Conflict Check

Possible causes:

  1. The event is marked as “free” (transparent) in your calendar
  2. The event uses an unusual recurrence pattern Kit can’t expand
  3. The event is more than 30 days in the future

Fix:

  • Edit the event in your calendar and set the status to “busy”
  • For recurring events, check that they appear correctly in your calendar app first

Feed Shows “Error” or “Paused”

Kit pauses feeds after repeated fetch failures to avoid unnecessary requests.

  • Error (3+ failures): Kit is still trying. Check that your URL is valid.
  • Paused (extended failures): Kit has stopped polling. Remove the feed and re-add it with a fresh URL.

Quick Checklist

  • Navigate to Integrations > Calendar Feeds
  • Click Add Calendar Feed
  • Paste your calendar’s secret ICS URL
  • Verify the feed shows as “Active” after a few minutes
  • Open the feed and confirm its busy windows were fetched
  • Optionally add feeds for additional calendars (personal, team, etc.)

Type to search...