# Why hasn't conferencing been generated for my event?

Conferencing is generated asynchronously, so an event can sit with `conferencing` set to `{ &quot;pending&quot;: true }` for a short while after it is written.

When you create an event with a `conferencing` block, Cronofy writes the event to the calendar straight away to hold the time, then generates the conference in the background. Until generation completes, `event.conferencing` is `{ &quot;pending&quot;: true }`. Once it succeeds, that key is replaced with the conference details, including `provider_name` and `join_url`.

If generation fails, Cronofy keeps retrying periodically and will generate the conference on its own once the underlying cause clears.

## Common causes
### Expired credentials for the conferencing profile
This is the most common cause for user-authorised services such as Zoom, GoTo and standalone Microsoft Teams. Cronofy is still retrying, but each attempt fails authentication against the provider.

Use the [UserInfo](/developers/api/identity/userinfo/index.md) endpoint to inspect profile health. Each entry in `cronofy.data.conferencing_profiles` exposes:

- [profile_connected](/developers/api/conferencing-services/conferencing-profiles/index.md), where `false` means the profile's credentials are no longer valid.

- [profile_relink_url](/developers/api/conferencing-services/conferencing-profiles/index.md), which is present only when `profile_connected` is `false`. Route the user here to re-authorise the existing profile.

If the profile is disconnected (`profile_connected` is set to `false`), advise the user to re-authorise and send them the `profile_relink_url` from UserInfo. Relinking will restore the credentials for the conferencing profile. To detect disconnections, we recommend utilising Push Notifications, particularly the [conferencing_profile_disconnected](/developers/api/push-notifications/index.md) type, which fires when one or more of a user's conferencing profiles become disconnected.

You can then [read the event again](/developers/api/events/read-events/index.md) and inspect its `conferencing` value. If conferencing was generated successfully, the `conferencing` value will be set to an object containing `join_url` and `provider_name`.

### The conferencing profile was removed
If the conferencing profile was removed between creating the event and Cronofy generating the conference, the event is written without conferencing and a [conferencing_failing](/developers/api/conferencing-services/subscriptions/index.md) Push Notification is sent with the [profile_missing](/developers/api/conferencing-services/subscriptions/index.md) subtype.

Relinking will not help here, because the profile no longer exists. Instead, call the [UserInfo](/developers/api/identity/userinfo/index.md) endpoint to get the correct `profile_id` and set it on the affected events by calling [Update Event](/developers/api/events/upsert-event/index.md) with the new profile in the `conferencing` block.

### The event start is in the past
Conferencing cannot be added to past events. If the event's `start` is in the past, conferencing will not be generated when the event is created. See [Create or Update Event](/developers/api/conferencing-services/create/index.md) for details.

### Integrated conferencing returned no meeting URL
For conferencing that is integrated into the calendar service (Microsoft Teams and Google Meet), there is a rare chance that the provider may return the event without conferencing details. Cronofy tries to resolve this automatically, but in some cases, such as the user's conferencing licence being removed, it cannot. A [conferencing_failing](/developers/api/conferencing-services/subscriptions/index.md) Push Notification is sent with the [missing_meeting_url](/developers/api/conferencing-services/subscriptions/index.md) subtype.

This needs to be resolved with the calendar provider, for example by restoring the user's conferencing licence.

### The conferencing provider had an outage
A transient error from the conferencing provider, such as its API being unavailable, can prevent Cronofy from generating the conference. The event is written without conferencing and a [conferencing_failing](/developers/api/conferencing-services/subscriptions/index.md) Push Notification is sent without a subtype. No action is needed here: Cronofy retries periodically and sends a `conferencing_assigned` notification once the provider recovers.

## Reacting to conferencing outcomes
Rather than reading the event back to check its state, we recommend subscribing to the [conferencing_assigned and conferencing_failing Push Notifications](/developers/api/conferencing-services/subscriptions/index.md) when you write the event, so that you can react to the outcome without polling. You will be notified once conferencing is generated via a `conferencing_assigned` notification.

Subscriptions also give you additional context for why conferencing is failing through the [notification.interactions.subtype](/developers/api/conferencing-services/subscriptions/index.md).

If conferencing is still `pending` after trying the above, please contact Support at [support@cronofy.com](mailto:support@cronofy.com) with the account and event details so we can take a deeper look.


---
[Read in HTML](/developers/faqs/conferencing/conferencing-not-generated/)