Calendario
Entregas, publicaciones, reuniones y fechas.
Privacidad y analítica
Utilizamos cookies técnicas necesarias y, solo si das tu consentimiento, analítica y pixels de marketing para mejorar la web y medir campañas.
Entregas, publicaciones, reuniones y fechas.
Actualizado el 1 de enero de 1970
Entregas, tareas, campañas, publicaciones, reuniones, eventos y fechas marcadas entre dos fechas (máximo 62 días).
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/calendar.window |
| Herramienta MCP | calendar_window |
| Alcance | calendar.read |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | Nödo, Voz, MCP, API, Chat, Pantallas, Apps |
| Estado | Disponible |
| Widget | calendar_week |
Entrada
{
from: string
to: string
kinds?: Array<"delivery" | "task" | "campaign" | "social" | "meeting" | "event" | "marked_date">
timeZone?: string // ≤ 64 · default "Europe/Madrid"
}Salida
{
events: Array<{
id: string
kind: "delivery" | "task" | "campaign" | "social" | "meeting" | "event" | "marked_date"
title: string
start: string
end: string | null
allDay: boolean
link: string | null
}>
}Crea, cambia o elimina una fecha marcada (lanzamiento, evento, vacaciones) visible para todo el equipo. Eliminarla: quien la creó o quien administra la marca.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.dates.save |
| Herramienta MCP | calendar_dates_save |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | Sí |
| Puertas | Nödo, MCP, API, Chat, Pantallas, Apps |
| Estado | Disponible |
| Widget | confirm |
Entrada
{
op: "upsert"
id?: string // uuid
title: string // ≤ 120
date: string
endDate?: string
note?: string // ≤ 500
}
| {
op: "delete"
id: string // uuid
}Salida
{
ok: true
id?: string
revision?: integer // -9007199254740991–9007199254740991
}Programa una reunión de la marca con fecha, hora, duración y lugar. El resto de la marca recibe el aviso.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.meetings.create |
| Herramienta MCP | calendar_meetings_create |
| Alcance | calendar.write |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
title: string // ≤ 300
description?: string // ≤ 10000
date: string
time: string
durationMinutes?: integer // 1–1440 · default 60
location?: string // ≤ 500
}Salida
{
meeting: {
id: string // uuid
}
}Guarda las notas de una reunión y nada más. Puede su creador o quien administra la marca.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.meetings.update_notes |
| Herramienta MCP | calendar_meetings_update_notes |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
meetingId: string // uuid
notes: string // ≤ 100000
}Salida
{
ok: true
}Quita una reunión para todos a la vez. Quien la quitó puede deshacerlo durante diez minutos con calendar.meetings.restore.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.meetings.trash |
| Herramienta MCP | calendar_meetings_trash |
| Alcance | calendar.write |
| Rol mínimo | Admin |
| Confirmación humana | Sí |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
meetingId: string // uuid
}Salida
{
ok: true
}«Deshacer» de calendar.meetings.trash: solo quien la quitó y dentro de los diez minutos.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.meetings.restore |
| Herramienta MCP | calendar_meetings_restore |
| Alcance | calendar.write |
| Rol mínimo | Admin |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
meetingId: string // uuid
}Salida
{
ok: true
}Añade un evento propio al calendario de la marca (todo el día o con hora), visible para todo su equipo.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.brand_events.create |
| Herramienta MCP | calendar_brand_events_create |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
title: string // ≤ 160
description?: string | null
location?: string | null
allDay: boolean
startsOn: string
endsOn: string
startsAt: string // date-time
endsAt: string // date-time
timeZone: string // ≤ 80
}Salida
{
event: Record<string, unknown>
}Cambia un evento propio de la marca: título, notas, lugar, días y horas.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.brand_events.update |
| Herramienta MCP | calendar_brand_events_update |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
eventId: string // uuid
title: string // ≤ 160
description?: string | null
location?: string | null
allDay: boolean
startsOn: string
endsOn: string
startsAt: string // date-time
endsAt: string // date-time
timeZone: string // ≤ 80
}Salida
{
event: Record<string, unknown>
}Elimina del calendario un evento propio de la marca. Solo quien lo creó o quien administra la marca (propietario o administración); el resto recibe forbidden.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.brand_events.delete |
| Herramienta MCP | calendar_brand_events_delete |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | Sí |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
eventId: string // uuid
}Salida
{
ok: true
}Marca una fecha en el calendario de la marca, que puede repetirse (cada día, semana, mes o año).
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.marked_dates.create |
| Herramienta MCP | calendar_marked_dates_create |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
title: string // ≤ 160
notes?: string | null
startsOn: string
startsAt: string // date-time
timeZone: string // ≤ 80
recurrence: "none" | "daily" | "weekly" | "monthly" | "yearly"
recurrenceInterval: integer // 1–365
recurrenceEndsOn?: string | null
}Salida
{
markedDate: {
id: string // uuid
brand_id: string // uuid
title: string
notes: string | null
starts_on: string
starts_at: string
time_zone: string
recurrence: string // none, daily, weekly, monthly or yearly.
recurrence_interval: integer // -9007199254740991–9007199254740991
recurrence_ends_on: string | null
created_at: string
updated_at: string
}
}Cambia una fecha marcada de la marca y su repetición.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.marked_dates.update |
| Herramienta MCP | calendar_marked_dates_update |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
markedDateId: string // uuid
title: string // ≤ 160
notes?: string | null
startsOn: string
startsAt: string // date-time
timeZone: string // ≤ 80
recurrence: "none" | "daily" | "weekly" | "monthly" | "yearly"
recurrenceInterval: integer // 1–365
recurrenceEndsOn?: string | null
}Salida
{
markedDate: {
id: string // uuid
brand_id: string // uuid
title: string
notes: string | null
starts_on: string
starts_at: string
time_zone: string
recurrence: string // none, daily, weekly, monthly or yearly.
recurrence_interval: integer // -9007199254740991–9007199254740991
recurrence_ends_on: string | null
created_at: string
updated_at: string
}
}Elimina una fecha marcada (con todas sus repeticiones) del calendario de la marca. Solo quien la creó o quien administra la marca (propietario o administración).
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.marked_dates.delete |
| Herramienta MCP | calendar_marked_dates_delete |
| Alcance | calendar.write |
| Rol mínimo | Miembro |
| Confirmación humana | Sí |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
markedDateId: string // uuid
}Salida
{
ok: true
}Guarda cómo ves el calendario de esta marca: primer día de la semana, vista, filtros y zona horaria. Solo te cambia a ti.
| Campo | Valor |
|---|---|
| Tipo | Escritura |
| Método HTTP | POST /api/v1/calendar.preferences.save |
| Herramienta MCP | calendar_preferences_save |
| Alcance | calendar.write |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | Pantallas, Apps |
| Estado | Disponible |
Entrada
{
weekStartsOn: 0 | 1
lastView: "agenda" | "day" | "week" | "month" | "year"
activeFilters: string[] // ≤ 40 items
timeZone?: string | null // default null
}Salida
{
preferences: {
userId: string
brandId: string
weekStartsOn: integer // 0–1 · 0 Sunday, 1 Monday.
lastView: "agenda" | "day" | "week" | "month" | "year"
activeFilters: string[] // Categories in display order; every category means «all».
timeZone: string | null // IANA zone; null follows the device.
sourceDeviceId: string | null
updatedAt: string | null
}
}Lo que pasa en la marca en los próximos días (publicaciones, entregas, reuniones, fechas), en la zona que guardaste para su calendario.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/calendar.upcoming |
| Herramienta MCP | calendar_upcoming |
| Alcance | calendar.read |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | API, MCP, Pantallas, Apps, Nödo |
| Estado | Disponible |
Entrada
{
days?: integer // 1–14 · default 8
fallbackTimeZone: string // ≤ 64
asClient?: boolean // Read as the brand sees it (a staff viewer previewing as client). Only narrows.
}Salida
{
events: Record<string, unknown>[]
timeZone: string
savedTimeZone: string | null
}Los eventos y el resumen por día de una ventana del calendario de la marca tal como los pinta la pantalla (trabajos, posts, campañas, reuniones, eventos y fechas marcadas), con lo que se puede editar.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/calendar.screen.window |
| Herramienta MCP | calendar_screen_window |
| Alcance | calendar.read |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API, MCP |
| Estado | Disponible |
Entrada
{
brandShortId?: string // ≤ 80 · The brand's short id, for the links; read when absent.
from: string // date-time
to: string // date-time
timeZone: string // ≤ 80
filters: string[] // ≤ 12 items
mode?: "detail" | "summary" // default "detail"
preview?: boolean // Staff previewing the brand as a client: edit controls are left out.
}Salida
{
brandId: string // uuid
from: string
to: string
timeZone: string
mode: "detail" | "summary"
events: Array<{
id: string
sourceId: string
brandId: string
kind: string
title: string
status: string | null
allDay: boolean
startsAt: string | null
endsAt: string | null
startsOn: string | null
endsOn: string | null
href: string | null
recurrence: string | null // Marked dates only: none, daily, weekly, monthly or yearly.
recurrenceInterval: integer | null
recurrenceEndsOn: string | null
notes?: string | null
subtitle?: string | null
statusTone?: string // neutral, progress, attention, done or failed.
needsAction?: boolean
workId?: string | null
workHref?: string | null
editable?: boolean
deletable?: boolean
facts?: {
kind: string
}
}>
summary: Array<{
date: string
total: integer // -9007199254740991–9007199254740991
counts: Record<string, integer>
}>
canManage: boolean
canDeleteAny?: boolean
}Lo que el calendario pinta al abrirse: tus preferencias y la ventana que verás (vista y fecha pedidas, la que recuerda el dispositivo o tu última vista; hoy en tu zona).
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/calendar.screen.page |
| Herramienta MCP | calendar_screen_page |
| Alcance | calendar.read |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API |
| Estado | Disponible |
Entrada
{
brandShortId?: string // ≤ 80
view?: string | null
date?: string | null
device?: {
view: string // ≤ 20
grid: boolean
timeZone: string | null
}
| null
preview?: boolean // Staff previewing the brand as a client: edit controls are left out.
}Salida
{
preferences: {
userId: string
brandId: string
weekStartsOn: integer // 0–1 · 0 Sunday, 1 Monday.
lastView: "agenda" | "day" | "week" | "month" | "year"
activeFilters: string[] // Categories in display order; every category means «all».
timeZone: string | null // IANA zone; null follows the device.
sourceDeviceId: string | null
updatedAt: string | null
}
seed: {
data: {
brandId: string // uuid
from: string
to: string
timeZone: string
mode: "detail" | "summary"
events: Array<{
id: string
sourceId: string
brandId: string
kind: string
title: string
status: string | null
allDay: boolean
startsAt: string | null
endsAt: string | null
startsOn: string | null
endsOn: string | null
href: string | null
recurrence: string | null // Marked dates only: none, daily, weekly, monthly or yearly.
recurrenceInterval: integer | null
recurrenceEndsOn: string | null
notes?: string | null
subtitle?: string | null
statusTone?: string // neutral, progress, attention, done or failed.
needsAction?: boolean
workId?: string | null
workHref?: string | null
editable?: boolean
deletable?: boolean
facts?: {
kind: string
}
}>
summary: Array<{
date: string
total: integer // -9007199254740991–9007199254740991
counts: Record<string, integer>
}>
canManage: boolean
canDeleteAny?: boolean
}
}
| null
}Cómo ves el calendario de esta marca: primer día de la semana, última vista, filtros y zona horaria.
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/calendar.preferences.get |
| Herramienta MCP | calendar_preferences_get |
| Alcance | calendar.read |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API |
| Estado | Disponible |
Entrada
{}Salida
{
preferences: {
userId: string
brandId: string
weekStartsOn: integer // 0–1 · 0 Sunday, 1 Monday.
lastView: "agenda" | "day" | "week" | "month" | "year"
activeFilters: string[] // Categories in display order; every category means «all».
timeZone: string | null // IANA zone; null follows the device.
sourceDeviceId: string | null
updatedAt: string | null
}
}Todo lo que tiene un evento del calendario al abrirlo (trabajo, post, campaña, reunión, evento o fecha marcada).
| Campo | Valor |
|---|---|
| Tipo | Lectura |
| Método HTTP | POST /api/v1/calendar.events.detail |
| Herramienta MCP | calendar_events_detail |
| Alcance | calendar.read |
| Rol mínimo | Lector |
| Confirmación humana | No |
| Puertas | Pantallas, Apps, API, MCP |
| Estado | Disponible |
Entrada
{
brandShortId?: string // ≤ 80
eventId: string // ≤ 120
}Salida
{
detail: Record<string, unknown> | null
}