Metadata-Version: 2.1
Name: teamup_connect
Version: 0.2.0
Summary: A package designed to facilitate easy interaction with TeamUp API.
Author-email: Tony <cordial.egg1739@fastmail.com>
License: MIT
Keywords: one,two
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: requests
Requires-Dist: python-dotenv
Requires-Dist: importlib-metadata; python_version < "3.10"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: release
Requires-Dist: build; extra == "release"
Requires-Dist: twine; extra == "release"
Provides-Extra: static-code-qa
Requires-Dist: pre-commit; extra == "static-code-qa"
Provides-Extra: dev
Requires-Dist: py_teamup[release,static-code-qa,test]; extra == "dev"

# Teamup
A package designed to facilitate easy interaction with TeamUp API.

# Quickstart

## Installation 🛠️

From PyPI
py_teamup is available on PyPI. To install with `pip`, just run

```
pip install py_teamup
```

##  Setup 🔨

Review the `.env.example` file for the required/optional environment variables.
- The email and password are not actually used currently.
- Filling in all others are required beside `TEAMUP_DEFAULT_CALENDAR_ID` which is optional.
    - Working with one calendar and multiple sub_calendars seems more likely. Which is why I have it set statically in `TEAMUP_DEFAULT_CALDENDAR_ID`. Can get this value here from your own calendar:
    ![calendar_id](img/teamup_calendar_key_example.png)

> Get token and api key from teamup: https://teamup.com/api-keys/request

## Usage - Commands/Features

This covers the main use cases for the library.

```python
from teamup_connect import TeamUP

teamup = TeamUP()

# # Get calendar - returns dict full of calendar info.
calendar_info = teamup.get_calendar(calendar_key_or_id=DEFAULT_CALENDAR_ID)

# Get list of subcalendars - returns dict of subcalendars and their info.
sub_calendars = teamup.get_subcalendars(calendar_key_or_id=DEFAULT_CALENDAR_ID)
sub_calendar_ids = [calendar["id"] for calendar in sub_calendars]

# Or get a subcalendar by its name
sub_calendar_id = teamup.get_subcalendar_id_from_name(
    calendar_key_or_id=DEFAULT_CALENDAR_ID, calendar_name="Daily Routine"
)

# With a sub_calendar_id, we can now create an event for that calendar.
# Note: the teamup class has a CalendarEvent data class that is required
    # to create an event (for ease of use and validation).
event_to_create = teamup.CalendarEvent(subcalendar_ids=[sub_calendar_id], title="Test Event")

created_event = teamup.create_calendar_event(
    calendar_key_or_id=DEFAULT_CALENDAR_ID, calendar_event=event_to_create
)
created_event_id = created_event["id"]

# Delete the event created
event_undo_id = teamup.delete_calendar_event(
    calendar_key_or_id=DEFAULT_CALENDAR_ID, event_id=created_event_id
)

# Get all events for the subcalendar - This example uses the optional parameter with a date range
optional_params = {
    "startDate": "2024-07-18",
    "endDate": "2024-08-10",
}
events = teamup.get_calendar_events(calendar_key_or_id=DEFAULT_CALENDAR_ID, query=optional_params)


```

# Development  🔧
