Scheduling Applications
Build smart scheduling systems that respect user availability, constraints, and preferences
Scheduling applications need to remember user preferences, availability windows, timezone settings, and scheduling constraints. Without a centralized memory system, scheduling logic becomes scattered across different parts of the application, making it difficult to maintain consistency and respect user preferences.
Traditional approaches often store scheduling data in application-specific databases, making it difficult to share preferences across different scheduling tools or maintain a unified view of user availability.
The Memory Scope API provides a centralized way to store and retrieve scheduling-related memories with built-in policy enforcement. You can store availability windows, timezone preferences, scheduling constraints, and meeting preferences, then retrieve them when needed for scheduling operations.
Availability Windows
Store recurring availability patterns and one-time availability changes
Timezone Preferences
Remember user timezones and preferred meeting times in local time
Constraint Merging
Automatically merge multiple constraint sources with confidence scores
Multi-Source Support
Combine constraints from calendar, preferences, and explicit user input
1. Store Availability Windows
When a user sets their availability, store it in the schedule scope:
POST /memory
{
"user_id": "user123",
"scope": "schedule",
"domain": "work",
"source": "explicit_user_input",
"ttl_days": 30,
"value_json": {
"availability": [
{"day": "monday", "start": "09:00", "end": "17:00"},
{"day": "tuesday", "start": "09:00", "end": "17:00"},
{"day": "wednesday", "start": "09:00", "end": "17:00"}
],
"timezone": "America/New_York"
}
}2. Store Scheduling Constraints
Store constraints like "no meetings before 10am" or "prefer afternoon meetings":
POST /memory
{
"user_id": "user123",
"scope": "constraints",
"domain": "scheduling",
"source": "explicit_user_input",
"ttl_days": 90,
"value_json": {
"preferences": {
"no_meetings_before": "10:00",
"prefer_afternoon": true,
"max_meetings_per_day": 4
}
}
}3. Retrieve Constraints for Scheduling
When scheduling a meeting, retrieve all relevant constraints:
POST /memory/read
{
"user_id": "user123",
"scope": "schedule",
"purpose": "schedule meeting",
"max_age_days": 30
}- Centralized scheduling preferences that work across all scheduling tools
- Automatic merging of constraints from multiple sources
- Policy enforcement ensures constraints are only used for scheduling purposes
- Easy revocation if users want to change their availability
- Complete audit trail of all scheduling constraint accesses