Cronofy

Cronofy is a scheduling and calendar API platform that provides a unified interface to Google Calendar, Microsoft 365 / Outlook, Exchange, and Apple iCloud. Its REST API powers two-way calendar sync, real-time availability and scheduling, smart invites, scheduling links, and push notifications for software teams embedding scheduling into their products.

6 APIs 0 Features
SchedulingCalendarAvailabilityBookingProductivity

APIs

Cronofy Calendars API

List a user's connected calendars across Google, Microsoft 365 / Outlook, Exchange, and Apple iCloud, create application calendars, and read account profile and userinfo identit...

Cronofy Events API

Read events and free/busy information across all of a user's calendars, and create, update, or delete events within a managed calendar with two-way sync.

Cronofy Availability API

Query common availability for people and resources, run sequenced availability across multiple events, and generate hosted Real-Time Scheduling and Real-Time Sequencing pages ba...

Cronofy Smart Invites API

Send users calendar invites and track their interactions (accept, decline, tentative) without requiring any calendar authorization, with create, update, cancel, and status retri...

Cronofy Scheduling Links API

Generate shareable Real-Time Scheduling URLs where invitees pick a preferred time from live availability, with the resulting event written into the host's calendar automatically.

Cronofy Push Notifications API

Create, list, and close notification channels that deliver real-time push notifications to a callback URL whenever changes occur in a user's connected calendars.

Collections

Pricing Plans

Cronofy Plans Pricing

4 plans

PLANS

Rate Limits

Cronofy Rate Limits

2 limits

RATE LIMITS

FinOps

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Cronofy API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Calendars
    type: folder
  items:
  - info:
      name: Account identity
      type: http
    http:
      method: GET
      url: https://api.cronofy.com/v1/userinfo
    docs: Returns identity and profile information for the authenticated account.
  - info:
      name: List calendars
      type: http
    http:
      method: GET
      url: https://api.cronofy.com/v1/calendars
    docs: Returns the list of calendars the authenticated user has connected.
  - info:
      name: Create calendar
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/calendars
      body:
        type: json
        data: "{\n  \"profile_id\": \"{{profileId}}\",\n  \"name\": \"My Calendar\"\n}"
    docs: Creates a new calendar within a connected calendar profile.
- info:
    name: Events
    type: folder
  items:
  - info:
      name: Read events
      type: http
    http:
      method: GET
      url: https://api.cronofy.com/v1/events?tzid=Etc/UTC
    docs: Returns a paged list of events across all of a user's connected calendars.
  - info:
      name: Free/busy
      type: http
    http:
      method: GET
      url: https://api.cronofy.com/v1/free_busy?tzid=Etc/UTC
    docs: Returns free/busy information across all of a user's connected calendars.
  - info:
      name: Create or update event
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/calendars/{{calendarId}}/events
      body:
        type: json
        data: "{\n  \"event_id\": \"event-001\",\n  \"summary\": \"Meeting\",\n  \"start\": \"2026-07-01T09:00:00Z\",\n  \"\
          end\": \"2026-07-01T09:30:00Z\"\n}"
    docs: Creates or updates an event within the specified calendar.
  - info:
      name: Delete event
      type: http
    http:
      method: DELETE
      url: https://api.cronofy.com/v1/calendars/{{calendarId}}/events
      body:
        type: json
        data: "{\n  \"event_id\": \"event-001\"\n}"
    docs: Deletes an event, identified by event_id, from the specified calendar.
- info:
    name: Availability
    type: folder
  items:
  - info:
      name: Availability query
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/availability
      body:
        type: json
        data: "{\n  \"participants\": [],\n  \"required_duration\": { \"minutes\": 30 },\n  \"available_periods\": []\n}"
    docs: Determines common available times for participants and resources.
  - info:
      name: Sequenced availability query
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/sequenced_availability
      body:
        type: json
        data: '{}'
    docs: Determines available times for a sequence of dependent events.
  - info:
      name: Real-time scheduling
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/real_time_scheduling
      body:
        type: json
        data: '{}'
    docs: Returns a URL to a hosted scheduling page backed by live availability.
  - info:
      name: Real-time sequencing
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/real_time_sequencing
      body:
        type: json
        data: '{}'
    docs: Returns a URL to a hosted page for selecting times across a sequence of events.
- info:
    name: Smart Invites
    type: folder
  items:
  - info:
      name: Create or update smart invite
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/smart_invites
      body:
        type: json
        data: "{\n  \"smart_invite_id\": \"invite-001\",\n  \"callback_url\": \"https://example.com/callback\",\n  \"recipient\"\
          : { \"email\": \"person@example.com\" },\n  \"event\": {\n    \"summary\": \"Meeting\",\n    \"start\": \"2026-07-01T09:00:00Z\"\
          ,\n    \"end\": \"2026-07-01T09:30:00Z\"\n  }\n}"
    docs: Creates or updates a Smart Invite for a recipient without calendar authorization.
  - info:
      name: Get smart invite
      type: http
    http:
      method: GET
      url: https://api.cronofy.com/v1/smart_invites?smart_invite_id=invite-001
    docs: Retrieves the current state of a Smart Invite, including recipient RSVP status.
- info:
    name: Push Notifications
    type: folder
  items:
  - info:
      name: Create notification channel
      type: http
    http:
      method: POST
      url: https://api.cronofy.com/v1/channels
      body:
        type: json
        data: "{\n  \"callback_url\": \"https://example.com/notifications\"\n}"
    docs: Creates a push notification channel that POSTs to callback_url on changes.
  - info:
      name: List notification channels
      type: http
    http:
      method: GET
      url: https://api.cronofy.com/v1/channels
    docs: Returns all of the authenticated user's open notification channels.
  - info:
      name: Close notification channel
      type: http
    http:
      method: DELETE
      url: https://api.cronofy.com/v1/channels/{{channelId}}
    docs: Closes an existing push notification channel.