# iCloud: what the assistant can do

> Everything the assistant can do in iCloud by text: 7 actions, with example texts, the iCloud API call behind each one, and which ones ask first or can be undone.

Source: https://asktack.com/docs/actions/icloud/

In iCloud, the assistant can add an event (iCloud Calendar), move an event (iCloud Calendar), cancel an event (iCloud Calendar), check your calendar (iCloud Calendar), find free time (iCloud Calendar), look up a contact (iCloud Contacts) and add a contact (iCloud Contacts). You ask by text, in your own words.

**Status:** Beta. How to connect, permissions and limits: [iCloud Calendar & Contacts](https://asktack.com/docs/integrations/icloud/).

| What it does | Asks first? | Undo |
|---|---|---|
| Add an event (iCloud Calendar) | If unsure | 10 minutes |
| Move an event (iCloud Calendar) | If unsure | 10 minutes |
| Cancel an event (iCloud Calendar) | Always | 10 minutes |
| Check your calendar (iCloud Calendar) | No | – |
| Find free time (iCloud Calendar) | No | – |
| Look up a contact (iCloud Contacts) | No | – |
| Add a contact (iCloud Contacts) | If unsure | 10 minutes |

Asking first and undo follow the same rules for every tool: see [Confirmations and undo](https://asktack.com/docs/confirmations-and-undo/).

## Add an event (iCloud Calendar)

Puts an event on your own iCloud calendar at the time you say, with a length or end time and an optional place. Nobody else is invited.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **iCloud API call:** `PUT {calendar}/{uid}.ics (If-None-Match: *)`
- **Action name:** `icloud.create_event`

**Example texts:**

- "put the Henderson AC tune-up on my calendar tomorrow at 2"
- "block 9 to 11 Friday for the Patel estimate at 12 Oak St"
- "add dentist Tuesday 3:30 to my iCloud calendar"

## Move an event (iCloud Calendar)

Moves one of your events (or one day of a repeating one) to a new day or time and keeps its length. Events with guests are left for you to move.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **iCloud API call:** `PUT {calendar}/{uid}.ics (If-Match)`
- **Action name:** `icloud.move_event`

**Example texts:**

- "move the Henderson appointment to Thursday at 3"
- "push my 2pm tomorrow to 4"
- "reschedule the dentist to next Monday"

## Cancel an event (iCloud Calendar)

Deletes an event (or one day of a repeating one) from your iCloud calendar. Events with guests are left for you to cancel, so they hear about it. Always asks you first.

- **Asks before doing it?** Yes, always. You see exactly what will happen and say yes before it does it.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **iCloud API call:** `DELETE {calendar}/{uid}.ics (If-Match)`
- **Action name:** `icloud.cancel_event`

**Example texts:**

- "cancel the Henderson appointment tomorrow"
- "delete my 4pm today from the calendar"
- "cancela la cita del dentista"

## Check your calendar (iCloud Calendar)

Tells you what's on your iCloud calendars today, tomorrow, another day or for the week.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **iCloud API call:** `REPORT {calendar} calendar-query`
- **Action name:** `icloud.list_events`

**Example texts:**

- "what's on my calendar today"
- "what do I have tomorrow"
- "what's my week look like"

## Find free time (iCloud Calendar)

Finds open time on your iCloud calendars on a day, between 8am and 6pm unless you say otherwise.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **iCloud API call:** `REPORT {calendar} calendar-query`
- **Action name:** `icloud.find_free_slot`

**Example texts:**

- "when am I free Thursday"
- "do I have an hour open tomorrow afternoon"
- "find me a 2 hour slot Monday"

## Look up a contact (iCloud Contacts)

Finds someone in your iPhone contacts by name, phone number or email and replies with their number and email.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **iCloud API call:** `REPORT {addressbook} addressbook-query`
- **Action name:** `icloud.find_contact`

**Example texts:**

- "what's Sarah Lee's number?"
- "who is 512-555-0188 in my contacts"
- "find dave@patelhomes.com in my iPhone contacts"

## Add a contact (iCloud Contacts)

Saves a new person to your iPhone contacts with the phone, email, company or note you give.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **iCloud API call:** `PUT {addressbook}/{uid}.vcf`
- **Action name:** `icloud.create_contact`

**Example texts:**

- "add Sarah Lee 512-555-0188 to my contacts"
- "save dave@patelhomes.com as Dave Patel, Patel Homes, in my iPhone contacts"
- "new contact: Mike from Acme Supply 512 555 0101"

---

*This list is generated from the code that runs each action, so it's always current.*
