No. Google Calendar API returns a success response when it accepts the request. The event then holds one of 6 states. Only confirmed and rescheduled are terminal success. Provely proves created, guests_invited and rescheduled as separate promises.

Skill facts from the signed manifest.
FactValue
Skill version0.1.0
PublisherBuilt and signed by Provely.
CertificationProvisional (score 49 of 100)
Last conformance run2026-09-05T12:00:00Z: 42 of 42 cases passed, 0 critical false VERIFIED
Provider API versionsv3.20260826
Default provider API versionv3.20260826
Compiled2026-09-05T12:00:00Z by compiler 0.1.0
Manifest hashd25bd97b813d4e99
Manifest hash checkthe document hashes to the value the manifest states
Signaturevalid, key provely-skill-2026-09, trusted by this build

What does this page prove?

ClaimProven byEvidenceStatus
The event exists with the intended title, start and end. It does not prove that a guest is on it, was told, or comes.google_calendar.event.createdE2 + E3proven
The stored attendee list holds the addresses that the person named. It does not prove that Google mailed a guest, or that a guest accepted.google_calendar.event.guests_invitedE2 + E3proven
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.google_calendar.event.rescheduledE3proven
An outcome outside Google Calendar API, such as a bank credit or a person who read a messagenot provenno E5 channelnot proven
The meaning of the guests_notified state of google_calendar.eventnot provenno source states itnot proven
The agent report that the action workednever countsE0not proven

Which completion levels does the Google Calendar API skill expose?

Each level is one promise with one contract. An agent picks the level that matches the promise it makes. It cannot upgrade a level. Read the completion level definition.

LevelContractPromiseEvidenceCertification
createdgoogle_calendar.event.created v1.0.0The event exists with the intended title, start and end. It does not prove that a guest is on it, was told, or comes.E2 + E3Provisional
guests_invitedgoogle_calendar.event.guests_invited v1.0.0The stored attendee list holds the addresses that the person named. It does not prove that Google mailed a guest, or that a guest accepted.E2 + E3Provisional
rescheduledgoogle_calendar.event.rescheduled v1.0.0The 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.E3Provisional

What is the Google Calendar API lifecycle?

Which states can a google_calendar.event be in?

StateClassVerdictMeaningSource
confirmedterminal successVERIFIEDThe event exists on the calendar with the member status confirmed, which the published description names the default status. The stored start and the stored end name the time of the first version of the event.google_calendar.docs.times
rescheduledterminal successVERIFIEDThe stored start and the stored end name the new time, and the member updated names a time inside the operation. The member status stays confirmed, so no published state member reports the change.google_calendar.docs.times
tentativeterminal neutralFAILEDThe published description states that the event is tentatively confirmed. The event exists, and the organizer has not confirmed it.google_calendar.docs.times
cancelledterminal neutralFAILEDThe published description states that the event is cancelled and deleted. It states that a deleted event is only guaranteed to carry the member id. The API reports no failure for this end.google_calendar.docs.times
guest_declinedterminal neutralFAILEDThe attendee entry of a guest carries the responseStatus declined. The guest is on the attendee list, and the guest states that they do not come. No level of this skill promises an acceptance.google_calendar.docs.times
guests_notifiedunknownUNVERIFIABLEGoogle mailed the guests. The query parameter sendUpdates decides the mail, the Event schema publishes no member that reports it, and the published reference sentence states that some mails still go out when the value is none. No read of this API reaches this state.google_calendar.docs.times

In google_calendar.event under provider API version v3.20260826, confirmed and rescheduled are the only states that mean terminal success. Every other state gives PENDING, FAILED, or UNVERIFIABLE.

Source: google_calendar.openapi · retrieved 2026-09-09

How does Provely tie the evidence to this exact operation?

A matching state that already existed must not verify. Every contract names the correlation keys that bind the evidence to the operation, and the idempotency key that stops a duplicate side effect.

StrategyAssuranceKeysRequiredWindow
resource_idweakcalendar_id from $input.calendar_idno600000 ms
resource_idweakcalendar_id from $input.calendar_idno600000 ms
resource_idstrongevent_id from $action.result.idnonone
resource_idstrongevent_id from $input.event_idnonone
fingerprintweakcalendar_id from $input.calendar_id; summary from $input.summaryno600000 ms
The skill reads the channels below. It prefers the ones furthest from the action.
In words
  • E0 agent assertion: never sufficient.
  • E1 action response: the provider acknowledged the request.
  • E2 provider readback: the runtime read the resource back.
  • E3 provider event: the provider reported the change.
  • E4 independent system: a system outside the action path agrees.
  • E5 external outcome: the result is observable in the world.

Which evidence channels does the skill read?

The runtime prefers the channel that is more independent from the action path. Read the evidence level definition. An acknowledgement from Google Calendar API is E1 and never terminal success.

ChannelLevelIndependenceVerifierDeterministicTypical latency
calendar_change_eventsE3provider eventwebhookno3000 ms
event_action_responseE1same responseaction_resultyesnot stated
event_intent_readbackE2provider readbackhttpyes300 ms
event_readbackE2provider readbackhttpyes300 ms

Which ways can a Google Calendar API action look done and not be?

ContractCaseRuleVerdict
google_calendar.event.createdwrong subjectThe event carries a different title than the person named.CONTRADICTED
google_calendar.event.createdwrong subjectThe event starts before the instant that the person named.CONTRADICTED
google_calendar.event.createdwrong subjectThe event starts after the instant that the person named.CONTRADICTED
google_calendar.event.createdwrong subjectThe event ends before the instant that the person named.CONTRADICTED
google_calendar.event.createdwrong subjectThe event ends after the instant that the person named.CONTRADICTED
google_calendar.event.createdpre existing stateThe event is older than the operation. It proves nothing about this operation.CONTRADICTED
google_calendar.event.createdduplicate side effectThe calendar changed more than once since the operation started. A second insert mails every guest a second time. Do not retry.CONTRADICTED
google_calendar.event.createdobserved stateThe event is cancelled. The published description states that a cancelled event is a deleted event. The API reports no failure for this end.CONTRADICTED
google_calendar.event.createdobserved stateThe event is a locked copy. The published description states that nobody can change its title, its start or its end. Ask a person.CONTRADICTED
google_calendar.event.createdobserved stateThe agent created an all-day event. This level promises a timed event, and an all-day event carries no dateTime, so no later read can prove the instant.CONTRADICTED
google_calendar.event.guests_invitedwrong subjectThe event carries a different title than the person named.CONTRADICTED
google_calendar.event.guests_invitedwrong subjectThe event starts before the instant that the person named.CONTRADICTED
google_calendar.event.guests_invitedwrong subjectThe event starts after the instant that the person named.CONTRADICTED
google_calendar.event.guests_invitedwrong subjectThe event ends before the instant that the person named.CONTRADICTED
google_calendar.event.guests_invitedwrong subjectThe event ends after the instant that the person named.CONTRADICTED
google_calendar.event.guests_invitedpre existing stateThe event is older than the operation. It proves nothing about this operation.CONTRADICTED
google_calendar.event.guests_invitedduplicate side effectThe calendar changed more than once since the operation started. A second insert mails every guest a second time. Do not retry.CONTRADICTED
google_calendar.event.guests_invitedpartial completionThe read returned a short attendee list. The verifier cannot see every guest. Ask a person.CONTRADICTED
google_calendar.event.guests_invitedobserved stateThe event is cancelled. The published description states that a cancelled event is a deleted event. The API reports no failure for this end.CONTRADICTED
google_calendar.event.guests_invitedobserved stateThe event is a locked copy. The published description states that nobody can change its title, its start or its end. Ask a person.CONTRADICTED
google_calendar.event.guests_invitedobserved stateThe agent created an all-day event. This level promises a timed event, and an all-day event carries no dateTime, so no later read can prove the instant.CONTRADICTED
google_calendar.event.guests_invitedobserved stateThe invitation names other people than the person asked for. A guest who should not see the meeting can see it, or a guest who should see it cannot. Ask a person.CONTRADICTED
google_calendar.event.rescheduledduplicate 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.CONTRADICTED
google_calendar.event.rescheduledobserved stateThe event is cancelled. A cancelled event holds no promise about a time, and the API reports no failure for this end.CONTRADICTED
google_calendar.event.rescheduledobserved stateThe event already sat at the requested time before the operation started. This operation changed nothing, and the state proves nothing about it.CONTRADICTED
google_calendar.event.rescheduledobserved stateThe event is a locked copy. The published description states that nobody can change its start or its end. Ask a person.CONTRADICTED
google_calendar.event.rescheduledobserved stateThe 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.CONTRADICTED
google_calendar.event.rescheduledobserved stateThe 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.CONTRADICTED
google_calendar.event.rescheduledobserved stateThe provider does not yet report the event with the requested start and end. The runtime observes again later.PENDING

What did the last conformance run show?

The six confidence dimensions of the signed manifest.
DimensionScoreMaximum
Documentation1420
Schema alignment1315
Lifecycle certainty16.6720
Evidence strength1620
Causal correlation1015
Sandbox conformance1010
Raw score79.67100
Score after the caps49100

The raw score is 79.67. 4 hard caps apply, so the score is 49 and the level is Provisional.

Why the score is capped.
ReasonHighest score it allows
A lifecycle state has unknown semantics. The compiler cannot prove the end state.49
No strong correlation strategy ties the evidence to the operation.69
28 uncertainty records are open. The lowest cap is 49.49
3 mandatory cases are missing. Example: google_calendar.event.created:terminal_failure.74
The score and the level of each contract.
ContractRaw scoreScore after the capsCertification
google_calendar.event.created80.0949Provisional
google_calendar.event.guests_invited79.1749Provisional
google_calendar.event.rescheduled79.9149Provisional

The weakest contract is google_calendar.event.created. It scores 49 and reaches Provisional. The package level is Provisional, because a package level never rises above its weakest contract. Read the level of the contract you use.

The last conformance run on 2026-09-05T12:00:00Z passed 42 of 42 cases with 0 critical false VERIFIED. One critical false VERIFIED rejects a skill.

The conformance result by case class.
Case classPassedTotal
duplicate side effect33
error after execution33
error before execution33
evidence unavailable33
pre existing state33
stale readback33
still transitional33
terminal success33
timeout after commit33
version mismatch33
webhook duplicate33
webhook out of order33
wrong subject33
wrong terminal state33

The conformance artifact digest is 975790a84ba0b9ec. The harness signs the run, so a reader can check that these numbers come from that run.

What remains uncertain?

The level is Provisional because of it. A lifecycle state has unknown semantics. The compiler cannot prove the end state. 28 uncertainty records are open. The lowest cap is 49. Provely does not guess a rule that a source does not state.

Where do these facts come from?

Every claim above cites a source assertion in the skill provenance. The compiler records the source, its hash, and the retrieval date. A page never states a provider rule without one.

SourceKindRetrievedExcerpt
google_calendar.docs.eventsdocs2026-09-09authored
google_calendar.docs.pushdocs2026-09-09authored
google_calendar.docs.timesdocs2026-09-09authored
google_calendar.docs.versionsdocs2026-09-09authored
google_calendar.eventsevent sample2026-09-09authored
google_calendar.openapiopenapi2026-09-09trimmed

How do I verify a Google Calendar API action?

Verify a Google Calendar API action with Provely

  1. Begin the operation.Call begin with the contract google_calendar.event.created and the input. Keep the operation id.
  2. Make the Google Calendar API call you make today.Send the request with the correlation metadata that begin returned.
  3. Submit the acknowledgement.Call action_result with the Google Calendar API response. This is evidence level E1. It is not completion.
  4. Verify.Call verify. The runtime reads calendar_change_events, event_action_response, event_intent_readback and event_readback and evaluates the contract.
  5. Report the verdict exactly as returned.VERIFIED comes with a signed receipt. PENDING comes with the operation id. CONTRADICTED and UNVERIFIABLE are not success.

Questions developers ask

Does the created level prove the rescheduled level?

No. The event exists with the intended title, start and end. It does not prove that a guest is on it, was told, or comes. 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. Use google_calendar.event.rescheduled to prove rescheduled.

Which Google Calendar API API versions does the skill support?

v3.20260826. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.

Does Provely need write access to Google Calendar API?

No. The agent keeps its write key. The verifier reads with a separate read-only credential where Google Calendar API permits it, and it never shares that credential with the agent.