---
title: "Calendar links"
description: "Secret links that publish your calendar to Google Calendar, Outlook or Apple Calendar."
url: "https://openemail.uk/docs/api/calendar/feeds"
area: "API"
category: "Mailbox"
---

# Calendar links

Secret links that publish your calendar to Google Calendar, Outlook or Apple Calendar.

`POST /calendar/feeds`

**Also documents:** `GET /calendar/feeds`, `POST /calendar/feeds/{id}/reset`, `DELETE /calendar/feeds/{id}`

## POST /calendar/feeds

Secret links that publish your calendar to Google Calendar, Outlook or Apple Calendar.

## Create a link

Needs `calendar:write`. `mode` is `full` for every detail or `busy` for busy times only, and `name` is what calendar apps show for the calendar.

**curl**

```
curl -X POST "$OE/calendar/feeds" -H "$AUTH" -H 'content-type: application/json' -d '{ "name": "Work (busy)", "mode": "busy" }'
```

**Response**

```
{
  "object": "calendar_feed",
  "id": "cfd_3f9a1c7e5b2d48a06c1e9f4b",
  "name": "Work (busy)",
  "mode": "busy",
  "url": "https://api.openemail.uk/ical/kX4p9Qm2vT7bN1cR8zW3yL6hJ5dF0sGa.ics",
  "webcalUrl": "webcal://api.openemail.uk/ical/kX4p9Qm2vT7bN1cR8zW3yL6hJ5dF0sGa.ics",
  "readCount": 0,
  "lastReadAt": null,
  "createdAt": "2026-10-10T12:00:00.000Z"
}
```

> `GET /calendar/feeds` lists your links, `POST /calendar/feeds/{id}/reset` gives one a new address so the old one stops working, and `DELETE /calendar/feeds/{id}` turns one off for good.

> Anyone with `url` or `webcalUrl` can read what the link shows, without a key. A key limited to some addresses or domains is a 422 `capability_unsupported`, because a link covers the whole calendar. One person may keep 10 links, and one more is a 409 `calendar_feed_limit`.

## Reference

- [`POST /calendar/feeds`](https://openemail.uk/docs/api/reference/calendar#post-calendar-feeds): full reference
- [`GET /calendar/feeds`](https://openemail.uk/docs/api/reference/calendar#get-calendar-feeds): full reference
- [`POST /calendar/feeds/{id}/reset`](https://openemail.uk/docs/api/reference/calendar#post-calendar-feeds-id-reset): full reference
- [`DELETE /calendar/feeds/{id}`](https://openemail.uk/docs/api/reference/calendar#delete-calendar-feeds-id): full reference
