<!--
{
  "availability" : [
    "macOS: 10.0.0 - 10.6.0"
  ],
  "documentType" : "symbol",
  "framework" : "IOBluetooth",
  "identifier" : "/documentation/IOBluetooth/OBEXCreateVEvent",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "IOBluetooth"
    ],
    "preciseIdentifier" : "c:@F@OBEXCreateVEvent"
  },
  "title" : "OBEXCreateVEvent"
}
-->

# OBEXCreateVEvent

Creates a formatted vEvent, ready to be sent over OBEX or whatever. You probably will embed the output in a vCalendar event.

```
CFDataRefOBEXCreateVEvent(const char *inCharset, uint32_t inCharsetLength, const char *inEncoding, uint32_t inEncodingLength, const char *inEventStartDate, uint32_t inEventStartDateLength, const char *inEventEndDate, uint32_t inEventEndDateLength, const char *inAlarmDate, uint32_t inAlarmDateLength, const char *inCategory, uint32_t inCategoryLength, const char *inSummary, uint32_t inSummaryLength, const char *inLocation, uint32_t inLocationLength, const char *inXIRMCLUID, uint32_t inXIRMCLUIDLength);
```

## Parameters

`inCharset`

The Charset the passed data is in. Pass in a #defined charset for ease of use.

`inCharsetLength`

The length of the Charset passed data.

`inEncoding`

The encoding of the summary and location fields.

`inEventStartDate`

Start of event date, in the (ISO8601) format: YYYYMMDDTHHMMSS. e.g. 19960415T083000 = 8:30 am on April 15, 1996. All time values should be in LOCAL time.

`inEventEndDate`

End of event date.

`inAlarmDate`

Date of Alarm for event, in the format: YYYYMMDDTHHMMSS.

`inCategory`

Category of event, such as “MEETING” or “PHONE CALL”.

`inSummary`

Summary of event. Max length is 36 bytes. Longer will result in a bad argument error.

`inLocation`

Summary of event. Max length is 20 bytes. Longer will result in a bad argument error.

`inXIRMCLUID`

The IRMC Local Unique Identifier Label, max length 12 bytes. Longer will result in a bad argument error.

## Return Value

A valid CFDataRef - nil if we failed.

## Discussion

All parameters are optional. The CFDataRef returned to you is NOT retained. Retain it if you want to keep it. Be aware that certain devices such as Ericsson phones MUST have certain fields, such as a start and end date.

*** DEPRECATED IN BLUETOOTH 2.2 (OS X v10.6) *** You should transition your code to Objective-C equivalents. *** This API may be removed any time in the future.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)