---
title: Scheduling vs Access Control
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-management/access-control-scheduling-vs-access-control
---

## Scheduling vs Access Control


Kaltura has two mechanisms for enforcing time-based access:

**Entry-level scheduling** (simpler):

- Set `startDate` and `endDate` on the entry  
- Single start/end window  
- Enforced server-side across all devices  
- Configurable via Rich Media CMS (KMC) without API calls  

**Access control scheduling** (advanced):

- Multiple scheduling windows per entry  
- Combined with other conditions (device + time, country + time)  
- Metadata-driven scheduling (per-device availability windows)  
- Requires access control profile configuration  

Use entry-level scheduling when a single time window is sufficient. Use access control scheduling for per-device windows, multiple windows, or combined restrictions.

### Checking Scheduling Status

Use `baseEntry.getContextData` to check whether content is currently available:


```bash
curl -X POST "$KALTURA_SERVICE_URL/service/baseEntry/action/getContextData" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "entryId=$KALTURA_ENTRY_ID" \
  -d "contextDataParams[objectType]=KalturaEntryContextDataParams"
```


The response (`KalturaEntryContextDataResult`) includes:

- `isScheduledNow` -- boolean, whether the entry is within its scheduling window  
- `actions` -- array of access control actions that would be enforced  
- `messages` -- array of rule messages  

Use `isScheduledNow` to display user-friendly messages (e.g., "This video is available from X to Y") instead of a blank player.
