Skip to main content
Answers “whose birthday is coming up” from the birthdays stored on contact cards. The window is a day count starting today (or on a date you name), so a week, a month, and a quarter are 7, 30, and 90; a past from answers “which birthdays did I miss last week”. Every address book on the account is scanned, collected and personal alike. Only birthdays stored on a contact are listed — set with create_contact or update_contact, or synced in from a phone over CardDAV. Langmail never infers a birthday from a “happy birthday” subject line, so the field can be treated as authoritative. To look one person up by name, use search_contacts, which prints the birthday when there is one.

Parameters

integer
default:"30"
Length of the window in days, 1–366, counting from as day 0 with an exclusive end — 7 from a Monday covers Monday through Sunday.
string
First day of the window as YYYY-MM-DD. Defaults to today in the account’s preferred time zone (UTC when none is set); pass the user’s local date when you know it.
integer
default:"25"
Maximum number of people to list, 1–100.

Example

Call
Result
Rows are sorted by date, then name. Each carries the date the birthday falls on this time round, how far away it is (today, tomorrow, in N days), the age the person is turning when the birth year is stored, the contact_id, the stored birthday in the spelling the write tools accept, and the best email address — so drafting a card chains straight into create_draft without another lookup. A birthday on February 29 is listed on February 28 in a year that has no leap day. When nothing falls in the window the result says so and points at update_contact. When limit cuts the list, a trailer says how many were left out. The scan reads at most 500 cards; an address book that reaches that cap is told the list may be incomplete.

Errors

  • from "<value>" is not a calendar date. Use YYYY-MM-DD. — the from value was not a real date.