Creates a calendar event. Exactly one participant must be flagged as is_organizer and exactly one as is_creator, and each participant must have a unique user_id. Requires SITE_CALENDAR:WRITE.
Event type identifier as returned by GET /calendar/events/types (the id field). Determines the behavior and the available form fields for the event.
Event start, UTC datetime in strict format YYYY-MM-DDTHH:MM:SSZ (the trailing Z is required).
Event end, UTC datetime in strict format YYYY-MM-DDTHH:MM:SSZ (the trailing Z is required). Must be after starts_at.
When true, the event spans the whole day(s) and the time portion of starts_at/ends_at is ignored by calendar displays.
Free-text title shown on the event. Falls back to the event type label when null.
Geographic coordinates of the event location. When provided, both lat and lng are required.
Duration of a single appointment slot in minutes, used when the event type allows online booking with successive time slots (e.g. open-house sequences).
Maximum number of attendees that can book the same slot (capacity). Used for group/open-house style appointments.
Estimated travel time to the location, in minutes, reserved before the event for the agent's commute.
Whether the event location may be shared with the attendees/contacts.
When true, event details are hidden from users who are not participants; the slot still appears as busy.
Lead time of the reminder before the event start, in minutes (e.g. 15 = remind 15 minutes before). 0 disables the offset.
How the appointment is conducted:
OFFICE: at the agency officePHONE: by phonePRODUCT: on-site at the propertyVISIO: video conference
Users (agents) attending the event. Exactly one must have is_organizer: true and exactly one is_creator: true, and every user_id must be unique.
Immofacile product (property listing) IDs linked to the event. Each ID must be within the client update scope.
ID of the parent event when this event is an occurrence/child of a recurring series.
iCalendar RRULE-style recurrence definition. When present, dtstart, freq and interval are required. The by* arrays follow the RFC 5545 recurrence semantics.
- Mock serverhttps://api-doc.immo-facile.com/_mock/openapi/calendar/events
- https://v2.immo-facile.com/api/v2/sitehttps://v2.immo-facile.com/api/v2/site/calendar/events
curl -i -X POST \
https://api-doc.immo-facile.com/_mock/openapi/calendar/events \
-H 'Authorization: Bearer <YOUR_opaque_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"type": "\"7\" = visit",
"starts_at": "2026-01-15T09:00:00Z",
"ends_at": "2026-01-15T10:00:00Z",
"all_day": true,
"title": "string",
"location": "string",
"location_geo": {
"lat": 48.8566,
"lng": 2.3522
},
"sequence_duration": 0,
"gathering_gauge": 0,
"commute_duration": 0,
"communicate_location": true,
"is_confidential": true,
"remind_time_in_min": 0,
"appointment_mode": "OFFICE",
"participants": [
{
"user_id": 0,
"is_creator": true,
"is_organizer": true
}
],
"products": [
0
],
"contacts": [
0
],
"notes": "string",
"visio_url": "string",
"immo360_organizer_url": "string",
"immo360_participation_url": "string",
"archived": true,
"parent_id": 0,
"recurrence": {
"dtstart": "2026-01-15T09:00:00Z",
"freq": "yearly",
"interval": 1,
"count": 1,
"until": "2026-12-31T23:59:59Z",
"bymonth": [
1
],
"bymonthday": [
-31
],
"bynmonthday": [
0
],
"byyearday": [
-366
],
"byweekno": [
-53
],
"byweekday": [
"MO"
],
"bynweekday": [
[
0
]
],
"bysetpos": [
0
],
"exdate": [
"2026-02-15T09:00:00Z"
]
}
}'{ "data": { "id": 0, "type": "VISIT", "starts_at": "2026-01-15T09:00:00Z", "ends_at": "2026-01-15T10:00:00Z", "all_day": true, "title": "string", "location": "string", "location_geo": { … }, "sequence_duration": 0, "gathering_gauge": 0, "commute_duration": 0, "communicate_location": true, "is_confidential": true, "remind_time_in_min": 0, "appointment_mode": "OFFICE", "participants": [ … ], "products": [ … ], "contacts": [ … ], "notes": "string", "visio_url": "string", "immo360_organizer_url": "string", "immo360_participation_url": "string", "archived": true, "parent_id": 0, "recurrence": {} } }