Subscribing to Feeds
This guide walks you through adding Cornerstone's calendar and contact feeds to popular apps. The process is similar across most apps -- you provide a subscription URL and the app handles the rest.
Your Feed URLs
Replace <your-cornerstone-host> with the address of your Cornerstone instance (e.g., 192.168.1.50:3000 or cornerstone.example.com):
| Feed | URL |
|---|---|
| Calendar | http://<your-cornerstone-host>/feeds/cal.ics |
| Contacts | http://<your-cornerstone-host>/feeds/contacts.vcf |
If your Cornerstone instance uses HTTPS behind a reverse proxy, use https:// in the URL.
Calendar Feed
Apple Calendar (macOS / iOS)
On macOS:
- Open Calendar
- Go to File > New Calendar Subscription...
- Enter your calendar feed URL:
http://<your-cornerstone-host>/feeds/cal.ics - Click Subscribe
- Set a name (e.g., "Cornerstone") and choose a refresh interval -- Every hour or Every day works well
- Click OK
On iOS:
- Open Settings > Calendar > Accounts
- Tap Add Account > Other > Add Subscribed Calendar
- Enter your calendar feed URL
- Tap Next, adjust the name and refresh interval, then tap Save
Google Calendar
- Open Google Calendar in a web browser (this cannot be done from the mobile app)
- In the left sidebar, click the + next to Other calendars
- Select From URL
- Paste your calendar feed URL:
http://<your-cornerstone-host>/feeds/cal.ics - Click Add calendar
Google Calendar refreshes subscribed calendars on its own schedule (typically every 12-24 hours). There is no way to force a faster refresh interval.
Microsoft Outlook
Outlook Desktop (Windows / macOS):
- Go to the Calendar view
- Click Add Calendar > From Internet (or Subscribe from web in newer versions)
- Paste your calendar feed URL
- Click OK and give the calendar a name
Outlook Web (outlook.com / Microsoft 365):
- In the calendar view, click Add calendar in the left sidebar
- Select Subscribe from web
- Paste your calendar feed URL
- Set a name and color, then click Import
Thunderbird
- In the Calendar tab, right-click in the calendar list
- Select New Calendar...
- Choose On the Network, then click Next
- Select iCalendar (ICS) as the format
- Enter your calendar feed URL in the Location field
- Click Next, set a name, and click Finish
Contacts Feed
Apple Contacts (macOS / iOS)
On macOS:
- Open Contacts
- Go to Contacts > Accounts... (or Settings > Accounts on macOS Ventura and later)
- Click + to add a new account
- Select Other Contacts Account...
- Choose CardDAV and enter your Cornerstone URL in the server field, or use the Manual option and enter the full feed URL:
http://<your-cornerstone-host>/feeds/contacts.vcf
Apple Contacts expects a CardDAV server for subscribed contacts. Depending on your version, you may need to import the .vcf file manually instead of subscribing. Open the feed URL in Safari to download the file, then import it via File > Import.
On iOS:
- Open Settings > Contacts > Accounts
- Tap Add Account > Other > Add CardDAV Account
- Enter your Cornerstone host as the server
Manual Import (Any App)
If your contacts app does not support feed subscriptions, you can import the contacts file manually:
- Open
http://<your-cornerstone-host>/feeds/contacts.vcfin your browser -- it will download a.vcffile - Open the file with your contacts app, or use the app's Import function to load it
- Repeat this process whenever you want to refresh your vendor contacts
Bookmark the contacts feed URL in your browser so you can quickly re-download it when vendor information changes.
Refresh Behavior
Calendar and contacts apps periodically re-fetch subscribed feeds to pick up changes. The refresh interval varies by app:
| App | Typical Refresh |
|---|---|
| Apple Calendar / Contacts | Configurable: every 5 min, 15 min, 1 hour, or 1 day |
| Google Calendar | Every 12-24 hours (not configurable) |
| Outlook | Every 3 hours (configurable in some versions) |
| Thunderbird | Configurable per calendar |
Cornerstone uses ETags for caching -- when your app re-fetches a feed and nothing has changed, the server responds instantly with a 304 Not Modified status instead of re-sending all the data. This keeps bandwidth usage minimal even with frequent refresh intervals.
Troubleshooting
Calendar or contacts are empty
- Verify that your Cornerstone instance has data -- work items with dates for the calendar feed, or vendors for the contacts feed
- Check that the feed URL is correct and accessible from the device where your app is running
- Try opening the feed URL directly in a browser to confirm it returns data
Calendar app shows an error when subscribing
- Ensure you are using
http://orhttps://in the URL (not just the hostname) - If Cornerstone is behind a reverse proxy, make sure the proxy forwards requests to
/feeds/correctly - Check that your device can reach the Cornerstone host on the network
Events show wrong dates
The calendar feed uses actual dates where available (actual start, actual end) and falls back to planned dates if actual dates are not set. If you see unexpected dates, check the work item's date fields in Cornerstone.
Changes are not showing up
Calendar apps do not refresh instantly. Wait for the next refresh cycle (see the table above) or manually trigger a refresh in your app. In Apple Calendar, you can pull down to refresh on iOS or press Cmd+R on macOS.