SimpleICloud
SimpleiCloud is a lightweight iCloud client for Python, currently focused exclusively on managing contacts.
Unlike other libraries — such as the excellent PyiCloud — SimpleiCloud aims to support a broader set of contact-related use cases, including creating, updating, and deleting contacts.
SimpleiCloud is powered by requests HTTP library.
This module is under active development, and we welcome contributions from the community.
Examples
You must use an app-specific password for iCloud (generate it at https://appleid.apple.com/ > Sign-In & Security > App-Specific Passwords)
Package Installation
pip install simple-icloud
Class Instantiation
from simple_icloud import SimpleICloudService
simpleicloudservice = SimpleICloudService(
username="user@domain.com",
password="secret_P422sword",
)
Get a contact
contact = simpleicloudservice.get_contact("F4ZZZZ0-EZZ7-4ZZD-8ZZE-C4FZZZZZZACD")
Get all contacts
contacts_list = simpleicloudservice.get_all_contacts()
Delete a contact
contact = simpleicloudservice.delete_contact("F4ZZZZ0-EZZ7-4ZZD-8ZZE-C4FZZZZZZACD")
Create a contact
create the vCard
import uuid
import vobject
v = vobject.vCard()
v.add("fn").value = "Pippo DePippis"
# don't ask me why but iCloud need the following!
# credits to https://github.com/pimutils/vdirsyncer/issues/1145#issuecomment-2464999129
v.add("n").value = vobject.vcard.Name(family="DePippis", given="Pippo")
phone = v.add("tel")
phone.value = phone_
phone.type_param = "CELL"
email = v.add("email")
email.value = "pippo.depippis@xyz.abc"
email.type_param = ["INTERNET", "HOME", "pref"]
uuid_ = str(uuid.uuid4())
v.add("uid").value = uuid_
create the contact in iCloud
simpleicloudservice.create_contact(vcard=v)
Update a contact
edit the contact's feature
email = v.add("email")
email.value = "blabla@aaa.com"
email.type_param = ["INTERNET", "HOME", "pref"]
update the contact in iCloud
simpleicloudservice.update_contact(v)
Metadata
Release files for simple-iCloud 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_icloud-0.1.5.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_icloud-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.5 kB
Release files / simple_icloud-0.1.5.tar.gz
| Download URL | simple_icloud-0.1.5.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7bedc01632e2ca23f28231f05034bd27d4657dc86cf8973bc514beecd418ece0
|
|
BLAKE2b-256 checksum How to use checksums |
99e6db97a6d52b07502b203ab8e79edc9402194036ab2573d9ec2117d908d211
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 30, 2025.
Transparency logRelease files / simple_icloud-0.1.5-py3-none-any.whl
| Download URL | simple_icloud-0.1.5-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e2286da293f1555d5a5276b4725ab17e163028a5b53bf9775c1ed3db0cca6b4
|
|
BLAKE2b-256 checksum How to use checksums |
497a7e00b39da6e28e0214c1a8bcc05867329d2c03c1e786983f7ff3edf6edc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 30, 2025.
Transparency log