# Calendar API & MCP


# Calendar API & MCP

imatic Calendar இல் நீங்கள் செய்யும் அனைத்தையும், நீங்கள் தானியக்கமாக்கலாம். இடைவெளிகளை வினவவும் முன்பதிவுகளை உருவாக்கவும் **REST API** ஐப் பயன்படுத்தவும், நிகழ்வுகளுக்கு நிகழ்நேரத்தில் எதிர்வினையாற்ற **webhooks** ஐப் பயன்படுத்தவும், மற்றும் ஒரு AI முகவர் உங்கள் சார்பாக முன்பதிவு செய்ய **MCP சேவையகத்தைப்** பயன்படுத்தவும். இந்தப் பக்கம் imatic Calendar ஐ தங்கள் சொந்த பயன்பாடுகள் மற்றும் கருவிகளில் இணைக்கும் டெவலப்பர்களுக்கானது.

நீங்கள் உங்கள் டாஷ்போர்டில் **Developers** இன் கீழ் சான்றுகளை நிர்வகிக்கிறீர்கள்.

:::note[நிர்வாகி-நிர்வகிக்கப்பட்டது]

**API keys** மற்றும் **Webhooks** பக்கங்கள் ஒரு **கணக்கு நிர்வாகி** ஆல் நிர்வகிக்கப்படுகின்றன. அவற்றை உங்கள் டாஷ்போர்டில் நீங்கள் பார்க்கவில்லை என்றால், உங்களுக்காக ஒரு விசையை வழங்க அல்லது ஒரு webhook ஐ அமைக்க உங்கள் கணக்கில் உள்ள ஒரு நிர்வாகியிடம் கேளுங்கள்.

:::

## அங்கீகாரம் & API விசைகள்

API க்கான அழைப்புகள் ஒரு bearer டோக்கனாக அனுப்பப்படும் ஒரு **API விசை** மூலம் அங்கீகரிக்கப்படுகின்றன:

```http
Authorization: Bearer <your_api_key>
```

**Developers → API keys** இன் கீழ் விசைகளை நிர்வகிக்கவும், அங்கு நீங்கள்:

- ஒரு விசையை **உருவாக்கவும்** — அது காட்டப்படும்போது ரகசியத்தை நகலெடுக்கவும்; அது மீண்டும் காட்டப்படாது.
- உங்கள் விசைகளை **பட்டியலிடவும்** மற்றும் ஒவ்வொன்றும் எதற்காக என்பதைப் பார்க்கவும்.
- ஒரு விசை கசிந்தால் அல்லது இனி தேவையில்லை என்றால் அதை உடனடியாக **திரும்பப்பெறவும்**.
- **வரம்புகளை** ஒதுக்கவும் — ஒவ்வொரு விசையும் நீங்கள் வழங்கும் அனுமதிகளை மட்டுமே சுமக்கிறது, எனவே ஒரு படிக்க-மட்டும் விசை முன்பதிவுகளை பட்டியலிட முடியும் ஆனால் அவற்றை ஒருபோதும் உருவாக்கவோ ரத்து செய்யவோ முடியாது.

கிடைக்கும் வரம்புகள்:

| வரம்பு | வழங்குகிறது |
| --- | --- |
| `slots:read` | ஒரு நிகழ்வு வகைக்கான கிடைக்கும் நேர இடைவெளிகளைப் படிக்கவும் |
| `bookings:read` | முன்பதிவுகளைப் பட்டியலிட்டுப் படிக்கவும் |
| `bookings:write` | முன்பதிவுகளை உருவாக்கவும், ரத்து செய்யவும், மற்றும் மறுஅட்டவணை செய்யவும் |
| `mcp` | MCP சேவையகத்தைப் பயன்படுத்தவும் (`slots:read`, `bookings:read`, மற்றும் `bookings:write` ஐயும் உள்ளடக்கிய ஒரு குடை) |

:::warning[விசைகளை கடவுச்சொற்களைப் போல நடத்துங்கள்]

ஒரு விசை அதன் வரம்புகளுக்குள் உங்கள் கணக்கிற்கான அணுகலை வழங்குகிறது. அதை ஒரு ரகசிய நிர்வாகி அல்லது சூழல் மாறியில் சேமிக்கவும், ஒருபோதும் கிளையன்ட்-பக்க குறியீடு அல்லது ஒரு பொது களஞ்சியத்தில் அல்ல. அது வெளிப்பட்டால் உடனடியாக திரும்பப்பெற்று சுழற்றவும்.

:::

## REST API v1

REST API `/v1` அடிப்படை பாதையின் கீழ் வழங்கப்படுகிறது மற்றும் JSON ஐத் திருப்பித் தருகிறது. கிடைக்கும் வளங்கள்:

- **நிகழ்வு வகைகள்** — உங்கள் [நிகழ்வு வகைகளை](./event-types) **பட்டியலிட்டுப் படிக்கவும்**, மேலும் ஒரு நிகழ்வு வகையை **நகலெடுக்கவும்** (`POST /v1/event-types/:code/duplicate`). (உருவாக்குதல்/திருத்துதல்/நீக்குதல் டாஷ்போர்டில் செய்யப்படுகிறது.)
- **இடைவெளிகள்** — ஒரு நிகழ்வு வகைக்கான கிடைக்கும் நேர இடைவெளிகளை வினவவும் (அனைத்து இடையகங்கள், அறிவிப்பு, மற்றும் வரம்புகள் பயன்படுத்தப்பட்ட, உங்கள் [முன்பதிவு பக்கத்தில்](./booking-page) காட்டப்படும் அதே திறப்புகள்).
- **முன்பதிவுகள்** — முழு CRUD மற்றும் **மறுஅட்டவணை**: ஒரு முன்பதிவை உருவாக்கவும், முன்பதிவுகளை பட்டியலிட்டுப் படிக்கவும், ரத்து செய்யவும், மற்றும் ஒன்றை ஒரு புதிய நேரத்திற்கு நகர்த்தவும். `GET /v1/bookings/stats` மொத்த முன்பதிவு எண்ணிக்கைகளைத் திருப்பித் தருகிறது.
- **நிகழ்வு இணைப்புகள்** — ஒரு நிகழ்வு வகையுடன் இணைக்கப்பட்ட ஒற்றை-பயன்பாட்டு முன்பதிவு இணைப்புகளை உருவாக்கவும், பட்டியலிடவும், மற்றும் திரும்பப்பெறவும் (`POST`/`GET /v1/event-types/:code/links`, `DELETE /v1/event-links/:linkCode`).
- **Webhooks** — உங்கள் webhook சந்தாக்களை நிரல்படி நிர்வகிக்கவும்.
- **பயனர்கள் / me** — `GET /v1/users/me` API விசையின் அடையாளத்தைத் திருப்பித் தருகிறது (அங்கீகரிக்கப்பட்ட கணக்கு மற்றும் நிறுவனம்).
- **காலெண்டர்கள்** — உங்கள் இணைக்கப்பட்ட காலெண்டர்களுடன் வேலை செய்யவும் ([ஒருங்கிணைப்புகளைப்](./integrations) பார்க்கவும்).

ஒரு வழக்கமான தானியக்க ஓட்டம்: ஒரு நிகழ்வு வகைக்கான **இடைவெளிகளை** வினவவும், பிறகு உங்கள் பயனர் தேர்ந்தெடுத்த இடைவெளிக்கு ஒரு **முன்பதிவை** உருவாக்கவும் — [முன்பதிவு பக்கம்](./booking-page#இரட்டை-முன்பதிவுகள்-இல்லை-ஒருபோதும்) பயன்படுத்தும் அதே அணு, இரட்டை-முன்பதிவு-இல்லை உத்தரவாதம் API க்கும் பொருந்தும்.

## Webhooks

நிகழ்வுகள் நடக்கும் தருணத்தில் webhooks அவற்றை உங்கள் சேவையகத்திற்குத் தள்ளுகின்றன, எனவே நீங்கள் வாக்கெடுப்பு செய்ய வேண்டியதில்லை. அவற்றை **Developers → Webhooks** இன் கீழ் நிர்வகிக்கவும்.

- முன்பதிவு நிகழ்வுகளைப் பெற ஒரு URL ஐ **சந்தா** செய்யவும். நிகழ்வுகள் சரியாக: `booking.created`, `booking.cancelled`, `booking.rescheduled`, மற்றும் `booking.no_show`.
- ஒவ்வொரு வழங்கலும் **HMAC உடன் கையொப்பமிடப்படுகிறது** — பேலோடை நீங்கள் நம்புவதற்கு முன், கோரிக்கை உண்மையில் imatic Calendar இலிருந்து வந்ததா என்பதை உறுதிப்படுத்த உங்கள் webhook இன் ரகசியத்திற்கு எதிராக கையொப்ப தலைப்பைச் சரிபார்க்கவும்.
- நீங்கள் கட்டமைக்கும்போது உங்கள் இறுதிப்புள்ளிக்கு ஒரு மாதிரி நிகழ்வை அனுப்ப உள்ளமைந்த **Test** செயலைப் பயன்படுத்தவும், இதனால் நேரலையில் செல்வதற்கு முன் உங்கள் கையாளி வேலை செய்கிறது என்பதை உறுதிப்படுத்தலாம்.

கையொப்பம் `X-Imatic-Signature` தலைப்பில், ஒரு Stripe-பாணி வடிவத்தில் பயணிக்கிறது:

```http
X-Imatic-Signature: t=<unix-epoch-seconds>,v1=<hmac-sha256>
```

சரிபார்க்க: `t` மற்றும் மூல கோரிக்கை உடலை எடுத்து, `HMAC-SHA256(secret, "<t>.<body>")` (ஒரு உண்மையான புள்ளியால் இணைக்கப்பட்ட நேர முத்திரை மற்றும் உடல்) கணக்கிட்டு, அதை hex-குறியீட்டு செய்து, அதை `v1` உடன் ஒப்பிடவும். அவை பொருந்தவில்லை என்றால் கோரிக்கையை நிராகரிக்கவும்.

:::tip[எப்போதும் கையொப்பத்தைச் சரிபார்க்கவும்]

HMAC கையொப்பம் பொருந்தாத எந்த webhook ஐயும் நிராகரிக்கவும். இது ஒரு நம்பகமான தானியக்கத்திற்கும் ஒரு திறந்த கதவிற்கும் இடையிலான வேறுபாடு.

:::

## MCP சேவையகம்

imatic Calendar ஒரு **Model Context Protocol (MCP) சேவையகத்தை** வழங்குகிறது, இதனால் AI முகவர்களும் உதவியாளர்களும் நன்கு வரையறுக்கப்பட்ட கருவிகள் மூலம் உங்கள் கிடைக்கும் நேரத்தைப் படித்து முன்பதிவுகளை நிர்வகிக்க முடியும் — REST API போன்ற அதே API-விசை அங்கீகாரம் மற்றும் வரம்புகளைப் பயன்படுத்தி.

சேவையகம் **ஏழு கருவிகளை** வெளிப்படுத்துகிறது:

| கருவி | அது என்ன செய்கிறது |
| --- | --- |
| `list_event_types` | உங்கள் முன்பதிவு செய்யக்கூடிய நிகழ்வு வகைகளைப் பட்டியலிடவும் |
| `list_slots` | ஒரு நிகழ்வு வகைக்கான திறந்த இடைவெளிகளைப் பெறவும் |
| `create_booking` | ஒரு இடைவெளியை முன்பதிவு செய்யவும் |
| `cancel_booking` | ஒரு முன்பதிவை ரத்து செய்யவும் |
| `reschedule_booking` | ஒரு முன்பதிவை ஒரு புதிய நேரத்திற்கு நகர்த்தவும் |
| `list_bookings` | இருக்கும் முன்பதிவுகளைப் பட்டியலிடவும் |
| `get_booking` | ஒரு ஒற்றை முன்பதிவை அதன் குறியீட்டால் படிக்கவும் |

உங்கள் MCP-திறன் கொண்ட கிளையன்ட்டை சேவையகத்தை நோக்கி சுட்டிக்காட்டி, ஒரு API விசையுடன் அங்கீகரித்து, உங்கள் முகவர் "வியாழன் அன்று Priya எப்போது கிடைக்கிறார்?" என்பதற்கு பதிலளித்து இடைவெளியை முன்பதிவு செய்யலாம் — அந்த விசைக்கு நீங்கள் வழங்கிய வரம்புகளுக்குள் அனைத்தும்.

கணக்கின் சொந்த சுயவிவரம் ஒரு MCP கருவி மூலம் அல்ல, `GET /v1/users/me` உடன் REST மீது படிக்கப்படுகிறது.

:::note[உங்கள் முகவரின் விசையை இறுக்கமாக வரம்பிடவும்]

ஒரு AI முகவருக்கு அதற்குத் தேவையான கருவிகளை மட்டுமே கொண்ட ஒரு விசையைக் கொடுக்கவும். அதற்கு கிடைக்கும் நேரத்தைப் படிக்க மட்டுமே தேவைப்பட்டால், அதற்கு ரத்து அல்லது மறுஅட்டவணை அனுமதிகளை வழங்க வேண்டாம்.

:::

## அடுத்த படிகள்

- [ஒருங்கிணைப்புகள்](./integrations) — இரு-வழி ஒத்திசைவுக்கு Google மற்றும் Outlook ஐ இணைக்கவும்.
- [நிகழ்வு வகைகள்](./event-types) — உங்கள் API அழைப்புகளில் பெரும்பாலானவை சுற்றி வரும் வளம்.
- [உங்கள் பொது முன்பதிவு பக்கம்](./booking-page) — உங்கள் தானியக்கங்கள் பிரதிபலிக்கும் குறியீடு-இல்லாத பாதை.
