<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreFoundation",
  "identifier" : "/documentation/CoreFoundation/CFCalendarComposeAbsoluteTime",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "Core Foundation"
    ],
    "preciseIdentifier" : "c:@F@CFCalendarComposeAbsoluteTime"
  },
  "title" : "CFCalendarComposeAbsoluteTime"
}
-->

# CFCalendarComposeAbsoluteTime

Computes the absolute time from components in a description string.

```
extern Boolean CFCalendarComposeAbsoluteTime(CFCalendarRef calendar, CFAbsoluteTime *at, const char *componentDesc, ...);
```

## Parameters

`calendar`

The calendar to use for the computation.

`at`

Upon return, contains the computed absolute time.

`componentDesc`

A string that describes the components provided in the varidaic parameters giving the amounts of each calendrical component in the order specified by `componentDesc`. The amounts to add may be negative, zero, positive, or any combination thereof.

## Return Value

`TRUE`—and in `at` the absolute time computed from the given components—if the `componentDesc` description string can be converted into an absolute time, otherwise `FALSE`. Also returns `FALSE` for out-of-range values.

## Discussion

When there are insufficient components provided to completely specify an absolute time, a calendar uses default values of its choice. When there is inconsistent information, a calendar may ignore some of the parameters or the function may return `FALSE`. Unnecessary components are ignored (for example, Day takes precedence over Weekday + Weekday ordinal). Note that some computations can take a relatively long time to perform.

The following example shows how to use this function to initialize an absolute time, `at`, to 6 January 1965 14:10:00, for a given calendar `gregorian` .

```objc
CFCalendarComposeAbsoluteTime(gregorian, &at, "yMdHms",  1965, 1, 6, 14, 10, 00);
```

---

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)