Prove that the event now starts and ends at the requested instants. The provider changed the event inside this operation, and the stored start and end name the new instants. It does not prove that a guest was told.

Contract identity.
FactValue
Contract idgoogle_calendar.event.rescheduled
Version1.0.0
Hasha9eb7474a30680a4
Completion levelrescheduled
PublisherBuilt and signed by Provely.
CertificationProvisional
SkillGoogle Calendar API 0.1.0
Valid for provider API versionsv3.20260826

What is the intent?

Move the meeting to the stated new time.

What is the subject and the action?

MemberValue
Subject typegoogle_calendar.event
Subject identityevent_id = $input.event_id
Canonical effectcalendar.event_update
Provider operationPATCH /calendar/v3/calendars/{calendarId}/events/{eventId}
Idempotencynone, retry is not safe

How does the evidence correlate with this operation?

StrategyAssuranceKeysRequired
resource_idstrongevent_id from $input.event_idno
resource_idweakcalendar_id from $input.calendar_idno

Which evidence does the contract require?

Minimum evidence level E2. An independent channel is required. Minimum channels: 1.

ChannelLevelIndependenceVerifierDescription
event_intent_readbackE2provider readbackhttpRead the event that the intent names. A condition path is $observed.event_intent_readback.updated. The read states no maxAttendees parameter.
calendar_change_eventsE3provider eventwebhookThe notifications of a channel that watches the events collection of the calendar, since the operation started. The webhook verifier returns {events, count, latest, earliest, types, duplicates_dropped}. The body is empty, so a count names no event.

Which conditions must all hold for VERIFIED?

ConditionMeaningPathOperatorExpectedEvidence
calendar_changed_for_the_rescheduleAt least one notification says that the events collection of the calendar changed since the operation started. The verdict map holds the rest of the promise, because the read-back of this level can date no state.$observed.calendar_change_events.countgte1calendar_change_events

Which conditions give CONTRADICTED?

ConditionClassReasonPathOperatorExpected
duplicate_calendar_change_on_rescheduleduplicate side effectThe calendar changed more than once since the operation started. A second update mails every guest a second time. Stop and ask a person.$observed.calendar_change_events.countgt1

Which observed states map to a verdict before completion?

RuleMatchVerdictReason
rescheduled_event_is_cancelled$observed.event_intent_readback.status eq "cancelled"CONTRADICTEDThe event is cancelled. A cancelled event holds no promise about a time, and the API reports no failure for this end.
rescheduled_event_already_sat_at_the_requested_time($observed.event_intent_readback.updated time_before "$operation.created_at") and ($observed.event_intent_readback.start.dateTime time_after "$input.new_start_time") and ($observed.event_intent_readback.start.dateTime time_before "$input.new_start_time")CONTRADICTEDThe event already sat at the requested time before the operation started. This operation changed nothing, and the state proves nothing about it.
rescheduled_event_is_a_locked_copy$observed.event_intent_readback.locked eq trueCONTRADICTEDThe event is a locked copy. The published description states that nobody can change its start or its end. Ask a person.
rescheduled_event_is_a_series_instance$observed.event_intent_readback.recurringEventId exists undefinedCONTRADICTEDThe event is one occurrence of a recurring event. A change of one occurrence and a change of the whole series are different operations, and this skill covers neither. Ask a person.
rescheduled_to_the_wrong_time($observed.event_intent_readback.updated time_after "$operation.created_at") and (($observed.event_intent_readback.start.dateTime time_before "$input.new_start_time") or ($observed.event_intent_readback.start.dateTime time_after "$input.new_start_time"))CONTRADICTEDThe agent changed the event inside this operation, and the event now starts at another instant than the person named. Every guest holds a wrong time. Stop and ask a person.
the_new_time_is_not_stored_yet(not ($observed.event_intent_readback.id eq "$input.event_id")) or (not ($observed.event_intent_readback.start.dateTime time_after "$input.new_start_time")) or (not ($observed.event_intent_readback.start.dateTime time_before "$input.new_start_time")) or (not ($observed.event_intent_readback.end.dateTime time_after "$input.new_end_time")) or (not ($observed.event_intent_readback.end.dateTime time_before "$input.new_end_time")) or (not ($observed.event_intent_readback.updated time_after "$operation.created_at"))PENDINGThe provider does not yet report the event with the requested start and end. The runtime observes again later.

How long does the runtime observe?

Timing memberValue
Initial delay1000 ms
Poll interval5000 ms
Backoffexponential factor 2, max 60000 ms
Maximum attempts40
Timeout900000 ms
Stale read window20000 ms
On timeoutUNVERIFIABLE (evidence_unavailable_before_timeout), escalated to a person

Where do these rules come from?

  • google_calendar.openapi#/paths/~1calendar~1v3~1calendars~1{calendarId}~1events~1{eventId}/patch: google_calendar.openapi, retrieved 2026-09-09
  • google_calendar.openapi#/components/schemas/Event/properties/updated: google_calendar.openapi, retrieved 2026-09-09
  • google_calendar.docs.times#events-times-and-the-change-of-a-time/events-move-does-not-change-a-time: google_calendar.docs.times, retrieved 2026-09-09
  • google_calendar.docs.times#events-times-and-the-change-of-a-time/one-instant-five-spellings: google_calendar.docs.times, retrieved 2026-09-09
  • google_calendar.events#/events/calendar.events.exists: google_calendar.events, retrieved 2026-09-09
  • google_calendar.docs.push#push-notifications/one-resource-state-covers-three-different-changes: google_calendar.docs.push, retrieved 2026-09-09
  • google_calendar.openapi#/paths/~1calendar~1v3~1calendars~1{calendarId}~1events~1watch/post: google_calendar.openapi, retrieved 2026-09-09
  • google_calendar.docs.push#push-notifications/what-the-page-refuses-to-promise: google_calendar.docs.push, retrieved 2026-09-09

Can google_calendar.event.rescheduled return VERIFIED from the action response alone?

No. The minimum evidence level is E2. The action response is E1. The completion conditions read calendar_change_events.

What happens after the timeout?

The verdict is UNVERIFIABLE with the reason evidence_unavailable_before_timeout. The operation goes to a person for review.