Skip to content
Client guide

Unitree G1 EDU email and calendar integration with Pear

Plan a custom Unitree G1 EDU assistant for iCloud Mail and calendars. Includes SDK prerequisites, an audio check and the Pear connection boundary.
Custom development

Connection details

Connection values for the custom application you build.

Pear hosted endpoint
https://pearmcp.com/api/mcp

What this guide helps you build

A developer-built conversation app could let a G1 EDU answer a question about a connected iCloud or Microsoft 365 mailbox. The app calls Pear and turns the response into speech. There is no prebuilt Pear app for G1, and this integration has not been tested on physical hardware.

Unitree lists secondary development for G1 EDU. The standard G1 entry does not list the same capability. Confirm the exact edition, firmware, SDK access and supported audio interface with Unitree before planning the integration. A microphone and speaker on the specification sheet are not proof of application access.

1. Prove the software path on your computer

Create a private Pear connection and connect the intended mailbox. Keep its API key in your application environment or secret store. Use the LiveKit guide for a Python MCP client configuration, or another client that supports authenticated Streamable HTTP. Call pear_provider_status before reading any provider data.

Configure the Python conversation agent

Begin with a typed question about a message you already know exists. Select the intended provider and mailbox, then verify the result against that mailbox. This isolates a Pear or account error from microphone, transcription and robot networking problems.

2. Check the robot audio interface separately

Install and configure the official Unitree SDK for your supported environment. Follow Unitree's network setup. Its G1 AudioClient example demonstrates initialization and TtsMaker. The example also contains a hand-wave command, so review it rather than running the entire example as an audio-only test.

The fragment below checks speech using a fixed test sentence. Set UNITREE_NETWORK_INTERFACE to the interface from your Unitree setup. It deliberately contains no mailbox request or motion command. Firmware support, pronunciation and audio behavior require verification on your robot.

import os
from unitree_sdk2py.core.channel import ChannelFactoryInitialize
from unitree_sdk2py.g1.audio.g1_audio_client import AudioClient

ChannelFactoryInitialize(0, os.environ["UNITREE_NETWORK_INTERFACE"])
audio = AudioClient()
audio.SetTimeout(10.0)
audio.Init()
result = audio.TtsMaker("Robot audio test.", 0)
print(result)

3. Implement the application adapter

Your application must capture audio through an interface supported by the installed firmware, transcribe it, and submit the request to the conversation agent. Send only the selected answer to speech output. TtsMaker is output; calling it does not implement microphone capture or speech recognition.

Choose one audio path: generate speech through the robot API, or stream generated audio through a supported playback interface. Do not assume the robot accepts LiveKit audio tracks without an adapter. Keep the networked mailbox work outside the robot's movement-control loop, with a timeout and a user-visible failure state.

4. Validate the first mailbox workflow

Use only read tools and a private owner session. Test a known message, an empty search, the wrong account, an expired key and a disconnected provider. Stop speaking when the owner interrupts. On failure, say the mailbox could not be checked rather than announcing an empty inbox.

Start with subjects or a short calendar briefing. Do not read private mail aloud to visitors or expose a shared public agent using your personal Pear key. Sending email requires a separately designed approval flow; it is outside this read-only prototype.

Compare other humanoid development paths

Choose a useful first workflow

Start with a read. Ask which calendars are connected, find an event in a specific date range, or search a mail folder for a message you already know. Specify the account and timezone when they matter.

For Apple accounts, see iCloud setup and services and iCloud Mail workflows. For Microsoft accounts, see Microsoft 365 setup, Outlook Mail, and Microsoft To Do.

Apple Reminders availability depends on the Apple account. For Apple, Pear can read and write only the legacy reminder lists Apple still exposes through CalDAV. If the account has been upgraded to Apple's newer Reminders store, Pear cannot access those native lists and does not copy them into a separate reminder store. Apple may instead return compatibility placeholders, such as repeated "Where are my reminders?" items; Pear did not create them. Pear's safe fallback hides known placeholders and blocks writes to affected lists. Reconnecting iCloud or replacing the App-Specific Password will not change this Apple limitation. Calendar, Contacts, and Mail are unaffected, and Microsoft To Do uses Microsoft Graph and is unaffected. Full modern Apple Reminders access would require an Apple-platform companion using EventKit with the user's permission; Pear does not currently provide one. Google Workspace remains coming soon.

Pear exposes tools allowed by your account and permissions. Your AI client decides when to call them. Review recipients, dates, and content before approving writes. Read how Pear handles your data and the current plans before expanding the workflow.

Sources and compatibility status

Research checked on 10 September 2026. This is a custom development path, not a tested Pear robot integration.

G1 and G1 EDU specifications

Official Python SDK

Official G1 audio example

Unitree G1 EDU + Pear

Find the right connection for your workflow.

Free includes 50 counted provider actions/month. Most provider reads or writes count as one action. Batch writes count once per item. Setup and discovery do not count. Failed actions Pear can confirm had no provider effect also do not count; actions with an unknown outcome may count. Pro removes the cap.