{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fulcradynamics-com/json-schema/fulcradynamics-com-fulcra-calendar-event-schema.json",
  "title": "FulcraCalendarEvent",
  "description": "Represents an event on a user's calendar.\n\nThe fields in this schema are not intended to be exhaustive, as the\nsources that feed this response may include a wide variety of calendar\nschemas.  The `extras` property should be used to store any other fields.",
  "x-generated": "2026-11-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fulcradynamics-com-openapi.json#/components/schemas/FulcraCalendarEvent",
  "properties": {
    "allow_new_time_proposals": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if attendees may propose a new time when responding",
      "title": "Allow New Time Proposals"
    },
    "availability": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "A string that indicates the event's availability status the calendar.",
      "title": "Availability"
    },
    "calendar_event_id": {
      "description": "Calendar Event ID",
      "format": "uuid",
      "title": "Calendar Event Id",
      "type": "string"
    },
    "calendar_id": {
      "description": "Calendar ID",
      "format": "uuid",
      "title": "Calendar Id",
      "type": "string"
    },
    "calendar_item_external_identifier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The external identifier for this calendar event, as provided by an external calendar server.",
      "title": "Calendar Item External Identifier"
    },
    "calendar_item_identifier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The identifier for this calendar item, as sent by the device.  May be different from event_identifier.",
      "title": "Calendar Item Identifier"
    },
    "creation_date": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The date when this event was created.",
      "title": "Creation Date"
    },
    "end_date": {
      "description": "the date/time when this event ends.",
      "format": "date-time",
      "title": "End Date",
      "type": "string"
    },
    "event_identifier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The identifier for this event, as sent by the device.  May be different from calendar_item_identifier.",
      "title": "Event Identifier"
    },
    "extras": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "Extra values that are not (yet) accounted for in the schema.",
      "title": "Extras"
    },
    "geolocation": {
      "anyOf": [
        {
          "$ref": "#/$defs/GeofenceLocation"
        },
        {
          "type": "null"
        }
      ],
      "description": "The structured location (coordinates) of the event."
    },
    "has_alarms": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if the device indicates that the event has alarms.",
      "title": "Has Alarms"
    },
    "has_attendees": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if the device indicates that the event has attendees.",
      "title": "Has Attendees"
    },
    "has_notes": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if the device indicates that the event has notes.",
      "title": "Has Notes"
    },
    "has_recurrence_rules": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if the device indicates that the event recurs.",
      "title": "Has Recurrence Rules"
    },
    "is_all_day": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if the event is all day.",
      "title": "Is All Day"
    },
    "is_detached": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if the event is 'detached' from a recurring event.",
      "title": "Is Detached"
    },
    "last_modified_date": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The date/time when this event was last modified.",
      "title": "Last Modified Date"
    },
    "location": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The string description of the location of the event.",
      "title": "Location"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The notes associated with the event.",
      "title": "Notes"
    },
    "occurrence_date": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The date of this specific instance of a recurring event.",
      "title": "Occurrence Date"
    },
    "organizer": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "$ref": "#/$defs/FulcraCalendarEventParticipant"
        },
        {
          "type": "null"
        }
      ],
      "description": "The organizer of the event.",
      "title": "Organizer"
    },
    "participants": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/FulcraCalendarEventParticipant"
          },
          "type": "array"
        },
        {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "The participants of the event.",
      "title": "Participants"
    },
    "recurrence_rules": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/FulcraCalendarRecurrenceRule"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "The rules that describe the cadence of a recurring event.",
      "title": "Recurrence Rules"
    },
    "start_date": {
      "description": "the date/time when this event starts.",
      "format": "date-time",
      "title": "Start Date",
      "type": "string"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The device-platform-specific text that describes the status (e.g. 'cancelled', 'confirmed') of an event",
      "title": "Status"
    },
    "time_zone": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The text describing the time zone of the event.",
      "title": "Time Zone"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The title of the event.",
      "title": "Title"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The URL of the calendar item associated with this event.",
      "title": "Url"
    }
  },
  "required": [
    "calendar_event_id",
    "calendar_id",
    "start_date",
    "end_date",
    "allow_new_time_proposals",
    "availability",
    "calendar_item_external_identifier",
    "calendar_item_identifier",
    "event_identifier",
    "creation_date",
    "has_alarms",
    "has_attendees",
    "has_notes",
    "has_recurrence_rules",
    "is_all_day",
    "is_detached",
    "last_modified_date",
    "location",
    "notes",
    "occurrence_date",
    "organizer",
    "recurrence_rules",
    "status",
    "geolocation",
    "time_zone",
    "title",
    "url",
    "extras",
    "participants"
  ],
  "type": "object",
  "$defs": {
    "FulcraCalendarEventParticipant": {
      "description": "Represents an entity -- person, room, building, group, chatbot, etc. --\nthat is invited to a calendar event.",
      "properties": {
        "contact_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "If this participant is known as a contact for this Fulcra user, this is the ID.",
          "title": "Contact Id"
        },
        "is_current_user": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "True if the participant is the user of the device that sent the information about the event.",
          "title": "Is Current User"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The name of the participant.",
          "title": "Name"
        },
        "participant_role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Describes the participant's role in the event.",
          "title": "Participant Role"
        },
        "participant_status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Describes the participation status (e.g. 'attending') of the participant.",
          "title": "Participant Status"
        },
        "participant_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Describes the type of participant (e.g. 'person', 'room').",
          "title": "Participant Type"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "A URL identifying this participant.",
          "title": "Url"
        }
      },
      "required": [
        "is_current_user",
        "participant_role",
        "participant_type",
        "participant_status",
        "url",
        "contact_id",
        "name"
      ],
      "title": "FulcraCalendarEventParticipant",
      "type": "object"
    },
    "FulcraCalendarRecurrenceRule": {
      "description": "A rule that describes the rule(s) underlying the frequency of a\nrecurring calendar event.",
      "properties": {
        "calendar_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Calendar ID",
          "title": "Calendar Id"
        },
        "days_of_the_month": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "A list of the days of the month on which this event occurs.",
          "title": "Days Of The Month"
        },
        "days_of_the_week": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "A list of the days of the week on which this event occurs.",
          "title": "Days Of The Week"
        },
        "days_of_the_year": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "A list of the days of the year on which this event occurs.",
          "title": "Days Of The Year"
        },
        "first_day_of_the_week": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "A value indicating which day of the week is considered to be the beginning of the week.  1 is Sunday, 7 is Saturday.",
          "title": "First Day Of The Week"
        },
        "frequency": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The description of the frequency for a recurring event (e.g. 'weekly')",
          "title": "Frequency"
        },
        "interval": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Using the value of `frequency` as the unit, the number of units that occur between events.",
          "title": "Interval"
        },
        "months_of_the_year": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "A list of the months of the year on which this event occurs.",
          "title": "Months Of The Year"
        },
        "recurrence_rule_id": {
          "description": "Recurrence rule ID",
          "format": "uuid",
          "title": "Recurrence Rule Id",
          "type": "string"
        },
        "set_positions": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "A list of numbers that indicate which recurrences are included in this rule's frequency.",
          "title": "Set Positions"
        },
        "weeks_of_the_year": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "A list of the weeks of the year on which this event occurs.",
          "title": "Weeks Of The Year"
        }
      },
      "required": [
        "recurrence_rule_id",
        "calendar_id",
        "frequency",
        "interval",
        "first_day_of_the_week",
        "days_of_the_week",
        "days_of_the_month",
        "days_of_the_year",
        "weeks_of_the_year",
        "months_of_the_year",
        "set_positions"
      ],
      "title": "FulcraCalendarRecurrenceRule",
      "type": "object"
    },
    "GeofenceLocation": {
      "description": "Represents a geofence: in other words, a specific location in the real world\nwith a defined area and boundary.  These are often used to define rules for\ntriggering events and/or notifications.",
      "properties": {
        "altitude": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "The altitude above sea level associated with the area (m)",
          "title": "Altitude"
        },
        "ellipsoidal_altitude": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "The altitude as height above the WGS 84 ellipsoid (m)",
          "title": "Ellipsoidal Altitude"
        },
        "floor": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "The floor of the building.Note: Reference points (e.g. 'first floor' may differ by locale.",
          "title": "Floor"
        },
        "horizontal_accuracy": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "The horizontal accuracy for the location (m)",
          "title": "Horizontal Accuracy"
        },
        "is_produced_by_accessory": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "True if the device that gathered this location received the value from an external accessory.",
          "title": "Is Produced By Accessory"
        },
        "is_simulated_by_software": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "True if the device indicates that the location was simulated by software.",
          "title": "Is Simulated By Software"
        },
        "latitude": {
          "description": "The latitude of the center of the area (deg)",
          "title": "Latitude",
          "type": "number"
        },
        "location_timestamp": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The time at which this location was calculated.",
          "title": "Location Timestamp"
        },
        "longitude": {
          "description": "The longitude of the center of the area (deg)",
          "title": "Longitude",
          "type": "number"
        },
        "radius": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "The radius of the location area (m)",
          "title": "Radius"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The geofence location's title.",
          "title": "Title"
        },
        "vertical_accuracy": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "description": "The vertical accuracy for the location (m)",
          "title": "Vertical Accuracy"
        }
      },
      "required": [
        "title",
        "latitude",
        "longitude",
        "altitude",
        "ellipsoidal_altitude",
        "floor",
        "location_timestamp",
        "is_produced_by_accessory",
        "is_simulated_by_software",
        "horizontal_accuracy",
        "vertical_accuracy",
        "radius"
      ],
      "title": "GeofenceLocation",
      "type": "object"
    }
  }
}