Skip to main content
Was this helpful?

Custom Integrations

PrimeCal provides several integration points for connecting to your own tools, business systems, or custom workflows:

  • REST API: read and write calendar data programmatically.
  • Personal API keys: authenticate securely without sharing your password.
  • Automation webhooks (outgoing): send event data to external systems when calendar events change.
  • Automation webhooks (incoming): trigger PrimeCal automation rules from external systems.

Personal API keys

To call the PrimeCal API, you need an API key. Keys are tied to your account and carry the same permissions as your user.

Generate an API key:

  1. Go to SettingsAPI Keys.
  2. Click Generate New Key.
  3. Give it a descriptive name (e.g., "My Homelab Script" or "CRM Integration").
  4. Copy and save the key — it's shown only once.
note

The api_access feature is required to generate API keys. This feature is available on plans that include it. Check SettingsSubscription to see your plan's features.

Making API requests

Use your API key in the Authorization header of every request:

curl \
-H "Authorization: Bearer YOUR_API_KEY" \
https://app.primecal.eu/api/events

This returns a JSON list of your events. The full API reference is in the Developer Guide, but common endpoints include:

EndpointMethodWhat it does
/api/eventsGETList events
/api/eventsPOSTCreate an event
/api/events/:idPATCHUpdate an event
/api/events/:idDELETEDelete an event
/api/calendarsGETList your calendars

Automation webhooks — outgoing

You can trigger an HTTP POST to any external URL when a PrimeCal event changes. This is how the Slack and Teams integrations work.

Set this up in AutomationNew Rule → add an action of type Send Webhook.

Use cases:

  • Notify a CRM when a client meeting is created.
  • Update a project management tool when a deadline event changes.
  • Post to a custom logging endpoint whenever events are modified.

Smart values let you include event data in the payload:

{
"event_title": "{{event.title}}",
"start": "{{event.start_date}} {{event.start_time}}",
"calendar": "{{calendar.name}}"
}

See Automation Webhooks for the full list of available smart values.

Automation webhooks — incoming

External systems can trigger PrimeCal automation rules by POSTing to a unique webhook URL. Each automation rule has its own secure token-based endpoint:

POST https://app.primecal.eu/api/automation/webhooks/{token}/receive
Content-Type: application/json

{
"event": "order.completed",
"data": {
"customer_name": "Jane Smith",
"appointment_date": "2026-07-15"
}
}

The token is unique per rule and is shown in the rule's detail view. You can regenerate it if needed.

Use cases:

  • An e-commerce system sends a webhook when an order is placed → PrimeCal creates a "Prepare order" event.
  • A form submission tool sends customer data → PrimeCal automation checks the data and colors the event accordingly.
  • A support ticket system triggers a rule → PrimeCal creates a follow-up reminder event.

Example: syncing with a custom business system

A small business uses a custom booking database. When a new client appointment is confirmed in the database, a script posts to PrimeCal's incoming webhook, which triggers an automation rule to create a "Client Appointment" event on the "Business" calendar.

import requests

webhook_url = "https://app.primecal.eu/api/automation/webhooks/YOUR_TOKEN/receive"
payload = {
"event": "appointment.confirmed",
"data": {
"client_name": "Jane Smith",
"service": "Consultation",
"datetime": "2026-07-15T10:00:00"
}
}
requests.post(webhook_url, json=payload)

Plan requirements

  • API keys: requires the api_access feature.
  • Automation webhooks (outgoing and incoming): requires the automation feature.
  • Both features are available on appropriate paid plans.