Skip to content

Calendars by Readdle ​

Calendars by Readdle is a calendar and tasks app for Apple devices. Protocol Launcher allows you to generate Calendars URL scheme links to open the app, create events, parse event names, and create tasks.

Readdle documents two official schemes: calendarslite:// for Calendars and calendars:// for Calendars 5.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

Open Calendars ​

On-Demand
ts
import { open } from 'protocol-launcher/calendars-readdle'

const url = open()

const calendars5Url = open({
  scheme: 'calendars',
})

New Event ​

On-Demand
ts
import { newEvent } from 'protocol-launcher/calendars-readdle'

const url = newEvent()

const calendars5Url = newEvent({
  scheme: 'calendars',
})

Parse Event ​

Open the event creation dialog with a natural-language event name.

On-Demand
ts
import { parseEvent } from 'protocol-launcher/calendars-readdle'

const url = parseEvent({
  text: 'new event at 8 pm',
})

const calendars5Url = parseEvent({
  scheme: 'calendars',
  text: 'new event at 8 pm',
})

New Task ​

On-Demand
ts
import { newTask } from 'protocol-launcher/calendars-readdle'

const url = newTask()

const calendars5Url = newTask({
  scheme: 'calendars',
})

Generated URLs ​

ts
open()
// => 'calendarslite://open'

open({ scheme: 'calendars' })
// => 'calendars://open'

newEvent()
// => 'calendarslite://newevent'

newEvent({ scheme: 'calendars' })
// => 'calendars://newevent'

parseEvent({ text: 'new event at 8 pm' })
// => 'calendarslite://parse="new%20event%20at%208%20pm"'

parseEvent({ scheme: 'calendars', text: 'new event at 8 pm' })
// => 'calendars://parse="new%20event%20at%208%20pm"'

parseEvent()
// => 'calendarslite://parse'

newTask()
// => 'calendarslite://newtask'

newTask({ scheme: 'calendars' })
// => 'calendars://newtask'

Official Documentation ​