Skip to main content

Hosted Calendars Overview

Hosted calendars live entirely within CalendarPipe. No OAuth provider, no external calendar service — CalendarPipe is the source of truth. This makes them ideal for bots, agents, and automated scheduling workflows.

Pro Feature

Hosted calendars require a Pro plan. View plans and upgrade.

Key Concepts

ConceptDescription
feedTokenUnique identifier used in the ICS feed URL and as the basis for calendarEmail. Regenerating it invalidates existing CalDAV/ICS connections.
calendarEmailcal-{feedToken}@in.calendarpipe.com — used for invitation delivery. Events sent to this address are routed into the hosted calendar.
organizerDisplayNameThe name shown as the event organizer on invitations. Set this to something human-readable when creating agent calendars.

Create a Hosted Calendar

Screenshot: Create hosted calendar form

POST /api/v1/hosted-calendars
Authorization: Bearer <api_key>
Content-Type: application/json

{
"name": "My Agent Calendar",
"timezone": "America/New_York",
"organizerDisplayName": "Scheduling Bot"
}

Response (201):

{
"data": {
"id": "5e6ea455-...",
"name": "My Agent Calendar",
"feedToken": "abc123...",
"calendarEmail": "cal-abc123...@in.calendarpipe.com",
"timezone": "America/New_York",
"organizerDisplayName": "Scheduling Bot",
"createdAt": "2026-03-10T00:00:00Z",
"updatedAt": "2026-03-10T00:00:00Z"
}
}
tip

Always set organizerDisplayName when creating agent calendars so invitations are human-readable for recipients.

List Your Calendars

Screenshot: Hosted calendars list view

GET /api/v1/hosted-calendars
Authorization: Bearer <api_key>

Response (200):

{
"data": [
{
"id": "5e6ea455-...",
"name": "My Agent Calendar",
"feedToken": "abc123...",
"calendarEmail": "cal-abc123...@in.calendarpipe.com",
"timezone": "America/New_York",
"organizerDisplayName": "Scheduling Bot",
"createdAt": "2026-03-10T00:00:00Z",
"updatedAt": "2026-03-10T00:00:00Z"
}
]
}

Update a Calendar

Update any subset of name, timezone, or organizerDisplayName:

PATCH /api/v1/hosted-calendars/{id}
Authorization: Bearer <api_key>
Content-Type: application/json

{
"name": "Renamed Calendar",
"organizerDisplayName": "New Bot Name"
}

Response (200): Returns the updated calendar object.

Delete a Calendar

DELETE /api/v1/hosted-calendars/{id}
Authorization: Bearer <api_key>

Response (204): No content. The calendar and all its events are permanently deleted.

Regenerate Feed Token

POST /api/v1/hosted-calendars/{id}/regenerate-token
Authorization: Bearer <api_key>
Breaking Change

Regenerating the feed token changes the feedToken, calendarEmail, and ICS feed URL for this calendar. All existing CalDAV connections and ICS subscriptions will stop working. Subscribers must reconnect using the new credentials.

Use this endpoint only if the feed token has been compromised or you need to revoke access from existing subscribers.

Access Your Calendar

Once created, you can access your hosted calendar through:

  • CalDAV Setup — Connect to Apple Calendar, Thunderbird, or any CalDAV-compatible app for read/write access
  • ICS Feed — Subscribe to a read-only .ics feed URL in any calendar app

Next Steps

  • CalDAV Setup — Connect to your favorite calendar app
  • ICS Feed — Subscribe with a read-only feed URL
  • Invitations — Send and respond to calendar invitations programmatically