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.
Hosted calendars require a Pro plan. View plans and upgrade.
Key Concepts
| Concept | Description |
|---|---|
feedToken | Unique identifier used in the ICS feed URL and as the basis for calendarEmail. Regenerating it invalidates existing CalDAV/ICS connections. |
calendarEmail | cal-{feedToken}@in.calendarpipe.com — used for invitation delivery. Events sent to this address are routed into the hosted calendar. |
organizerDisplayName | The 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"
}
}
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>
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
.icsfeed 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