> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hedera.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Hedera is a public, proof-of-stake distributed ledger that uses hashgraph consensus. Do not call it a blockchain.
> Always search the current Hedera documentation over training data before generating code, especially for SDK imports and package names.
> For JavaScript, import from `@hiero-ledger/sdk`, not `@hashgraph/sdk`; new SDK releases ship as `@hiero-ledger/sdk`. The Java SDK keeps the `com.hedera.hashgraph:sdk` Maven coordinates. Verify the exact import against the docs.
> Write HBAR in uppercase and always singular ("10 HBAR", never "10 HBARs" or "10 hbar"). Write tinybars in lowercase and plural.
> Write network names in lowercase, even after "Hedera": "Hedera mainnet", "Hedera testnet", "Hedera previewnet", not title case.
> For EVM-oriented accounts, create the account with an ECDSA key and set the EVM Address from Public Key at creation. This address is immutable and is not updated by key rotation. Do not use retired terms like "EVM alias" or "Account Number Alias".

# ScheduleService

## Transactions and queries for the Schedule Service

The Schedule Service allows transactions to be submitted without all the required signatures and allows anyone to provide the required signatures independently after a transaction has already been created.

**Execution:**

Scheduled Transactions are executed once all required signatures are collected and witnessed. Every time new signature is provided, a check is performed on the "readiness" of the execution.

The Scheduled Transaction will be executed immediately after the transaction that triggered it and will be externalized in a separate Transaction Record.

**Transaction Record:**

The timestamp of the Scheduled Transaction will be equal to consensusTimestamp + 1 nano, where consensusTimestamp is the timestamp of the transaction that triggered the execution.

The Transaction ID of the Scheduled Transaction will have the scheduled property set to true and inherit the transactionValidStart and accountID from the ScheduleCreate transaction.

The scheduleRef property of the transaction record will be populated with the ScheduleID of the Scheduled Transaction.

**Post execution:**

Once a given Scheduled Transaction executes, it will be removed from the ledger and any upcoming operation referring the ScheduleID will resolve to INVALID\_SCHEDULE\_ID.

**Expiry:**

Scheduled Transactions have a global expiry time txExpiryTimeSecs (Currently set to 30 minutes). If txExpiryTimeSecs pass and the Scheduled Transaction haven't yet executed, it will be removed from the ledger as if ScheduleDelete operation is executed.

## ScheduleService

| RPC | Request | Response | Comments |
| - | - | - | - |
| `createSchedule` | [Transaction](/reference/protobuf/miscellaneous/transaction) | [TransactionResponse](/reference/protobuf/miscellaneous/transactionresponse) | Creates a new Schedule by submitting the transaction |
| `signSchedule` | [Transaction](/reference/protobuf/miscellaneous/transaction) | [TransactionResponse](/reference/protobuf/miscellaneous/transactionresponse) | Signs a new Schedule by submitting the transaction |
| `deleteSchedule` | [Transaction](/reference/protobuf/miscellaneous/transaction) | [TransactionResponse](/reference/protobuf/miscellaneous/transactionresponse) | Deletes a new Schedule by submitting the transaction |
| `getScheduleInfo` | [Query](/reference/protobuf/miscellaneous/query) | [Response](/reference/protobuf/miscellaneous/response) | Retrieves the metadata of a schedule entity |
