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:
- Go to Settings → API Keys.
- Click Generate New Key.
- Give it a descriptive name (e.g., "My Homelab Script" or "CRM Integration").
- Copy and save the key — it's shown only once.
The api_access feature is required to generate API keys. This feature is available on plans that include it. Check Settings → Subscription 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:
| Endpoint | Method | What it does |
|---|---|---|
/api/events | GET | List events |
/api/events | POST | Create an event |
/api/events/:id | PATCH | Update an event |
/api/events/:id | DELETE | Delete an event |
/api/calendars | GET | List 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 Automation → New 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_accessfeature. - Automation webhooks (outgoing and incoming): requires the
automationfeature. - Both features are available on appropriate paid plans.
Related topics
- Automation Webhooks — full incoming and outgoing webhook documentation
- Slack Integration — webhook-based Slack notifications
- Microsoft Teams Integration — webhook-based Teams notifications