For the complete documentation index, see llms.txt. This page is also available as Markdown.

Schedules

Complete reference for schedules, including queries, mutations, and types for defining recurring time patterns such as working hours and maintenance windows (iCalendar-compatible).

Schedules define time-based rules using iCalendar (RFC 5545) format for recurring events, working hours, and time-triggered automation.

Queries

schedule

Retrieves a schedule by its ID.

schedule(id: ID!): Schedule

Arguments

Name
Type
Description

id

ID!

The ID of the schedule to retrieve.

Output types:

Schedule

A schedule definition for work hours, maintenance windows, or other time-based rules.

Implements: Node, Titled, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

organization

The organization that owns this schedule.

scheduleData

ScheduleData!

The calendar and time interval definitions for this schedule.


schedules

Lists schedules for an organization.

Arguments

Name
Type
Description

organizationId

ID!

The organization to retrieve schedules for.

filter

ScheduleFilter

Filtering options for the returned schedules.

first

Int

The first n elements from the paginated list.

after

String

The elements that come after the specified cursor.

last

Int

The last n elements from the paginated list.

before

String

The elements that come before the specified cursor.

orderBy

ScheduleOrder

The ordering options for the returned schedules.

Input types:

ScheduleFilter

Filtering options for schedules.

Field
Type
Description

titleContains

String

Partial match on title (case-insensitive contains).

ScheduleOrder

Ordering options for schedules.

Field
Type
Description

field

The standard field to order by.

direction

The direction to order.

Output types:

ScheduleConnection

A paginated list of Schedule items.

Implements: Connection

Field
Type
Description

edges

A list of edges.

nodes

A list of nodes in the connection (without edge metadata).

pageInfo

Information about the current page.

total

The total count of items matching the filter.


Mutations

scheduleCreate

Creates a new schedule.

Arguments

Name
Type
Description

input

ScheduleCreateInput!

The input fields for creating the schedule.

Input types:

ScheduleCreateInput

Input for creating a new schedule.

Field
Type
Description

organizationId

ID!

The organization that will own the schedule.

title

String!

The schedule display name.

scheduleData

ScheduleData!

The schedule data.

Output types:

SchedulePayload

The result of a schedule mutation.

Field
Type
Description

schedule

The created or updated schedule.

Schedule (entity)

A schedule definition for work hours, maintenance windows, or other time-based rules.

Implements: Node, Titled, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

organization

The organization that owns this schedule.

scheduleData

ScheduleData!

The calendar and time interval definitions for this schedule.


scheduleUpdate

Updates an existing schedule.

Arguments

Name
Type
Description

input

ScheduleUpdateInput!

The input fields for updating the schedule.

Input types:

ScheduleUpdateInput

Input for updating an existing schedule.

Field
Type
Description

id

ID!

The schedule ID to update.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

title

String

The new display name.

scheduleData

ScheduleData

The new schedule data.

Output types:

SchedulePayload

The result of a schedule mutation.

Field
Type
Description

schedule

The created or updated schedule.

Schedule (entity)

A schedule definition for work hours, maintenance windows, or other time-based rules.

Implements: Node, Titled, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

organization

The organization that owns this schedule.

scheduleData

ScheduleData!

The calendar and time interval definitions for this schedule.


scheduleDelete

Deletes a schedule.

Arguments

Name
Type
Description

input

ScheduleDeleteInput!

The input fields for deleting the schedule.

Input types:

ScheduleDeleteInput

Input for deleting a schedule.

Field
Type
Description

id

ID!

The schedule ID to delete.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

Output types:

DeletePayload

The result of a delete mutation.

Field
Type
Description

deletedId

ID!

The ID of the deleted entity.


Objects

Schedule

A schedule definition for work hours, maintenance windows, or other time-based rules.

Implements: Node, Titled, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

organization

The organization that owns this schedule.

scheduleData

ScheduleData!

The calendar and time interval definitions for this schedule.


SchedulePayload

The result of a schedule mutation.

Field
Type
Description

schedule

The created or updated schedule.


Inputs

ScheduleFilter

Filtering options for schedules.

Field
Type
Description

titleContains

String

Partial match on title (case-insensitive contains).


ScheduleOrder

Ordering options for schedules.

Field
Type
Description

field

The standard field to order by.

direction

The direction to order.


ScheduleCreateInput

Input for creating a new schedule.

Field
Type
Description

organizationId

ID!

The organization that will own the schedule.

title

String!

The schedule display name.

scheduleData

ScheduleData!

The schedule data.


ScheduleUpdateInput

Input for updating an existing schedule.

Field
Type
Description

id

ID!

The schedule ID to update.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

title

String

The new display name.

scheduleData

ScheduleData

The new schedule data.


ScheduleDeleteInput

Input for deleting a schedule.

Field
Type
Description

id

ID!

The schedule ID to delete.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.


Enums

ScheduleOrderField

Fields available for ordering schedules.

Value
Description

TITLE

Order by title.


Scalars

ScheduleData

Schedule configuration as a JSON object — time intervals and recurrence. The same shape backs both the Schedule entity (scheduleData) and FieldType.SCHEDULE custom-field values.

A JSCalendar-aligned profile (RFC 8984 field names) restricted to the subset that round-trips to iCalendar / RFC 5545 (.ics). All date-times are local wall-clock (no offset), interpreted in the schedule-level timeZone — never UTC — so recurring events keep their wall-clock time across DST transitions. Validated on write (rejected with a field-specific message); reads are tolerant of legacy/empty values.

Field catalogue (NOT a single valid object — end/duration and count/until are mutually exclusive; numeric ranges below are value DOMAINS, not literal arrays). All date-times are local, e.g. 2025-01-06T09:00:00; dates for all-day, e.g. 2025-06-10.

Top level:

  • timeZone: IANA string, required. Zone for every TIMED event (all-day events are zone-independent).

  • active: boolean, optional, default true. Manual on/off for schedule checks.

  • description: string, optional, free text. (The NAME is the entity title, not stored here.)

  • events: array, required, non-empty.

Each event:

  • uid: string, optional, stable slot id.

  • title: string, optional, maps to VEVENT SUMMARY.

  • start: local date (all-day) or date-time (timed), required. Date-times are exactly yyyy-MM-dd'T'HH:mm:ss — seconds required, no fractional seconds, no offset/Z.

  • end XOR duration: a timed event needs exactly one; an all-day event may omit both. end is a local date-time (one-off / manual slots); duration is a positive ISO-8601 duration (e.g. PT9H, preferred for recurring — stable across DST); for an all-day event the duration must be whole days (e.g. P1D), no time component.

  • showWithoutTime: boolean, optional. true → all-day: start/end are dates, FLOATING (ignores timeZone); an all-day recurrenceRule must not use byHour/byMinute/bySecond.

  • recurrenceRule: object, optional. Absent → a single occurrence at start.

  • excludedDates: array of local date-times, optional. EXDATE — drop whole occurrences.

  • additionalDates: array of local date-times, optional. RDATE — add one-off occurrences.

recurrenceRule:

  • frequency: one of secondly|minutely|hourly|daily|weekly|monthly|yearly, required.

  • interval: integer >= 1, optional (default 1).

  • count XOR until: optional; never both. Neither → repeats forever. until is a local date-time.

  • byDay: array of { "day": <mo|tu|we|th|fr|sa|su>, "nthOfPeriod"?: <non-zero int> }. An ordinal nthOfPeriod (e.g. {day:"mo",nthOfPeriod:1} = first Monday) is valid only for monthly/yearly.

  • byMonth: 1..12. byMonthDay: -31..-1 or 1..31. byYearDay: -366..-1 or 1..366. byWeekNo: -53..-1 or 1..53. byHour: 0..23. byMinute: 0..59. bySecond: 0..60 (60 = leap second).

  • firstDayOfWeek: one of mo..su, optional (WKST, default mo).

Numeric recurrence domains follow RFC 5545 §3.3.10. Maps to a VEVENT per events[] entry on .ics export (post-MVP). See Specification below.

Property
Value

Format

JSCalendar-aligned JSON (RFC 8984)

Example

{"timeZone": "America/New_York", "events": [{"start": "2025-01-06T09:00:00", "duration": "PT8H", "recurrenceRule": {"frequency": "weekly", "byDay": [{"day": "mo"}, {"day": "we"}, {"day": "fr"}]}}]}


Pagination types

ScheduleConnection

A paginated list of Schedule items.

Implements: Connection

Field
Type
Description

edges

A list of edges.

nodes

A list of nodes in the connection (without edge metadata).

pageInfo

Information about the current page.

total

The total count of items matching the filter.


ScheduleEdge

An edge in the Schedule connection.

Implements: Edge

Field
Type
Description

cursor

String!

An opaque cursor for this edge.

node

The schedule at the end of the edge.


Last updated

Was this helpful?