---
title: "Update nickname, display name, welcome text, timezone or weekly hours (partial)"
method: PUT
path: "/api/booking-profile"
tags: ["Booking links"]
---

# Update nickname, display name, welcome text, timezone or weekly hours (partial)

`PUT /api/booking-profile`

## Request

- Base URL: `https://whenmeet.me`
- URL: `https://whenmeet.me/api/booking-profile`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-session`

## Request body

- object
  - `handle` string: New nickname (3–40, [a-z0-9-]); lower-cased.
  - `displayName` string, nullable
  - `welcome` string, nullable
  - `timezone` string
  - `weeklyHours` WeeklyHours: Working hours per weekday in the profile timezone, or in hoursTimezone for a personal link override: up to 6 ["HH:MM","HH:MM"] intervals per day ("24:00" allowed as an end). Missing days mean no hours; overlapping intervals merge. Profile default Mon–Fri 09:00–17:00.
    - `mon` array[]
      - string[]
    - `tue` array[]
      - string[]
    - `wed` array[]
      - string[]
    - `thu` array[]
      - string[]
    - `fri` array[]
      - string[]
    - `sat` array[]
      - string[]
    - `sun` array[]
      - string[]

## Response `200`

{ profile }

- object
  - `profile` Profile
    - `handle` string
    - `displayName` string, nullable
    - `welcome` string, nullable: Intro shown on the public page.
    - `timezone` string: IANA zone the weekly hours are expressed in.
    - `weeklyHours` WeeklyHours: Working hours per weekday in the profile timezone, or in hoursTimezone for a personal link override: up to 6 ["HH:MM","HH:MM"] intervals per day ("24:00" allowed as an end). Missing days mean no hours; overlapping intervals merge. Profile default Mon–Fri 09:00–17:00.
      - `mon` array[]
        - string[]
      - `tue` array[]
        - string[]
      - `wed` array[]
        - string[]
      - `thu` array[]
        - string[]
      - `fri` array[]
        - string[]
      - `sat` array[]
        - string[]
      - `sun` array[]
        - string[]
    - `createdAt` integer: unix ms
    - `updatedAt` integer: unix ms

## Other responses

- `400`: invalid_body | invalid_handle | invalid_display_name | invalid_welcome | invalid_timezone | invalid_weekly_hours | no_profile (call ensure first).
- `401`: unauthenticated (no session or token), or invalid_token (a Bearer token that is malformed, unknown or revoked — never a silent anonymous fallback).
- `409`: handle_taken (another nickname, or a team link’s handle — they share one namespace).

---

[API](https://skmtc.dev/whenmeet/apis/whenmeet-me-api.md) · [All operations](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/revisions/202b80022215?raw)
