Skip to main content
Availability defines when a user can be booked. It consists of a weekly recurring schedule with optional date-based exceptions for holidays or custom hours.

Availability Structure

ComponentDescription
Weekly ScheduleRecurring hours for each day of the week
TimezoneAll times are interpreted in this timezone
ExceptionsDate-specific overrides (holidays, special hours)

Default Availability

When you create a user without specifying availability, meetergo creates a default schedule:
  • Monday-Friday: 9:00-17:00
  • Saturday-Sunday: Unavailable
  • Timezone: User’s specified timezone

Get User Availability

curl -X GET "https://api.meetergo.com/v4/availability/{availabilityId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-meetergo-api-user-id: {userId}"

Response

{
  "id": "660e8400-e29b-41d4-a716-446655440001",
  "name": "Business Hours",
  "timezone": "Europe/Berlin",
  "schedule": [
    {
      "dayOfWeek": "monday",
      "intervals": [
        { "from": "09:00", "to": "12:00" },
        { "from": "13:00", "to": "17:00" }
      ]
    },
    {
      "dayOfWeek": "tuesday",
      "intervals": [{ "from": "09:00", "to": "17:00" }]
    },
    {
      "dayOfWeek": "wednesday",
      "intervals": [{ "from": "09:00", "to": "17:00" }]
    },
    {
      "dayOfWeek": "thursday",
      "intervals": [{ "from": "09:00", "to": "17:00" }]
    },
    {
      "dayOfWeek": "friday",
      "intervals": [{ "from": "09:00", "to": "15:00" }]
    }
  ]
}

Update Availability

curl -X PATCH "https://api.meetergo.com/v4/availability/{availabilityId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-meetergo-api-user-id: {userId}" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule": [
      {
        "dayOfWeek": "monday",
        "intervals": [{ "from": "10:00", "to": "18:00" }]
      },
      {
        "dayOfWeek": "tuesday",
        "intervals": [{ "from": "10:00", "to": "18:00" }]
      },
      {
        "dayOfWeek": "wednesday",
        "intervals": [{ "from": "10:00", "to": "18:00" }]
      },
      {
        "dayOfWeek": "thursday",
        "intervals": [{ "from": "10:00", "to": "18:00" }]
      },
      {
        "dayOfWeek": "friday",
        "intervals": [{ "from": "10:00", "to": "16:00" }]
      }
    ]
  }'

Schedule Format

Day of Week Values

ValueDay
mondayMonday
tuesdayTuesday
wednesdayWednesday
thursdayThursday
fridayFriday
saturdaySaturday
sundaySunday

Time Format

Times use 24-hour format: HH:MM
ExampleMeaning
09:009:00 AM
13:301:30 PM
17:005:00 PM
23:5911:59 PM

Multiple Intervals Per Day

Support lunch breaks or split schedules:
{
  "dayOfWeek": "monday",
  "intervals": [
    { "from": "09:00", "to": "12:00" },
    { "from": "13:00", "to": "17:00" }
  ]
}

Common Patterns

Standard Business Hours

{
  "schedule": [
    { "dayOfWeek": "monday", "intervals": [{ "from": "09:00", "to": "17:00" }] },
    { "dayOfWeek": "tuesday", "intervals": [{ "from": "09:00", "to": "17:00" }] },
    { "dayOfWeek": "wednesday", "intervals": [{ "from": "09:00", "to": "17:00" }] },
    { "dayOfWeek": "thursday", "intervals": [{ "from": "09:00", "to": "17:00" }] },
    { "dayOfWeek": "friday", "intervals": [{ "from": "09:00", "to": "17:00" }] }
  ]
}

With Lunch Break

{
  "schedule": [
    {
      "dayOfWeek": "monday",
      "intervals": [
        { "from": "09:00", "to": "12:00" },
        { "from": "13:00", "to": "17:00" }
      ]
    }
  ]
}

Extended Evening Hours

{
  "schedule": [
    { "dayOfWeek": "monday", "intervals": [{ "from": "10:00", "to": "20:00" }] },
    { "dayOfWeek": "tuesday", "intervals": [{ "from": "10:00", "to": "20:00" }] }
  ]
}

Weekend Availability

{
  "schedule": [
    { "dayOfWeek": "saturday", "intervals": [{ "from": "10:00", "to": "14:00" }] },
    { "dayOfWeek": "sunday", "intervals": [{ "from": "10:00", "to": "14:00" }] }
  ]
}

Bookable Windows

Once availability is set, query available booking slots:
curl -X GET "https://api.meetergo.com/v4/user/{userId}/bookable-windows?startDate=2024-01-15&endDate=2024-01-20" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-meetergo-api-user-id: {userId}"
The API returns slots based on:
  1. Availability schedule - User’s weekly hours
  2. Existing bookings - Slots already booked are excluded
  3. Meeting type duration - Slots fit the meeting length
  4. Buffer times - Meeting type buffers are respected
  5. Calendar integrations - Connected calendars block time

Response

{
  "windows": [
    "2024-01-15T09:00:00Z",
    "2024-01-15T09:30:00Z",
    "2024-01-15T10:00:00Z",
    "2024-01-15T10:30:00Z"
  ]
}

Timezone Handling

All availability times are interpreted in the user’s configured timezone. Example:
  • User timezone: Europe/Berlin (UTC+1)
  • Availability: 9:00-17:00
  • A customer in America/New_York (UTC-5) sees: 3:00 AM - 11:00 AM
The API handles timezone conversion automatically. Always store and display times in the customer’s local timezone for the best experience.

Best Practices

Set realistic hours - Only mark times when the user will actually be available
Include buffer time - Don’t schedule wall-to-wall meetings
Consider timezones - If serving global customers, consider extended hours or multiple time windows
Empty schedules - If no intervals are defined for any day, the user won’t have any available slots